GoogleCalendarの更新のLine通知を共有カレンダー更新でも通知するように直したメモ
GoogleCalendarの更新を通知するGASの改良
以前作ってみたGAS使ってGoogleCalendar更新を通知するスクリプトで、更新を検知するIDがカレンダーの所有者だけで、共有してるカレンダーの更新とかを検知できていなかったので改良してみた。
更新をチェックするカレンダーIDを追加
更新チェックのロジックを変えてみた。
// カレンダー配列でループしてみる
for (const calendar_title in CALENDAR_DICT) {
console.log(calendar_title);
const calendar_id = CALENDAR_DICT[calendar_title];
getUpdatedEvents(calendar_id).forEach((e) => {
let message; // メッセージ
・・・・・ 省略 ・・・・・
}
}
変えたところ
以前は実行時に引数でイベントを渡していて、そこからカレンダーIDを取得していた。でもそれだと自分のIDカレンダーの更新しか検知できなかったので、共有されているカレンダーIDも追加して、そちらも更新をチェックするように修正してみた。
自分のカレンダーが更新されたときに他のカレンダーもチェックするようになっちゃった
こんな風に修正してみたら、自分のカレンダーが更新されたときのみ他のカレンダーの更新をチェックするようになった。でもこれだとあくまで自分のイベントを更新しないとダメなので、スクリプトの実行タイミングを変える。
トリガーの変更
トリガーを「時間主導型」、「30分おき」に変更。これで30分毎にスクリプトが実行されて、みたいカレンダーの更新をチェックしてくれるようになった。