【GAS】 Googleカレンダーの新規予定を検知してChatworkに通知してみた

Google Apps Script

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】面倒なことはライブラリに任せよう!その概要と追加の方法
初心者向け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カレン...
タイトルとURLをコピーしました