Googleカレンダー×LINE Botで「今日のタスク」を自動通知する作り方

「毎朝、今日の予定をLINEで確認できたら便利なのに…」と思ったことはありませんか?Googleカレンダーに登録したタスクを、毎朝自動でLINEに通知する仕組みをGAS(Google Apps Script)で構築できます。この記事では、LINE Messaging APIとGASを連携させて「今日のタスク自動通知Bot」を作る方法をゼロから解説します。

設定は30〜60分程度で完了します。プログラミング経験がなくてもコピペで動く実用的なコードを用意しましたので、ぜひ最後まで読み進めてください。

この記事でできること

  • 毎朝指定した時刻にLINEへ「今日の予定一覧」を自動送信
  • Googleカレンダーの複数カレンダーをまとめて取得・通知
  • 終日イベント・時間指定イベントを区別して見やすく表示
  • GASのトリガーで完全自動化(スマホ操作不要)

事前準備(約20分)

以下の準備が必要です。

  • LINEアカウント(個人アカウントでOK)
  • LINE Developersアカウント(無料)
  • Googleアカウント(Googleカレンダー・GASで使用)

LINE DevelopersでMessaging APIチャンネルを作成し、「チャンネルアクセストークン(長期)」と自分のLINE「ユーザーID」を取得しておきます。ユーザーIDはLINE DevelopersのWebhook設定画面で確認できます。

STEP 1:LINE Messaging APIのチャンネル作成

LINE Developers(https://developers.line.biz/)にログインし、以下の手順でチャンネルを作成します。

  • 「プロバイダーを作成」→ 任意の名前を入力(例:MyTaskBot)
  • 「チャンネルを作成」→「Messaging API」を選択
  • チャンネル基本設定で「チャンネルアクセストークン(長期)」を発行してコピー
  • 「あなたのユーザーID」をメモ(例:Uxxxxxxxxxx形式)

次に、作成したBotを自分のLINEに友だち追加します。チャンネルのQRコードをスキャンして追加してください。

STEP 2:GASプロジェクトの作成

Googleドライブにアクセスし、「新規」→「その他」→「Google Apps Script」でスクリプトエディタを開きます。プロジェクト名を「LINE Task Notifier」などに変更してください。

まず、設定値(トークンとユーザーID)をPropertiesServiceで安全に管理します。スクリプトエディタの「プロジェクトの設定」→「スクリプトプロパティ」に以下を登録します。

  • プロパティ名:LINE_TOKEN 値:取得したチャンネルアクセストークン
  • プロパティ名:LINE_USER_ID 値:自分のユーザーID(U…)

STEP 3:メイン通知スクリプトの実装

以下のコードをそのままコピーして貼り付けてください。

/**
 * Googleカレンダー×LINE Bot 今日のタスク通知
 */
function notifyTodaysTasks() {
  var props = PropertiesService.getScriptProperties();
  var token = props.getProperty('LINE_TOKEN');
  var userId = props.getProperty('LINE_USER_ID');

  // 今日の開始・終了時刻を取得
  var today = new Date();
  var startOfDay = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0);
  var endOfDay   = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 23, 59, 59);

  // 日付フォーマット用ヘルパー
  var fmt = function(d) { return Utilities.formatDate(d, 'Asia/Tokyo', 'HH:mm'); };
  var dateStr = Utilities.formatDate(today, 'Asia/Tokyo', 'M月d日(EEE)');

  // カレンダーからイベント取得(デフォルトカレンダー)
  var cal = CalendarApp.getDefaultCalendar();
  var events = cal.getEvents(startOfDay, endOfDay);

  var message = '\uD83D\uDCC5 ' + dateStr + ' の予定\n';
  message += '─────────────\n';

  if (events.length === 0) {
    message += '今日の予定はありません。\n';
  } else {
    events.forEach(function(ev) {
      var title = ev.getTitle();
      if (ev.isAllDayEvent()) {
        message += '◆ [終日] ' + title + '\n';
      } else {
        var start = fmt(ev.getStartTime());
        var end   = fmt(ev.getEndTime());
        message += '◆ ' + start + '〜' + end + ' ' + title + '\n';
      }
    });
  }

  message += '─────────────\n';
  message += '良い1日を! \uD83D\uDE80';

  // LINE Push Message送信
  var payload = {
    to: userId,
    messages: [{ type: 'text', text: message }]
  };

  UrlFetchApp.fetch('https://api.line.me/v2/bot/message/push', {
    method: 'post',
    contentType: 'application/json',
    headers: { 'Authorization': 'Bearer ' + token },
    payload: JSON.stringify(payload)
  });

  Logger.log('通知送信完了: ' + message);
}

コードを貼り付けたら「Ctrl + S」で保存し、notifyTodaysTasks関数を選択して「▶ 実行」ボタンを押してテスト実行します。初回は「Googleカレンダーへのアクセスを許可」するダイアログが表示されるので「許可」をクリックしてください。

STEP 4:毎朝自動実行するトリガーを設定

手動実行で通知が届いたら、毎朝自動で動くようにトリガーを設定します。

  • GASエディタ左メニューの「トリガー(時計アイコン)」をクリック
  • 右下の「トリガーを追加」ボタンをクリック
  • 実行する関数:notifyTodaysTasks
  • イベントのソース:「時間主導型」
  • 時間ベースのトリガーのタイプ:「日タイマー」
  • 時刻:「午前7時〜8時」など希望の時間帯を選択
  • 「保存」をクリック

これで毎朝指定した時間帯にGASが自動実行され、LINEに今日の予定が届くようになります。

動作確認とトラブルシュート

トラブルシュートチェックリスト

  • 「Authorization」エラーが出る:LINE_TOKENが正しいか確認。トークンを再発行して再設定してみる
  • 「予定はありません」と届くのに予定があるCalendarApp.getAllCalendars()で一覧を取得し、対象カレンダーのIDを指定する
  • 通知が届かない:BotをLINEで友だち追加しているか確認。ユーザーIDが正しいか再確認
  • 時刻がずれる:タイムゾーンをAsia/Tokyoに指定しているか確認(GASのプロジェクト設定でも確認)

応用:さらに便利にする拡張アイデア

  • 複数カレンダー対応CalendarApp.getCalendarById('カレンダーID')で仕事・プライベートを分けて通知
  • 明日の予定も通知:夜21時に翌日の予定を送信するトリガーを追加
  • リマインダー機能:イベント開始30分前に再通知するスクリプトを追加
  • Flex Message対応:LINE Flex Messageを使ってカード形式の見やすいUIに変更
  • グループLINE通知:userId部分をグループIDに変えてチーム全員に通知

まとめ

GoogleカレンダーとLINE BotをGASで連携させることで、毎朝のタスク確認作業を完全自動化できます。一度設定してしまえばメンテナンスフリーで動き続ける、費用もかからない強力な仕組みです。

  • LINE Messaging APIでチャンネルとトークンを取得
  • GASにコードをコピペして認証を通す
  • 日次トリガーを設定して毎朝自動通知
  • 応用次第でチーム通知やリマインダーにも拡張可能

GASを活用した業務自動化についてご相談がある方は、お気軽にお問い合わせください。貴社の状況に合わせた最適な自動化の仕組みをご提案します。

お問い合わせはこちら

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA