Googleカレンダーで今日の予定を抽出し、LINEで通知する

(最終更新月:2023年4月)

Google Apps Script(GAS)を使って、Googleカレンダーからの予定を抽出し、毎朝LINEで通知する方法をご紹介します。

以下のように通知されます。

当システムで使用するのは以下のとおり。

  • Googleカレンダー
  • Google Apps Script
  • LINE Notify

その全体像からやり方など、ステップバイステップでご説明していきます。

解説動画付きでご覧になりたい方はこちら。

Google Apps Scriptで予定をLINE通知する方法

全体像を見ていただきます。

①GoogleカレンダーのIDを取得

GoogleカレンダーのIDを取得する方法は以下のとおり。

  • 設定
  • カレンダー名
  • カレンダーの設定 > カレンダー統合

次の「カレンダー名」がカレンダーIDです。

LINE Notifyの設定

おこなうことは以下のとおり。

  • LINE Notifyと友だちになる
  • LINE NotifyのAPIキーを取得する

②LINE Notifyと友だちになる方法

③LINE NotifyのAPIキーを取得する

GASによるスクリプト

材料が揃いましたので、以下の手順でGASでの開発を進めます。

  • スクリプトプロパティの設定
  • コードの記述
  • トリガの設定

スクリプトプロパティの設定

隠したい文字列をスクリプトプロパティに設定します。

設定 > スクリプトプロパティ

コードの記述

コードには、以下2つの関数があります。

  • メインの関数:トリガーで実行する
  • LINE Notifyへメッセージへ飛ばす
//カレンダーから当日の予定を取得
function main() {
//LINE通知のための日付けを取得
    var today = new Date();
    var year = today.getFullYear();
    var month = today.getMonth() + 1;
    var day = today.getDate();
//LINE通知の1行目
    var todayStr = `${year}年${month}月${day}日の予定】\n`;
//カレンダーIDの取得
    var calId = ScriptProperties.getProperty('CALENDAR_ID');
    var cal = CalendarApp.getCalendarById(calId);
//今日(today)の予定を取得する
    var events = cal.getEventsForDay(today);
//予定をすべてリストに格納する
    const strList = [];
    for (var i = 0; i < events.length; i++) {
        var event = events[i];
        const start = event.getStartTime();
        var hour = start.getHours();
        var minute = start.getMinutes();
        const title = event.getTitle();
        var eventStr = `\n${hour}時${minute}分:${title}\n`;
        strList.push(eventStr);
    }
//リストを文字列化
    const lineMsg = todayStr + strList.toString();
//下の関数を実行
    lineToMe(lineMsg);
}

//LINE Notifyへ文字列(msg)を飛ばす
function lineToMe(msg) {
    const LINE_KEY = ScriptProperties.getProperty('LINE_KEY');
    const ep = "https://notify-api.line.me/api/notify";
    const payload = { "message": msg };
    const options = {
        "method": "post",
        "headers": {
            'Authorization': 'Bearer ' + LINE_KEY,
        },
        "payload": payload
    };
    var response = UrlFetchApp.fetch(ep, options);
    Logger.log(response);
    var json = response.getContentText();
    var data = JSON.parse(json);
}

トリガの設定

GASのトリガーとしては、時間主導型でおこないます。

まとめ:GASでカレンダーアプリを操作すると便利

当記事をまとめます。

  • GASでカレンダーの予定を取得できる
  • GASからLINE Notifyへメッセージが飛ばせる
  • GASでは時間主導で関数を発動できる

Google Apps Scriptは、Googleのアプリを操作できるプログラミング言語。

うまく活用すれば、日々の生活がより便利になります。

当サイトでは、GASだけでなく、さまざまな言語を活用したアプリのご紹介をしています。

気になるものがないか、ぜひ探してみてください。