Google カレンダーと Slack を連携して予定を毎朝自動で通知する方法

朝礼や日報の前に、今日の予定を確認する手間は小さくても毎日続きます。チームの共有カレンダーなら、全員が同じ一覧をチャンネルで見られると予定の確認が揃います。

この記事では、今日の予定を毎朝 Slack へ送る手順と、予定の直前に知らせる方法を説明します。

結論

毎朝の一覧は、Samurai App のワークフローに「定期実行」を付けて作ります。「AI ボット」のステップがカレンダーを読んで一覧にし、「通知先へ送る」のステップが Slack へ送ります。

予定の直前に 1 件ずつ知らせたいときは、「サービス連携」の出来事「Event Starting Soon」(GOOGLECALENDAR_EVENT_STARTING_SOON_TRIGGER)を使います。こちらはモデルを呼ばずに送れます。

できること・できないこと

  • 定期実行は最短 1 時間に 1 回です。 時刻は日本時間です。「毎朝 8 時 50 分」のように分まで指定できます
  • 定期実行では「10 分前」のような予定ごとの通知は作れません。 直前の通知はサービス連携で作ります
  • サービス連携の直前通知は最大 15 分遅れます。 見に行く方式のため、「5 分前」に設定すると、開始の後に届くことがあります。遅れを見込み、minutesBeforeStart は 20 分以上にします
  • 終日の予定は、直前通知の対象外です。 既定では対象に入りません。入れるには includeAllDay をオンにします
  • 「AI ボット」はモデルを呼びます。 実行のたびに利用料がかかります。一覧の書き方は毎回わずかに変わることがあります
  • 読んだ予定はチャンネルの全員に見えます。 接続したアカウントが読める予定はそのまま対象になります。Google カレンダーの非公開の予定(visibility が private)も、参加者本人のアカウントなら詳細を読めます。個人のカレンダーをつなぐときは、指示で除くか、個人宛てのチャンネルに送ります

用意するもの

  • 通知したいカレンダーを読める Google アカウント
  • 投稿先チャンネルの Slack の Incoming Webhook の URL
  • 定期実行の追加は、ワークフローを作った本人かマネージャー以上の権限でできます。サービス連携の追加はマネージャー以上が必要です

手順(毎朝の一覧)

完成すると、次のようなワークフローになります。

今日の予定を毎朝 Slack へ送るワークフローの編集画面

1. 通知先を登録する

「設定」の「通知」にある通知先の登録画面

Slack のアプリ設定で「Incoming Webhooks」を有効にし、「Add New Webhook to Workspace」からチャンネルを選んで URL を作ります。Samurai App の「設定」→「通知」の「通知先」に名前と URL を登録し、「テスト送信」で確認します。

2. Google Calendar を接続する

「コネクタ」画面の「コネクタ」タブで Google Calendar の「追加」を押し、「標準連携アプリで追加」を選んでサインインします。

3. ワークフローを作る

「ワークフロー」の「作成」から「新規作成」を選びます。入力の項目は要りません。

「AI ボット」のステップを置き、「指示」に次のように書きます。

Google カレンダーから、今日の 0 時から 24 時まで(日本時間)の予定を読んでください。
開始時刻の順に「09:30 定例」の形で 1 行ずつ書きます。
終日の予定は先頭に「終日 夏季休業」の形で書きます。
非公開の予定は「予定あり」とだけ書きます。
予定が無い日は「今日の予定はありません」とだけ書きます。
一覧だけを返し、前置きは書かないでください。

続けて「通知先へ送る」のステップを置いて通知先を選び、「本文」に「/」から「AI ボット」のステップの text を入れます。

4. 公開して試す

「保存」を押し、「バージョン」タブで「バージョン N を公開」を押します。「実行」タブの「公開バージョンで実行」で 1 度動かし、Slack に届く内容と、カレンダーの予定を見比べます。

5. 定期実行を付ける

「トリガー」タブの「定期実行を追加」を押します。「いつ動くか」の「cron(分 時 日 月 曜)」に次を入れます。

50 8 * * 1-5

平日の 8 時 50 分です。欄の下に、説明と次回の実行日時が表示されるので確認します。止める日が決まっていれば「終了日(任意)」も入れます。

チャットで作るとき

手順 3 は、「ワークフロー」の「チャットで作る」から次のように頼むこともできます。作られたものは下書きなので、ステップを確認してから手順 4 と 5 に進みます。

Google カレンダーの今日の予定を一覧にして、通知先「朝の予定」へ送るワークフローを作って

手順(予定の直前の通知)

1. ワークフローを作って公開する

「ワークフローの入力」で「入力の項目を追加」を押し、名前を event、種類を「項目の組」にします。「通知先へ送る」のステップの「本文」に次を書き、公開します。

まもなく開始: {{input.event.summary}}
{{input.event.start_time}}

location や hangout_link は予定によって入らない項目です。本文に直接書くと、入っていない予定で通知が失敗することがあります。最初は必ず入る項目だけで始め、「最近の実行」の入力を見てから足します。

2. サービス連携を付ける

「トリガー」タブの「サービス連携を追加」で Google Calendar の接続を選び、「どうなったら動かすか」で「Event Starting Soon」を選びます。「絞り込み」の minutesBeforeStart に分数を入れます。

動かないとき

朝の実行が「too many requests」(429)で失敗する

「標準連携アプリ」は API の上限を他社と分け合っています。Google のサービスでは、毎時 0 分の定期実行で実際に起きています。まず実行の時刻を 8 時 50 分のようにずらします。続くときは「自社の OAuth クライアントで追加」でつなぎ直します。

予定が足りない、別のカレンダーが読まれる

既定で読むのは接続したアカウントのメインのカレンダーです。チームのカレンダーを読むときは、指示にカレンダーの ID か名前を書きます。接続したアカウントがそのカレンダーを読める必要があります。

定期実行の時刻に動かない

自動実行で動くのは公開したバージョンだけです。公開していないと実行されません。「無効」や「トリガー停止中」の表示が無いかも確認します。

実行は成功するのに、予定が載らない

「AI ボット」の操作に承認が必要な設定だと、起動した人に承認カードが届き、最長 20 分待ちます。拒否や時間切れでもステップは失敗にならず、AI はその操作をせずに続けます。「受信トレイ」の承認待ちと、管理者が付けた操作の設定を確認します。

よくある質問

AI を使わずに一覧を作れますか

できますが、ステップが増えます。「コード」で今日の範囲を日本時間の日時にし、「外部サービス実行」の操作 GOOGLECALENDAR_EVENTS_LIST に timeMin、timeMax、singleEvents、orderBy を渡し、もう一度「コード」で整形して送ります。終日の予定は start.date、時刻のある予定は start.dateTime に入る点に注意します。

休日だけ止められますか

1-5 で土日は止まります。祝日は cron では分けられません。「AI ボット」の指示で祝日に触れても、送信は止まりません。

関連する使い方

出典

関連する機能AIでワークフロー自動化 —— 定型業務を決めた順にSamurai App のワークフローは、書いたとおりの順に必ず動くステップの並びです。AI の判断、承認待ち、外部サービスの操作を 1 本にまとめ、定期実行や外部からの起動で定型業務を自動化します。

ほかの自動化の例

Slack の連携と自動化の方法をすべて見る

活用術の記事一覧へ

日々の仕事が集まり、つながり、会社の力になる。

資料請求Samurai App を開く

デモを見る資料請求