Claude Code で Google カレンダーの予定を読み込み日報を作って Slack に投稿する

Claude Code で Google カレンダーの予定を読み込み日報を作って Slack に投稿する

Claude Code に Google カレンダーと Slack を MCP 連携させて、カレンダーの予定から日報を自動作成・投稿するまでの流れを実際に試してみました。
2026.07.13

コーヒーが好きな emi です。

Claude Code に Google カレンダーと Slack を MCP 連携させ、「今日の予定を確認する」→「日報を作る」→「Slack に投稿する」という一連の流れを実際にやってみました。

途中、Claude Desktop で連携済みのはずのコネクタがターミナル(Claude Code)側では改めて認証を求められたり、Slack アプリのインストールが組織の管理者承認待ちになったりと、地味にハマりどころがあったので、その過程も含めて記録します。

なお、私は Windows 11 端末の WSL で Claude Code を動かしていて、IDE としては VSCode を使っています。このセットアップ手順は本記事では扱いませんので、以下の記事を参照してください。
https://dev.classmethod.jp/articles/windows-wsl-claude-code/
https://dev.classmethod.jp/articles/windows11-wsl2-vscode-setup/
https://dev.classmethod.jp/articles/aws-summit-japan-2025-practical-aws-documentation-mcp-server-connection-on-windows-11/

Desktop で連携したのにターミナルでは使えない

以下の記事を参考に、あらかじめ Claude Desktop アプリ側で Google Calendar のコネクタを有効化しておいたので、そのままターミナルの Claude Code でも使えるだろうと思い、試しに予定を聞いてみました。

https://dev.classmethod.jp/articles/claude-business-use2/

❯ googleカレンダーから今日の予定を教えて

Google Calendarとの連携がこのセッションではまだ認証されていないようです。認証フローを開始します。

  Called Google Calendar

Google Calendarとの連携にはOAuth認証が必要ですが、この認証はこのツール経由では実行できず、/mcp コマンドから行う必要があります。

お手数ですが、次の手順で認証をお願いします。
1. ターミナルで /mcp と入力
2. 一覧から「claude.ai Google Calendar」を選択
3. 表示される案内に従ってブラウザでGoogleアカウントの認可を完了

認証が完了したら、もう一度「今日の予定を教えて」と言っていただければ、カレンダーの予定を取得します。

✻ Cogitated for 10s

                                                                                                 ✘ Auto-update failed · Try /doctor or npm i -g @anthropic-ai/claude-code
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Desktop 側ではすでにコネクタを有効化していたはずなので、「連携したのにターミナルでは読んでくれない」となりました。

※なお、ここで表示されている ✘ Auto-update failed · Try /doctor or npm i -g @anthropic-ai/claude-code という表示は今回の認証の話とは無関係です。

Auto-update failed の原因(本筋とは関係ないので折りたたみ)

/doctor で確認すると Auto-updates: enabled となっており、自動更新機能自体はオンでした。にもかかわらずインストールに失敗していた(Last update attempt: failed (install_failed))原因は、~/.npmrc に設定していた以下の行でした。

min-release-age=30240

min-release-age は、npm パッケージが公開されてから指定分数(ここでは 30240 分 = 21 日)経過するまでインストールを許可しない設定です。社内で発生した npm サプライチェーン型マルウェア「Shai-Hulud」への対策として、公開直後の悪性バージョンを取り込まないように設定していたものでした。

この設定の副作用で、Claude Code 自身の自動更新(内部的に最新バージョンを npm install する処理)も、公開から日が浅いバージョンに対してはブロックされ、install_failed になっていました。「自動更新がオフ」なのではなく、「npm レベルの安全策で新しいバージョンのインストール自体が一時的に拒否されていた」というのが実態です。

OAuth トークンはクライアントごとに個別発行される

ターミナルで /mcp を確認してみると、以下のようになりました。

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Manage MCP servers
 22 servers
                                                                                                User MCPs (/home/emiki/.claude.json)
 ❯ aws-knowledge-server · ✘ failed

   claude.ai
   claude.ai Gmail · △ needs authentication
   claude.ai Google Calendar · △ needs authentication
   claude.ai Google Drive · △ needs authentication
     → Show unused connectors (18)

   ※ Run claude --debug to see error logs
   https://code.claude.com/docs/en/mcp for help                                                                                                                             ↑/↓ to navigate · Enter to confirm · Esc to cancel
aws-knowledge-server が failed になっている件(本筋とは関係ないので折りたたみ)

