Goalist Developers Blog

GASによるイベント連絡の自動化

はじめまして、ゴーリストのキムと申します!

この記事では、Google Calendarのイベントの連絡の、ChatWorkへの自動投稿の仕組みについてお話します。

この仕組みを作るために、GAS(Google Apps Script)という技術を使いました。

これから、仕組みの詳細を説明させていただきます!

背景

今までは、チーム内でのミーティングの度に、誰かがChatWorkで知らせる必要がありました。 ミーティングによっては、ChatWork経由での連絡を知って準備を行うことがあります。

このような連絡は必要ですが、マニュアルでの連絡を毎回対応するのは負担がかかります。 そこで連絡を自動化しましょうという話になり、自動投稿の仕組みを作ることになりました。

作り方

メッセージの自動投稿システムは、GAS(Google Apps Script)を利用して開発しました。

f:id:KimChanHyung:20200811105001j:plain
イメージ:https://www.asobou.co.jp/blog/bussiness/gas

実際には、以下のコードのように、Google Calendarの一日のイベントから探し出し、条件にマッチするイベントがあれば処理を行います。

探した後にはChatworkのAPIを利用して自分が指定したメッセージを指定したChatworkルームに送ることが出来ます。

for (let i = 0; i < events.length; i++) { 
    const title = events[i].getTitle();
    if( title === "TS Weekly Meeting"){
      mtgFlag = true;
    }
  }

また、システムの実行も自動で行うようにするために、メッセージ投稿の実行のスケジューリングを設定しました。

f:id:KimChanHyung:20200811110730p:plain
GASのトリガー設定

所感

今回の対応で、Google Calendarのイベントの定期連絡を自動で行えるようになりました。

また、この仕組みは色々なパターンへ汎用化させることが出来そうで、大変便利です。

しかし、GASでは1時間毎での設定しか出来ず、実行のタイミングはランダムで、細かい制御が出来ません。

例えば、午前9時から午前10時で設定した場合、この1時間のどこかで実行のタイミングがランダムに決まります。

f:id:KimChanHyung:20200811112552p:plain
GASトリガーの時間設定

まとめ

以上、GASによるGoogle Calendarのイベント連絡の自動化のお話でした。

これからも様々なブログを投稿しますので、お読みいただけますとうれしいです!