Googleカレンダーに様々なサードパーティツールを連携させて利用している方は、結構いらっしゃるのではないでしょうか。
このサードパーティツールが、Googleカレンダーに新規予定を自動的に作成したとして、それに気づく方法って実は意外となかったりしないでしょうか。
今回はGoogleカレンダーに新規予定が登録された場合にChatworkに通知するツールについて紹介いたします。
宣伝
今回紹介するツールはGASスタンドで販売中です。
Googleカレンダー新着予定検知 & Chatwork通知ツール | GASスタンド
Googleカレンダー新着予定検知 & Chatwork通知ツール カレンダーに新着の予定が入った時に、Chatworkに通知を送信するツールです。 検知したい予定を、特定のワードで絞り込むこともできます。 特徴 ・Googleカレンダーに登録された新着イベントをリアルタイムに通知 ・最低限の設定は、Googleカレン...
是非購入してみてください。
技術的な話
ここからは、このツールを作るにあたっての技術的なお話について触れていきます。
カレンダーの新着予定検知
カレンダーの変更を検知する方法については以下のブログに書きました。
【GAS】Googleカレンダーに関わるGoogle Apps Scriptでできることまとめ その② Calendar API 〜 Advanced Google Service 〜
前回の記事はこちらCalendar APIについて何も設定せずに使えるCalendarAppとは別に、拡張サービス(Advanced Google Service)として、Calendar APIが用意されています。以下画像の部分か...
ここで、このカレンダーの変更が「新規登録」なのか「新規登録以外(編集や削除)」なのかを判別できなければいけません。
この「新規作成かどうか」を、イベントの作成日時と更新日時の差分で判断しているのですが、
新規作成時でも、作成日時と更新日時に微妙なズレがあり、これで100%新規作成イベントかどうかを判断することができませんでした。
他に判断方法もなさそうなので、「作成日時と更新日時が5秒以内の差分」の場合は新規作成イベントとすることにしました(他にいい方法があれば教えて欲しいです)
Chatworkへの通知
以下のライブラリを使うと簡単に実装できます。
GitHub - cw-shibuya/chatwork-client-gas: Chatwork Client for Google Apps Script
Chatwork Client for Google Apps Script. Contribute to cw-shibuya/chatwork-client-gas development by creating an account on GitHub.
スクリプトIDは下記です。
1nf253qsOnZ-RcdcFu1Y2v4pGwTuuDxN5EbuvKEZprBWg764tjwA5fLav
ライブラリの追加方法については以下のページが参考になります。
【初心者向けGAS】面倒なことはライブラリに任せよう!その概要と追加の方法 | 隣IT
初心者向けGoogle Apps ScriptのシリーズとしてチャットワークのBotの作り方についてお伝えしています。今回はライブラリとは何か、またその追加の仕方についてお伝えしていきます。
実際に通知を行う場合は以下のようなコードになります。
/**
* チャットワークに通知を行う関数
* @param {string} token - ChatworkのAPIトークン
* @param {number} room_id - Chatworkの通知先ルームID
* @param {string} body - Chatworkに通知する文字列
*/
const notifyChatwork = (token, room_id, body) => {
const client = ChatWorkClient.factory({ token });
client.sendMessage({ room_id ,body });
}
終わりに
Googleカレンダーの新規予定を検知するのは、割とニーズがあるのではないでしょうか?
また、通知先もSlackとかにしてもいいかもしれないですね。
最後に、ツール買ってください(宣伝)
Googleカレンダー新着予定検知 & Chatwork通知ツール | GASスタンド
Googleカレンダー新着予定検知 & Chatwork通知ツール カレンダーに新着の予定が入った時に、Chatworkに通知を送信するツールです。 検知したい予定を、特定のワードで絞り込むこともできます。 特徴 ・Googleカレンダーに登録された新着イベントをリアルタイムに通知 ・最低限の設定は、Googleカレン...