一覧の一番上にある aws-knowledge-server · ✘ failed(AWSの公式ナレッジMCPサーバー)も、Auto-update failed と同じ原因でした。こちらは npx mcp-remote ... の形で起動する設定なのですが、デバッグログを見ると npm error code ENOVERSIONS / No versions available for mcp-remote と出ており、前述の min-release-age によって mcp-remote のバージョンが1つも解決できず起動に失敗していました。そのうち直そうと思いつつ、放置しています…アセアセ。

実際に Google のカレンダーにアクセスするには、「OAuth トークン」と呼ばれるものが必要になります。OAuth トークンとは、ユーザーが「このアプリに自分の Google カレンダーへのアクセスを許可します」と一度認可した際に発行される、いわば通行証のようなデータです。パスワードそのものを渡す代わりに、この通行証を使ってアプリが Google とやり取りする仕組みです。

そしてこの通行証はクライアント(Desktop アプリ / ターミナルの CLI)ごとに個別発行される仕組みのようで、Desktop アプリ側で発行済みの通行証があっても、ターミナル側は別のクライアントとして扱われるため、Desktop アプリ側で一度 MCP 連携を完了していても、別途ターミナル側で MCP 連携を使う際は改めて一度 /mcp から認可フローを通す必要がありました。

ターミナルで Google Calendar を認証する

ターミナルで /mcp を実行すると、MCP サーバーの一覧が表示されます。ここから claude.ai Google Calendar を選択すると、ステータスが △ needs authentication になっています。

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Manage MCP servers
 22 servers
                                                                                                User MCPs (/home/emiki/.claude.json)
 ❯ aws-knowledge-server · ✘ failed

   claude.ai
   claude.ai Gmail · △ needs authentication
   claude.ai Google Calendar · △ needs authentication
   claude.ai Google Drive · △ needs authentication
     → Show unused connectors (18)

   ※ Run claude --debug to see error logs
   https://code.claude.com/docs/en/mcp for help                                                                                                                             ↑/↓ to navigate · Enter to confirm · Esc to cancel
claude.ai Google Calendar · △ needs authentication

  ❯ 1. Authenticate
    2. Disable

1. Authenticate を選ぶと認証用 URL が表示され、ブラウザで Google アカウントの認可画面が開くはずなのですが、私の環境では自動で開かなかったので、c でリンクをコピーしてブラウザで開きました。

使用する Google アカウントを選択します。

claude-code-calendar-to-slack-daily-report_1

「次へ」で進めます。
claude-code-calendar-to-slack-daily-report_2

Claude for Google Calendar はすでに一部のアクセス権限を付与されています
Claude for Google Calendar が一部のアクセス権限を付与されている 5 件のサービスを確認します。

と書かれています。5 件のサービスはこの後のスクリーンショットで確認します。ここでは「続行」で進めます。
claude-code-calendar-to-slack-daily-report_3

アクセスを許可すると、ブラウザ側に「コネクタが接続されました」と表示されます。

claude-code-calendar-to-slack-daily-report_6

ターミナルに戻って再度 /mcp を確認すると、無事に ✔ connected へ変わりました。

claude.ai Google Calendar · ✔ connected · 9 tools

この状態で「今日の予定を教えて」と聞くと、ツール利用の承認プロンプトを経て、実際の予定が返ってきました。(xx には実際の予定が入っていました)

❯ Google カレンダーから今日の予定を教えて

  Called Google Calendar

今日(2026-07-13)の予定はこちらです。

┌──────────────┬─────────────────────────────────────────────┐
│     時間     │                    予定                     │
├──────────────┼─────────────────────────────────────────────┤
│ 8:30〜9:00   │ xx         │
├──────────────┼─────────────────────────────────────────────┤
│ 9:00〜9:30   │ xx                                    │
├──────────────┼─────────────────────────────────────────────┤
│ 13:00〜13:30 │ xx │
└──────────────┴─────────────────────────────────────────────┘

3件中2件が確定予定、「xx」は欠席回答済みのため実質参加予定はなさそうです。

✻ Crunched for 14s

出欠ステータスまで踏まえて要約してくれるんですね。

なお、こうしたツール利用時に表示される承認プロンプトの要否は、Claude Desktop 側のコネクタ設定画面で権限レベル(常に許可・承認が必要など)としてツールごとに細かく設定できます。先ほど「5 件のサービスはこの後のスクリーンショットで確認します。」と書いたのが、以下の「読み取り専用ツール」の 5 つです。

claude-code-calendar-to-slack-daily-report_4

書き込み・削除系のツールはデフォルトで「承認が必要」になっていました。
claude-code-calendar-to-slack-daily-report_5

ターミナルで Slack を認証する

