top of page
検索

Googleカレンダー:予定が登録されたらLINEへ通知

今回は、Googleカレンダーに予定が登録された際にLINEへ通知するGASのプログラムについて詳しく解説します。Google Calendar APIサービスを使用し、GASでGoogleカレンダーとLINEを連携させて自動的に通知を送る方法を紹介します。


初心者の方にも理解しやすいように、具体例を交えながら説明します。



■ 動作環境

 

OS:Windows 10 Home(64ビット)

Chrome:122.0.6261.128(64ビット)

Google Calendar API:V3



Google Calendar APIサービスの有効化

 

Googleカレンダーを詳細に制御するため、今回はGoogle Calendar APIを活用します。

まず、開発環境でGoogle Calendar APIを有効化しましょう。


(1)Google Cloud Consoleにアクセスします。 https://script.google.com/home


(2)開発を行うプロジェクトを選択する、もしくは「新しいプロジェクト」から新規にプロジェクトを作成します。


(3)「サービス」を選択します。

「サービスを追加」画面にて「Google Calendar API」を検索し選択、「追加」をクリックします。

Google Calendar APIの有効化イメージ


LINE Notifyの有効化

 

LINE Notifyは、LINEアカウントに通知を送信するためのサービスです。これを利用することで、GASと連携しLINEで通知を受け取ることができます。


ここで取得するアクセストークンはのちほどGASの中で利用します。


事前の設定方法など詳しい説明は、こちらをご覧ください。(参考備忘録)GAS:LINE Notifyの使い方徹底解説



Googleカレンダーで予約が登録された際に動作するGAS

 

早速スクリプトを見ていきましょう。

Google Calendar APIのお作法に従い順番に説明していきます。


(1)現時点の全予約データを取得

  • 予約登録を監視するカレンダーを選定します。

    • 選定したカレンダーのIDを CALENDAR_ID定数に指定します。

    • デフォルトカレンダーの場合は、「primary」を指定することでも同じ意味となります。

  • 前述のカレンダーIDを使って、Events.list()メソッドを呼び出すことで初回同期(現時点での全予約データを取得)が行われます。

  • 次回以降問い合わせる際に必要となるトークン(nextSyncToken)をスクリプトプロパティへ退避します。


スクリプトが組めたら、一度だけ(手動で)実行してください。

実行後は、スクリプトプロパティに次回利用するトークンが記録されていることも合わせて確認しましょう。

スクリプトプロパティの確認イメージ

(2)予約が登録された際、予約データの差分を取得

  • スクリプトプロパティから前回取得したトークンを取り出します。

  • カレンダーIDにトークンを組み合わせ、Events.list()メソッドを呼び出すことで前回からの差分が取得できます。

  • 予定情報はitems配列に格納され返却されますので、複数要素が返却されることを想定しfor文で回しながら中身を検査します。

  • sendMessageToLINEは、LINEへ通知する処理を取りまとめた関数(詳細は後述)です。 関数へ渡すメッセージ文を構成してsendMessageToLINE関数を呼び出します。

    • status:予定の処理ステータス。新規登録、編集は「confirmed」、削除は「cancelled」が返却されます。

    • summary:予定のタイトル。

    • description:予定の説明。



(3)LINE Notify経由でLINEへ通知

  • LINE Notifyで取得したアクセストークンをtoken定数に指定します。

  • LINE Notify のエンドポイントとアクセストークンを使用して通知を送ります。


(4)トリガー登録

Googleカレンダーで予定が登録された際にonCalendarEdit関数がコールされるようトリガーを設定します。

トリガーの登録イメージ


■ まとめ

 

今回は、Googleカレンダーに予定が登録された際にLINEへ通知するGASのプログラムについて解説しました。Google Calendar APIサービスを有効にし、GASを使うことでGoogleカレンダーとLINEを連携させて自動通知を実現することができます。


ぜひ、この記事を参考に、GASとLINE Notifyを活用してみてください。


閲覧数:46回0件のコメント

コメント


bottom of page