こんにちは!南山です。

最近、Claude Codeと話しながら「今日の予定どうだっけ?」と思うことが増えてきまして。

予定の確認のためにわざわざGoogleカレンダーを開くのが地味に面倒だったので、Claude Code CLIに直接Googleカレンダーを繋いでみました。

今回はそのセットアップ手順をご紹介します!

Google CalendarとClaude Codeのイメージ

使うもの

  • Claude Code CLI(Maxプラン)
  • Google Cloud Console(無料)
  • nspady/google-calendar-mcp(npmパッケージ名: @cocal/google-calendar-mcp

GitHubのリポジトリ名は nspady/google-calendar-mcp、npmパッケージ名が @cocal/google-calendar-mcp という感じで名前が違うのでちょっと混乱しますが、中身は同じものです笑

ちなみにMCPパッケージ自体にプラン制限はありません。Claude Code CLIが使える環境であれば動きます。

セットアップの全体像

流れとしてはこんな感じです。

  1. Google Cloud ConsoleでCalendar APIを有効化
  2. OAuth2の認証情報を作成してダウンロード
  3. 認証情報ファイルを保存
  4. Claude CodeにMCPサーバーを登録
  5. 初回認証

順番に見ていきましょう!

1. Google Cloud ConsoleでCalendar APIを有効化

まず console.cloud.google.com を開いて、新しいプロジェクトを作成します。

名前は calendar-mcp とかで適当でOKです。

プロジェクトを作ったら、「APIとサービス」→「ライブラリ」で calendar を検索します。

3つ出てきますが、「Google Calendar API」(真ん中)を選んで有効化してください。

左の「Calendar MCP API」はGoogleのリモートMCP用なので今回は使いません。

Google Cloud ConsoleのAPIライブラリでcalendarを検索した画面

2. OAuth2の認証情報を作成

次に「APIとサービス」→「認証情報」→「OAuth クライアントIDを作成」へ進みます。

その前にOAuth同意画面の設定が必要なので、順番に埋めていきます。

OAuth同意画面の設定

  • アプリ名: Calendar MCP(なんでもOK)
  • ユーザーサポートメール: 自分のGmailアドレス
  • ユーザーの種類: 外部

「内部」はGoogle Workspace組織アカウント専用なので、個人のGmailだと選べません。「外部」を選びましょう。

設定が終わると概要ページに戻るので、「OAuthクライアントを作成」ボタンを押します。

クライアントIDの作成

  • アプリケーションの種類: デスクトップアプリ
  • 名前: Calendar MCP(なんでもOK)

作成したらJSONファイルをダウンロードします。

このJSONファイルには client_idclient_secret が含まれています。秘密情報として扱い、Gitリポジトリには入れないようにしましょう。万が一漏えいした場合はGoogleコンソールからクライアントを無効化・再発行できます。

テストユーザーの登録

忘れがちですが、自分のGmailアドレスをテストユーザーとして登録しておく必要があります。

「Google Auth Platform」→「対象(Audience)」→「テストユーザー」→「ADD USERS」から追加してください。

これをしないと認証時に 403: access_denied エラーになります(私はなりました汗)。

3. 認証情報ファイルを保存

ダウンロードしたJSONファイルを安全な場所に移動します。

mkdir -p ~/.config/google-calendar
mv ~/Downloads/client_secret_*.json ~/.config/google-calendar/gcp-oauth.keys.json
chmod 700 ~/.config/google-calendar
chmod 600 ~/.config/google-calendar/gcp-oauth.keys.json

Gitリポジトリの外に置くのがポイントです。ファイル権限も絞っておくと、他のユーザーから読まれるリスクを下げられます。

4. Claude CodeにMCPサーバーを登録

ターミナルで以下を実行します。

claude mcp add --scope user google-calendar \
  -e GOOGLE_OAUTH_CREDENTIALS=~/.config/google-calendar/gcp-oauth.keys.json \
  -- npx -y @cocal/google-calendar-mcp

--scope user でグローバル設定に追加されるので、どのプロジェクトからでも使えるようになります。

5. 初回認証

GOOGLE_OAUTH_CREDENTIALS=~/.config/google-calendar/gcp-oauth.keys.json npx -y @cocal/google-calendar-mcp auth

ブラウザが開いてGoogleのログイン画面が出るので、カレンダーへのアクセスを許可します。

途中で「このアプリはGoogleで確認されていません」という警告が出ますが、自分で作ったアプリなので無視して「続行」で大丈夫です。

認証が成功すると ~/.config/google-calendar-mcp/tokens.json にトークンが保存されます。このファイルにはアクセストークンとリフレッシュトークンが含まれるため、gcp-oauth.keys.json と同様にGitリポジトリには含めないようにしましょう。

Claude Codeを再起動して使ってみる

再起動後、「今日の予定を教えて」と話しかけるだけで予定を確認できます。

予定の追加もできるので、「明日の14時にミーティングを追加して」といった感じで使えますよ。

Claude Codeでカレンダーを操作している様子

注意点:トークンは7日で切れる

ひとつだけ注意点があります。

アプリが「テストモード」のままだと、リフレッシュトークンが7日で失効します。

7日後に使えなくなったら、また auth コマンドを実行すれば再認証できます。

面倒な場合はGoogle Cloud Consoleの「公開ステータス」を「テスト中」→「本番環境」に変更するとリフレッシュトークンが長期間維持されるようになります(ただし意図的に取り消した場合などは失効します)。

「本番環境」と聞くと公開されそうで怖いですが、認可フローを開始するには手元のclient_idclient_secretが必要なので、第三者が勝手に使うのは難しい状態です。とはいえ認証情報は引き続き秘密情報として管理しましょう。

まとめ

セットアップ自体は30分もあれば終わります。

Google Cloud ConsoleのUI操作が少し多いので最初は戸惑いますが、一度やってしまえばあとはClaude Codeで普通に話しかけるだけで動くので便利ですよ。

予定管理のためにブラウザを切り替える回数が減るのが地味に快適です。

参考になれば幸いです!