続けて Slack 連携も試しました。こちらも同じ記事を参考に、あらかじめ Claude Desktop アプリ側で Slack のコネクタを有効化しておきます。

https://dev.classmethod.jp/articles/claude-business-use2/

ターミナル側での手順自体は Google Calendar と同じで、/mcp から claude.ai Slack を選んで Authenticate するだけです。

claude-code-calendar-to-slack-daily-report_7

ただし Slack 側は組織(ワークスペース)にアプリをインストールする形になるため、利用目的を Slack 管理者宛てのメッセージとして入力する必要がありました。

claude-code-calendar-to-slack-daily-report_8

リクエストを送信すると、Slack App Directory 上は「リクエストが送信されました」という表示になり、Slackbot からも「レビューに送られました」という通知が届きました。

claude-code-calendar-to-slack-daily-report_9

claude-code-calendar-to-slack-daily-report_10

管理者の承認が下りると、ターミナル側の /mcp 画面でも Google Calendar と Slack の両方が ✔ connected になっているのが確認できました。

claude-code-calendar-to-slack-daily-report_11

claude.ai Google Calendar · ✔ connected · 9 tools
claude.ai Slack        · ✔ connected · 18 tools

カレンダーの予定から日報を作って Slack に投稿する

「2026/7/7 のカレンダーから日報を作成して」と伝えると、Claude Code が Google Calendar の予定を取得してくれました。

❯ Google カレンダーの予定から 2026/7/7 の日報を作成して、Slackに投稿する文案を作成して。Skills は使わないで。

● Calling Google Calendar…

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Tool use

   claude.ai Google Calendar - Lists calendar events in a given calendar.(startTime: "2026-07-07T00:00:00+09:00", endTime: "2026-07-08T00:00:00+09:00", timeZone: "Asia/Tokyo", orderBy: "startTime") (MCP)
   Returns events on the given calendar matching all specified constraints. Time constraints should not be specified unless requested by the user. For open-ended keyword or topic-based searches on the primary calendar, the search_events tool must be used instead.

 Do you want to proceed?
 ❯ 1. Yes
   2. Yes, and don't ask again for claude.ai Google Calendar - Lists calendar events in a given calendar. commands in /home/emiki/work/xxx/xxx
   3. No

Yes

❯ Google カレンダーの予定から 2026/7/7 の日報を作成して、Slackに投稿する文案を作成して。Skills は使わないで。

  Searched for 1 pattern, called Google Calendar, ran 1 shell command

2026/7/7の予定を取得しました。以下の日報文案です。投稿前に内容を確認してください。

---📋 日報(2026/7/7)

業務内容
- 8:15〜10:00 xxx
- 10:00〜11:30 xxx
- 11:30〜12:00 xxx

その他
- 13:00〜17:00 子体調不良のため対応(午後は看病のため業務を中断)

---
この内容で #times-kitani-emi に投稿してよいでしょうか?(「xxx」にはGeminiメモの添付がありましたが、ドキュメント取得用のツールが今回の環境になかったため内容は反映できていません。必要であれば手動で補足してください。)

✻ Sautéed for 27s

「Skills は使わないで」としたのは、まだ試していない日報作成 Skills をインストールしてあったからです。またあとで試してみようと思っています。

内容を確認して「この内容で Slack #times-kitani-emi チャンネルに投稿してよいです」と伝えると、私の分報チャンネルである #times-kitani-emi に実際に投稿されました。

claude-code-calendar-to-slack-daily-report_12

カレンダーの予定取得から日報の下書き作成、内容確認、Slack 投稿まで、実際にひと通り試すことができました。

まとめ

  • MCP 連携の際、OAuth トークンはクライアント(Desktop / ターミナル)ごとに個別発行されるため、Desktop で認証済みでもターミナルでは改めて /mcp から認証が必要
  • Google カレンダーや Slack 等の業務ツールと連携する場合、管理者承認が必要になることがある。申請前に事前確認を忘れずに
  • 一度連携してしまえば、「カレンダーの予定を読む」→「日報にまとめる」→「内容を確認して Slack に投稿する」までを、チャット越しの指示だけで一気通貫にこなせる

定型業務は Claude Code と MCP 連携の組み合わせでかなり自動化できそうです。

本記事への質問やご要望については画面下部の「DevelopersIOへのご意見」からお問い合わせいただけます。

参考記事

https://dev.classmethod.jp/articles/calendar-mcp-automation-for-sales/
https://dev.classmethod.jp/articles/claude-business-use2/

https://dev.classmethod.jp/articles/claude-business-use1/


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

この記事をシェアする

AI白書

関連記事