業務自動化

n8nでGoogleカレンダー予定をSlack自動通知 月11時間の声かけを削減

中小企業 / 士業 / 制作会社 / 個人事業主 の業務自動化レシピ
業種中小企業 / 士業 / 制作会社 / 個人事業主
ツールn8n + Google カレンダー + Slack
難易度★★☆ 中
設定時間約 60 分

予定はカレンダーに入っているのに、始まる直前まで誰も気づかない。この取りこぼしは、n8n に「朝の予定一覧」と「会議 30 分前のリマインド」を Slack へ投げさせるだけで消えます。セルフホスト構成なら実行回数の上限がなく、月 ¥1,000 前後の固定費で回せます。

読了時間: 約 9 分 / 想定読者: 中小企業の経営者・管理職・情報システム担当 / 難易度: ★★☆ (n8n の環境があれば 60 分)

この記事のポイント

編集長の見解

この仕組みの本当の効果は「リマインドが届くこと」ではなく、予定の共有を人の善意に頼るのをやめられることにあります。中小企業では、朝に誰かがカレンダーを見て Slack に手で書き写す、会議前に「そろそろです」と声をかける、という善意の作業が特定の 1 人に固定されがちです。その人が休んだ日に会議が流れる、という事故は編集部が何度も聞いてきました。仕組みに置き換えれば、担当者が誰でも同じ結果になります。費用は月 ¥1,000 前後なので、判断に時間をかける種類の投資ではありません。

このレシピで解決する課題

Google カレンダーは「入力する場所」としては機能していても、「気づかせる場所」としては弱いツールです。通知は本人の画面にしか出ず、チーム全体には届きません。

編集部が中小企業の現場で繰り返し聞く詰まりは、次の 4 つに整理できます。

症状実際に起きていること1 日あたりの損失 (編集部の試算)
朝の予定共有誰かがカレンダーを見て Slack に手で書き写す10 分
開始前の声かけ「そろそろ会議です」と個別に伝えて回る15 分 (3 回分)
開始待ち参加者が揃わず冒頭が空転する15 分 (3 回分)
準備の抜け資料が用意されないまま会議が始まる再設定 30-60 分

1 日 40 分が消えている計算になり、月 20 営業日なら 約 13 時間 です。この時間を回収するのが本レシピの狙いになります。

次のセクションでは、n8n がどの順番で処理を回すのかを図で確認します。

全体フロー (毎朝 8:00 の自動実行)

Google カレンダー → Slack 自動通知フロー
01
定時起動
毎朝 8:00 に n8n が実行
📅
02
予定を取得
当日分をまとめて取得
🔍
03
絞り込み
終日・私用の予定を除外
📝
04
整形
開始時刻つき一覧に変換
💬
05
Slack へ投稿
朝会チャンネルへ自動投稿

毎朝 8:00 に n8n が当日の予定を取得し、Slack の朝会チャンネルへ一覧を投稿するまでの 5 ステップ

会議 30 分前のリマインドは、同じ部品を使った 2 本目のワークフローとして作ります。起動間隔を 15 分にして、直近 30-45 分後に始まる予定だけを拾う設計です。

続いて、着手前に揃えておくものを確認します。

準備するもの (所要 15 分)

