【GASで簡単自動化】明日の予定をLINEに毎日通知!もうカレンダー確認忘れナシ!

毎朝カレンダーアプリを開いて、今日の予定を確認していませんか?その手間、GASで自動化しちゃいましょう!このチュートリアルでは、Googleカレンダーに登録された予定を毎日LINEに通知するGASスクリプトの作り方を、ステップ・バイ・ステップで解説します。プログラミングの知識がなくても、コピペで簡単に実装できるので、ぜひチャレンジしてみてください!

今回作成する自動化の全体像

graph TD
A[Googleカレンダーの予定を取得] --> B{予定あり?}
B -- YES --> C[LINEに予定を送信]
B -- NO --> D[「予定なし」をLINEに送信]

ステップ0:事前準備

  • Googleアカウント(GoogleカレンダーとGoogle Apps Scriptを使用するため)
  • LINEアカウント(LINE Messaging APIを使用するため)
  • LINE Messaging APIのチャネルアクセストークンとユーザーID:LINE Developers Consoleでチャネルを作成し、取得します。
  • GoogleカレンダーのID:通知を受け取りたいカレンダーのIDを事前に確認しておきます。(カレンダーの設定画面で確認できます)

ステップ・バイ・ステップ構築ガイド

Step1:開発環境の準備

GoogleアカウントでGoogle Apps Script (GAS)を開き、「新しいプロジェクト」を作成します。

Step2:LINE Messaging APIの設定

LINE Developers Consoleでチャネルを作成し、チャネルシークレットとチャネルアクセストークンを取得します。また、ユーザーIDを取得します。LINE Messaging APIのメッセージ送信APIの使用方法を確認しておきましょう。

Step3:GoogleカレンダーのID取得

Googleカレンダーにログインし、通知対象のカレンダーの設定画面を開き、カレンダーIDを確認します。

Step4:GASスクリプトの作成

以下のコードをGASにコピー&ペーストします。

YOUR_CHANNEL_ACCESS_TOKENYOUR_USER_IDYOUR_GOOGLE_CALENDAR_IDを、それぞれ取得したアクセストークン、ユーザーID、カレンダーIDに置き換えます。

function sendDailySchedule() {
  // LINE Messaging APIのエンドポイント
  const lineApiUrl = 'https://api.line.me/v2/bot/message/push';

  // チャンネルアクセストークン
  const channelAccessToken = 'YOUR_CHANNEL_ACCESS_TOKEN';

  // ユーザーID
  const userId = 'YOUR_USER_ID';

  // GoogleカレンダーのID
  const calendarId = 'YOUR_GOOGLE_CALENDAR_ID';

  // 今日の日付
  const today = new Date();

  // 明日(翌日の予定を取得)
  const tomorrow = new Date();
  tomorrow.setDate(today.getDate() + 1);

  // カレンダーの予定を取得
  const events = CalendarApp.getCalendarById(calendarId).getEvents(tomorrow, new Date(tomorrow.getFullYear(), tomorrow.getMonth(), tomorrow.getDate() + 1));

  // メッセージを作成
  let message = "明日の予定:\n";
  if (events.length > 0) {
    events.forEach(event => {
      message += `${event.getTitle()} (${event.getStartTime().toLocaleString()}-${event.getEndTime().toLocaleString()})\n`;
    });
  } else {
    message = "明日の予定はありません。";
  }

  // LINEにメッセージを送信
  const options = {
    'method': 'post',
    'contentType': 'application/json',
    'headers': {
      'Authorization': `Bearer ${channelAccessToken}`
    },
    'payload': JSON.stringify({
      "to": userId,
      "messages": [
        {
          "type": "text",
          "text": message
        }
      ]
    })
  };

  UrlFetchApp.fetch(lineApiUrl, options);
}

// トリガーを設定(毎日午前7時に実行)
function createTrigger() {
  if (ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() === 'sendDailySchedule').length === 0) {
    ScriptApp.newTrigger('sendDailySchedule')
    .timeBased()
    .atHour(7)
    .everyDays(1)
    .create();
  }
}

Step5:トリガーの設定

GASの編集画面で「編集」>「現在のプロジェクトのトリガー」を選択します。「トリガーを追加」をクリックし、「関数名」に createTrigger を選択します。「イベントソース」を「時間ベース」に、「時間ベースのトリガーのタイプ」を「日付ベースのタイマー」に設定します。「時間」を毎日実行したい時刻(例:午前7時)に設定し、「保存」をクリックします。これで、毎日指定した時刻にスクリプトが自動実行され、LINEに予定が通知されます。

まとめ:自動化で生まれた時間を、もっと創造的な仕事に

これで、毎朝カレンダーを確認する手間が省け、時間を有効活用できます!GASを活用すれば、他にも様々な業務を自動化できます。次は、顧客からの問い合わせに自動返信するシステムなど、より高度な自動化にも挑戦してみませんか?


免責事項:本記事で紹介している手順やコードは、執筆時点での情報に基づいています。各サービスの仕様変更により、同様の手順で動作しない可能性があります。また、本チュートリアルの実行によって生じたいかなる損害についても、当方は一切の責任を負いかねます。ご自身の責任において、バックアップを取るなどの対策の上、実行してください。

タイトルとURLをコピーしました