連携ガイド
GoogleカレンダーをAIエージェントに安全に連携する|権限・承認・監査の設計
GoogleカレンダーをAIエージェントにつなぐと、予定の要約、空き時間の抽出、会議準備の下書きといった作業を自動化できます。カレンダーは参照中心ですが、予定には参加者や議題といった情報が含まれるため、参照範囲の限定と監査は必要です。
Googleカレンダー連携でまず起きる問題
GoogleカレンダーをそのままAIエージェントに渡すと、典型的に次の問題が起きます。
- OAuthトークンの散在:プロンプトやローカルのMCP設定に置いた認証情報は、漏れたときにGoogleカレンダーの操作が丸ごと露出します。
- 読み取りと書き込みが同じ扱い:参照も更新も、エージェントから見れば同じ「ツール呼び出し」です。区別がなければ、AIは同じ気軽さで実行します。
- 予定情報の過剰な露出:予定には参加者・議題などが含まれ、必要以上に広く参照させるべきではありません。
参照範囲をロールで絞る
カレンダーは読み取り中心ですが、どのカレンダーを参照させるかはロールで絞ります。
- 自由に実行してよい(読み取り・分析):予定・イベントの参照、カレンダー一覧、空き時間の抽出。要約や準備はここで完結します。
- 範囲を絞る・承認を挟む:参照対象のカレンダーをロールで限定し、アクセスを監査ログに残す。「誰がどの予定を見たか」を追えるようにします。
こうしておけば、AIエージェントは分析や下書きまで一人で走り切り、必要なカレンダーだけを参照させ、アクセスの記録を残す運用になります。
生のOAuthトークンをエージェントに渡さない
もう一つの要点は認証情報の置き場所です。GoogleカレンダーのOAuthトークンをエージェントのランタイムやプロンプトに置くのは避けます。 認証情報はサーバー側に暗号化して保管し、エージェントにはスコープ付きの権限トークンを1つだけ渡す。 こうすれば、あるワーカーのトークンが漏れても、失効はそのワーカーの範囲に限定でき、Googleカレンダー本体の認証情報を作り直す必要はありません。
すべての操作を監査ログに残す
予定情報を扱う以上、「どのワーカーが・どのカレンダーを・いつ参照したか」を後から追えることが重要です。 承認された操作もブロックされた操作も、ワーカー・ロール・ツール・接続・リクエスト・結果まで記録しておけば、 後からの調査や説明責任にそのまま使えます。
Grantryでの実現方法
Grantryは、AIエージェントと業務ツールの間に入る権限レイヤーです。 Googleカレンダーを含むMCP対応のサービスに対して、ワーカーごとにスコープ付きトークンを1つ発行し、 読み取りは自由に、予定参照などの書き込みは承認ゲート越しに、そして全コールを監査ログに残します。 Claude CodeやCodexなどのMCPクライアントを、ワーカートークン付きでGrantryのエンドポイントに向けるだけで、 エージェント側のコード変更なしに始められます。
よくある質問
AIエージェントにGoogleカレンダーのOAuthトークンを直接渡しても大丈夫ですか?
推奨しません。トークンが漏れれば参照できるカレンダーの予定がすべて露出します。トークンはサーバー側に保管し、エージェントにはスコープ付きの権限トークンを1つだけ渡し、参照できるカレンダーをロールで絞るのが安全です。
予定の参照だけでも権限管理は必要ですか?
必要です。予定には参加者や議題といった情報が含まれます。誰がどのカレンダーを参照したかを監査に残し、対象を限定することは、参照のみでも意味があります。
GmailやDriveと合わせてAIに扱わせられますか?
できます。いずれもMCP対応で、同じ権限レイヤーの後ろに置けます。カレンダーは参照のみ、Gmailは送信を承認制、というようにサービスごと・操作ごとに権限を分けられます。