準備物内容費用取得の手間
n8n 環境自社で借りたサーバーに入れて動かすセルフホスト版、または n8n Cloud¥0 (別途サーバー代 月 ¥793 前後) または €20 / 月セルフホストなら 30 分
Google Cloud のプロジェクトカレンダー連携用の認証情報を発行する場所¥015 分
Google カレンダー APIプロジェクトで有効化する¥0 (現時点)2 分
Slack アプリ自社ワークスペースに作る内部用アプリ¥010 分
Slack の権限chat:write (投稿権限)。宛先の解決に users:read を足すと安定します¥03 分
通知先チャンネル朝会用と会議前用 (例: #asakai)¥01 分

Google カレンダー API の利用料は、Google の公式ドキュメントによれば現時点で無料です。上限は 1 プロジェクトあたり毎分 10,000 リクエスト、1 ユーザーあたり毎分 600 リクエストと案内されています。本レシピの規模では届く水準ではありません。

⚠️ Google カレンダー API の課金予定に注意

同じ公式ドキュメントには、上限を超えた分の課金を 2026 年中に開始する予定であること、開始の少なくとも 90 日前に告知することも明記されています。1 日 1 プロジェクトあたり 1,000,000 リクエストという目安も示されているため、社員数が多い組織で全員分のカレンダーを回す設計に広げる際は、最新の条件を確認してください。

n8n をまだ持っていない場合は、n8n セルフホストで固定費を圧縮するレシピで環境の作り方を先に済ませてください。Google 側の認証情報の作り方は n8n で Gmail の問い合わせを Notion に登録するレシピとほぼ同じ流れです。

次のセクションで、実際の構築手順を時系列で追います。

構築手順 (60 分)

n8n × Google カレンダー × Slack 構築タイムライン
0-15 分
Google 側の認証情報を作る
Google Cloud のコンソールでプロジェクトを作り、Google カレンダー API を有効化します。続いて OAuth の認証情報を発行し、n8n が表示する折り返し先の URL を許可リストに登録します。n8n の公式ドキュメントは、Google 連携の認証方式として OAuth2 とサービスアカウントの 2 つを挙げたうえで、OAuth2 を推奨としています。
15-25 分
n8n に Google カレンダーを登録
n8n の Credentials (認証情報) 画面で Google Calendar OAuth2 API を選び、発行したクライアント ID と秘密鍵を入れて接続します。鍵はワークフローの中に直接書かず、必ず Credentials として保存してください。
25-35 分
Slack アプリを作って権限を付与
Slack の開発者向けサイトで「Create New App」から「From scratch」を選び、自社ワークスペース専用のアプリを作ります。Bot Token Scopes (ボットに与える権限) に chat:write を追加してインストールし、発行されたトークンを n8n の Credentials に登録します。通知先チャンネルにはアプリを招待しておきます。
35-45 分
朝の一覧通知を組む
Schedule Trigger ノードの Trigger Interval を Days にし、Trigger at Hour を 8 に設定します。Google Calendar ノードは Resource に Event、Operation に Get Many を選び、After に当日の 0 時、Before に当日の 24 時を指定します。Code ノードで一覧テキストに整形し、Slack ノードの Send で投稿します。
45-55 分
会議 30 分前のリマインドを組む
2 本目のワークフローを作り、Schedule Trigger を Minutes・15 分間隔に設定します。Google Calendar ノードの After を「今から 30 分後」、Before を「今から 45 分後」にすると、その 15 分の枠に開始する予定だけが返ります。取得できた件数が 0 のときは Slack に投げない条件分岐を必ず入れてください。
55-60 分
テスト実行して有効化
エディタの「Test workflow」ボタンで手動実行し、予定の並び順・時刻の表示・投稿の見た目を確認します。問題がなければワークフローを Active に切り替えます。有効化するまで定時起動は動きません。

設定項目で迷ったときに開くべき一次情報は、次の 4 つです。

次は、この設計で最も重要な「取得範囲の絞り込み」を詳しく見ます。

取得範囲の絞り込みが要になる

Google カレンダーノードの Get Many には、AfterBefore という 2 つの日時欄があります。n8n の公式ドキュメントは、After を「この時刻より後に発生する予定を取得する」、Before を「この時刻より前に発生する予定を取得する」と説明しています。

初期値は式で入っており、After は現在時刻、Before は 1 週間後です。ここを目的に合わせて書き換えるのが本レシピの核心になります。

通知の目的After に入れる値Before に入れる値起動間隔
朝の予定一覧当日 0:00当日 24:001 日 1 回 (8:00)
会議 30 分前現在時刻 + 30 分現在時刻 + 45 分15 分ごと
週次の予定確認当週の月曜 0:00当週の土曜 0:00週 1 回 (月曜 8:00)

会議前通知の枠を「30 分後から 45 分後」と 15 分幅にしているのは、起動間隔と揃えるためです。幅を広げると同じ予定が複数回通知され、狭めると通知が漏れます。起動間隔と取得範囲の幅を一致させるのが原則です。

💡 式の欄で日時をずらす

n8n の日時の欄は「Fixed」と「Expression」を切り替えられます。Expression 側にすると現在時刻を表す変数に対して「30 分足す」といった計算が書けます。手打ちで波括弧を閉じ忘れる事故が多いので、左側のデータ一覧からドラッグして入れるのが確実です。標準の初期値には {{ $now }} のような式がすでに入っているため、それを土台に書き換えるのが早道です。

繰り返しの予定を扱うときは、Options の Recurring Event Handling を確認してください。公式ドキュメントによれば、指定した期間内のすべての回を返す「All Occurrences」、最初の回だけを返す「First Occurrence」、次の 1 回だけを返す「Next Occurrence」の 3 つから選べます。毎週の定例を毎回通知したいなら All Occurrences です。

なお、予定の作成や変更をきっかけに動かしたい場合は、Google Calendar Trigger ノードを使う手もあります。公式ドキュメントは、このノードが Event Created / Event Updated / Event Cancelled / Event Started / Event Ended の 5 つを扱えると案内しています。

取得範囲が固まったら、Slack に流すメッセージの形を決めます。

Slack メッセージの整形

一覧の見やすさは、Code ノードの整形で決まります。編集部が中小企業向けに使っている骨子は次のとおりです。

// Code ノード (Run Once for All Items モード): 当日の予定を Slack 用の一覧に整形
const items = $input.all();
if (items.length === 0) {
  return [{ json: { text: '本日の予定はありません。' } }];
}

const lines = items.map((item) => {
  const start = item.json.start?.dateTime;
  const time = start
    ? new Date(start).toLocaleTimeString('ja-JP', {
        hour: '2-digit',
        minute: '2-digit',
        timeZone: 'Asia/Tokyo',
      })
    : '終日';
  const title = item.json.summary || '(件名なし)';
  const place = item.json.location ? ` @${item.json.location}` : '';
  return `• ${time} ${title}${place}`;
});

return [{ json: { text: `おはようございます。本日の予定は ${lines.length} 件です。\n${lines.join('\n')}` } }];

このコードで押さえている点は 3 つです。

  1. 件数 0 のときに別の文面を返す: 空の投稿が毎朝流れると、誰も読まなくなります
  2. 終日の予定を判別する: 終日の予定には開始時刻が入らないため、そのままだと表示が崩れます
  3. 時刻を日本時間に固定する: サーバーの時刻設定に引きずられる事故を防ぎます

会議前のリマインドは、一覧ではなく 1 件ずつ投げる形にします。件名・開始時刻・場所に加えて、準備物を 1 行添えると効果が上がります。カレンダーの説明欄の先頭行を拾って本文に入れるだけで、資料の抜けが減ります。

メッセージの形が決まったところで、経営者が最も気にする費用を整理します。

💰 費用と実行回数の試算

セルフホストの n8n はライセンス費がかからず、かかるのはサーバー代とドメイン代だけです。編集部は次の前提で計算しました。

月額の目安 (この 2 本のワークフローを回す想定)
n8n セルフホスト
¥918
サーバー代 ¥793 + ドメイン代 ¥125。実行回数の上限なし
Zapier Professional
¥3,260
$19.99 / 月 (年払い) から。月 750 タスク
n8n Cloud Starter
¥3,721
€20 / 月 (年払い)。月 2,500 実行

n8n Cloud の料金は公式料金ページで、Starter が年払い €20 / 月・月 2,500 実行、Pro が €50 / 月・月 10,000 実行と案内されています。Zapier は公式料金ページで、無料プランが月 100 タスク、Professional が年払い $19.99 / 月・月 750 タスクからと案内されています。

ここで効いてくるのが実行回数です。会議前通知は 15 分ごとに動くため、対象時間を広げるほど回数が伸びます。

通知の組み方起動の頻度月間の実行回数Starter (月 2,500)
朝の一覧だけ1 日 1 回約 20 回余裕あり
会議前通知 (平日 9-19 時)15 分ごと × 40 回 / 日約 800 回収まる
両方を併用 (平日 9-19 時)上記の合計約 820 回収まる
会議前通知 (24 時間・毎日)15 分ごと × 96 回 / 日約 2,880 回超過する

つまり、n8n Cloud で運用するなら Schedule Trigger を営業時間だけに絞る設定が必須です。セルフホストにはこの制約がなく、24 時間回しても費用は変わりません。

💡 まずは朝の一覧だけで始める

2 本を同時に作ると、どちらの設定が原因で通知が来ないのか切り分けられなくなります。まず朝の一覧だけを 1 週間動かし、投稿の見た目と予定の抜けを確認してから会議前通知を足してください。編集部が見てきた範囲では、この順番を守った組織のほうが定着していました。

n8n の公式サイトを見る → ※ PR・アフィリエイトリンクを含みます

費用の全体像が見えたところで、運用で起きがちな失敗を先に潰しておきます。

⚠️ 編集部が見てきた失敗パターン

失敗 1: 個人カレンダーをそのまま流してしまう

社員の個人カレンダーには通院、面談、家庭の用事が入っています。それを全社チャンネルに流すと、業務効率の話ではなくプライバシーの問題になります。対象は「会議室」「案件」「共有」など業務用のカレンダーに限定し、カレンダー ID を 1 つずつ指定する方式にしてください。個人カレンダーを対象に含める場合は、本人の同意と、非公開の予定を除外する条件分岐を必ず入れます。

失敗 2: 通知が多すぎて読まれなくなる

会議前通知を全予定に付けると、1 日 10 件以上が同じチャンネルに流れます。数日で誰も見なくなり、仕組みだけが動き続ける状態になります。会議前通知の対象は「参加者が 2 名以上」または「件名に特定の記号が付いた予定」に絞り、朝の一覧チャンネルとは別のチャンネルに分けるのが実務的です。

もう 2 つ、頻度は低いものの影響の大きい落とし穴があります。

  1. 時刻のずれに気づかない: サーバーの時刻設定が日本時間でないと、朝 8:00 の起動が別の時刻になります。n8n 側の時刻設定と、整形コードの時刻指定の両方を合わせてください
  2. バックアップを決めずに始める: セルフホストは保守が自社責任です。ワークフローは書き出して保存できるので、月 1 回の書き出しを予定に入れておきます

これらを踏まえたうえで、導入前後がどう変わるかを整理します。

導入前後の比較

1 日 3 件の会議がある小規模チームの 1 ヶ月 (編集部の試算)
導入前 (手作業)
  • 朝の予定共有を手打ち 10 分 / 日
  • 開始前の声かけ 5 分 × 3 回 / 日
  • 参加者が揃わない待ち時間 15 分 / 日
  • 合計 月 約 13 時間
導入後 (n8n 自動通知)
  • Slack の一覧を読む 2 分 / 日
  • 声かけ 0 分 (通知が代行)
  • 待ち時間 3 分 / 日
  • 点検 月 30 分 → 合計 月 約 2 時間

削減 月 約 11 時間 (20 営業日を 4 週として週 約 2.8 時間)。時給 ¥3,000 換算で月 約 ¥33,000 相当

この試算は、1 日 3 件の会議 × 20 営業日という前提で編集部が計算したものです。会議の本数が少ない組織では削減幅も小さくなります。

固定費が月 ¥1,000 前後である以上、月 5 時間の削減でも費用は回収できる計算になります。ただし初回構築の 60 分は別途かかる一時費用です。

編集部の結論

このレシピが効くのは「会議が 1 日 2 件以上あり、予定の共有を特定の 1 人が手で回している組織」です。会議が週に数件しかない環境では、通知の仕組みを保守する手間のほうが上回ります。まず自社のカレンダーで、参加者 2 名以上の予定が 1 日何件あるかを数えてください。3 件以上あるなら、この 60 分は回収できます。

構築と運用の全体像が揃ったので、関連するレシピを紹介します。

関連レシピ

まとめ

n8n による Google カレンダー → Slack の自動通知は、構築 60 分、月 ¥1,000 前後で朝の共有と会議前の声かけをまるごと機械に渡す打ち手です。設定の要は Google カレンダーノードの After / Before で取得範囲を絞ること、そして起動間隔と取得範囲の幅を一致させることの 2 点に集約されます。

最初に決めるべきは技術ではなく、どのカレンダーを対象にするかです。業務用のカレンダーだけに絞り、朝の一覧から始めて 1 週間動かす。そのうえで会議前通知を足すのが、定着する順番です。


出典・参考情報


よくある質問

Q. 社員それぞれのカレンダーを個別に通知できますか?

編集部の答え: できますが、対象を増やすほど実行回数と設定の手間が伸びます。まずは共有カレンダー 1 つで運用を固め、必要になった段階で対象を足す進め方をおすすめします。個人カレンダーを扱う場合は、本人の同意と非公開予定の除外を先に決めてください。

Q. Slack ではなく LINE や Microsoft Teams に送れますか?

編集部の答え: 送れます。n8n には主要なチャットサービス向けのノードが用意されており、最後の投稿ノードを差し替えるだけで済みます。前段の予定取得と整形の部分はそのまま使えます。

Q. 会議前の通知が二重に届きます。原因は何ですか?

編集部の答え: 起動間隔と取得範囲の幅が合っていない可能性が高いです。15 分ごとに起動しているのに取得範囲を 30 分幅にすると、同じ予定が 2 回拾われます。まず両者を一致させ、それでも重複するなら繰り返し予定の扱い (Recurring Event Handling) の設定を確認してください。

Q. 無料で済ませる方法はありませんか?

編集部の答え: あります。Google Apps Script を使えば追加のサーバーもツール契約も不要です。手順は Google Apps Script で朝会リマインドを自動化するレシピにまとめました。ただし通知パターンを増やしたり他のツールとつないだりする段階では、n8n のほうが手が早くなります。


本記事の数値・事例のうち「編集部の試算」と明示された箇所は編集部による試算・推論です。実際の効果は事業特性により変動します。料金や仕様は各社公式情報源を確認のうえご判断ください。

編集長 Mira / AI経営ラボ 本記事は 2026-07-29 時点の情報です。料金・機能は各社公式情報を最新でご確認ください。

n8n + Google カレンダー + Slack を無料で試す → ※ PR・アフィリエイトリンクを含みます