# Google Calendar への接続

Google Calendar コネクタを使用すると、Treasure AI Studio のエージェントがチャット中にあなたのスケジュールを扱えます。Google アカウントが見られるカレンダーを読み取り、うろ覚えの予定を数か月分の履歴から検索し、複数人の予定を突き合わせて空いている時間を見つけ、そのまま予定を作成・調整できます。分析が終わったらそのレビューを予約する、キャンペーンのマイルストーンをカレンダーに置く — このように予定の登録が作業の最後のひと手間になる場面で、作業とカレンダーを 2 つのウィンドウに分けずに済みます。

このコネクションは限定的に**書き込み**ができます。エージェントは予定の作成と既存の予定の更新を行えます。予定の削除、カレンダーの作成・削除、カレンダーの共有設定の変更はできません。作成・更新する予定にはゲストを含められ、Google が招待を送ります。[ゲストと通知](#%E3%82%B2%E3%82%B9%E3%83%88%E3%81%A8%E9%80%9A%E7%9F%A5) を参照してください。

コネクションが初めての方へ
まず [コネクション](/ja/products/ai-studio/connections) で全体像（コネクタとコネクションの違い、管理者とユーザーの役割）を確認してください。このページでは Google Calendar 固有の手順を説明します。

## 目的

アカウントで Google Calendar コネクタを有効化してコネクションを認可し、チャット中にエージェントがカレンダーの読み取り・空き時間の検索・予定の作成と更新を行えるようにします。

## 前提条件

- Treasure AI Studio のアカウント管理者権限 — ステップ 1（コネクタの有効化）でのみ必要です
- エージェントに扱わせたいカレンダーを持つ Google アカウント。エージェントはこのアカウントとして読み書きするため、到達範囲はそのアカウント自身のカレンダーへのアクセス権に従います（[エージェントに見える範囲](#%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%81%AB%E8%A6%8B%E3%81%88%E3%82%8B%E7%AF%84%E5%9B%B2) を参照）
- エージェントに読ませたいカレンダーが、そのアカウントのカレンダーリストに既に追加されていること。エージェントがカレンダーを登録したりリストに追加したりすることはできません


## 誰が何をするか

Google Calendar の設定に関わるのは 2 つの役割で、いずれも 1 回で済みます。Google Cloud 側で設定する作業はありません。OAuth アプリケーションは Treasure AI が管理します。

| 役割  | やること  | 頻度  |
|  --- | --- | --- |
| Treasure AI Studio の管理者 | **[コネクタ設定]** で Google Calendar コネクタを追加して保存します。入力する項目はありません。 | 組織で 1 回 |
| 各メンバー | **[コネクション]** から自分のコネクションを認可し、使用する Google アカウントを選んで要求された権限を許可します。 | 1 人 1 回 |


登録する OAuth アプリケーションも、作成してカレンダーを共有するサービスアカウントも、追加するネットワークポリシーのルールもありません。各メンバー自身の Google アカウントがそのまま認可になります。

## ステップ 1 — Google Calendar コネクタを有効化する（管理者）

このコネクタが使用する Google OAuth アプリケーションは Treasure AI が管理するため、Google Cloud コンソールで作成する作業はなく、入力する Client ID やシークレットもありません。設定フォームは空です。

1. Treasure AI Studio で **[設定] → [コネクタ設定]**（**[組織]** の下）を開きます。
2. **[コネクタを追加]**（または **[最初のコネクタを追加]**）をクリックし、**[Google Calendar]** を選びます。
3. **[保存]** をクリックします。入力する項目はありません。コネクタは有効な状態で保存されるため、全ユーザーの **[コネクション]** タブの **[利用可能]** にただちに Google Calendar が表示されます。


コネクタ設定の [Configure Google Calendar] フォーム。入力項目は 1 つもなく、見出しの下に [Save] と [Cancel] ボタンだけがある
コネクタ設定に保存された Google Calendar の行。説明文と展開用のシェブロン、有効化トグル、削除アイコンが並び、ネットワークポリシーのリマインダーは表示されていない
管理者の作業はこれで終わりです。保存後の行には有効化トグルがありますが、これをオフにすると新規の認可が止まるだけではありません。エージェントに許可された操作から Google Calendar がただちに外れます。新規のチャットだけでなく実行中のチャットにも及びます。進行中の処理が中断されるわけではありませんが、エージェントが次に行う操作が拒否されるため、既存のコネクションもすべて使えなくなります。オンに戻すまでこの状態が続き、その間もメンバーのコネクション自体は残ります。

コネクタの有効化により、エージェントが他人のカレンダーに予定を入れられるようになります
読み取り専用モードはありません。接続したメンバーは、自分として予定を作成・更新する権限をエージェントに与えます。エージェントが作成する予定にはゲストを指定できるため、ゲストは自分のカレンダーでその予定を見ることになり、通知設定によっては Google から招待メールも届きます。ゲストにできる相手は、そのメンバー自身が招待できる範囲（組織の内外を問わない）です。

エージェントは予定の削除、カレンダーの作成・削除、カレンダーの共有設定の変更はできません。有効化する前にメンバーの代理で予定を作成させてよいか判断し、エージェントの招待がメンバー本人の名義で届くことを伝えてください。

ネットワークポリシーの変更は不要です
Google Calendar コネクタは **egress ドメインを提示しません**。コネクタ設定にも「このドメインを許可してください」というリマインダーは表示されません。これは意図的な設計です。エージェントのサンドボックスは Calendar API を呼び出しません。リクエストはサンドボックスの外にある Treasure AI のコネクタサービスが実行するため、サンドボックスの egress を制御する[ネットワークポリシー](/ja/products/ai-studio/security/network-policy)はこの通信に適用されず、新しいルールを追加する必要もありません。

## ステップ 2 — コネクションを認可する（ユーザー）

エージェントに自分のカレンダーを扱わせたいメンバーは、それぞれ自分のコネクションを認可します。**[設定]** から事前に行うことも、チャットから必要になった時点で行うこともできます。

1. **[設定] → [コネクション]** を開きます。
2. **[利用可能]** から **[Google Calendar]** を見つけて **[接続]** をクリックします。


コネクションページ。[利用可能] に Treasure AI Voice・Google Analytics・Google Calendar・Google Search Console・Treasure Data が並び、それぞれに [接続] ボタンがある
1. Google のポップアップで、エージェントに扱わせたいカレンダーを持つ Google アカウントを選びます。複数のアカウントにサインインしている場合は慎重に選んでください。ここで選んだアカウントがそのままコネクションに紐づきます。
2. 要求されている権限を確認して許可します。Google が要求する権限は 2 つ（カレンダーの閲覧と、カレンダー上の予定の管理）です。


Google の権限確認画面。「View and edit events on all your calendars」と「See and download any calendar you can access using your Google Calendar」の 2 項目が並び、[Cancel] と [Allow] ボタンがある
1. ポップアップが閉じると、接続済みの一覧に **[Google Calendar]** と接続日が表示されます。


コネクションページ。接続済みの一覧に Google Calendar と接続日、削除アイコンが表示されている
コネクションが認可するのは 1 つの Google アカウントで、それを通じてそのアカウントのカレンダーリストにあるすべてのカレンダーが対象になります。Studio が保持する Google Calendar のコネクションはメンバーごとに 1 つのため、別の Google アカウントに切り替えるにはコネクションを削除して認可し直します。

あとでコネクションを削除するには、横の削除（ゴミ箱）アイコンをクリックします。エージェントはただちにアクセスを失います。エージェントが既に作成・変更した予定は、ゲストが承諾済みの招待を含めてそのまま残ります。あなたのアカウントが所有する通常の予定であるためです。なお、Google アカウントの[サードパーティ接続](https://myaccount.google.com/connections)の一覧には Treasure AI Studio が残るため、そちらでも削除する必要があります。

チャットからも接続できます
事前に認可しておく必要はありません。接続前にエージェントへ予定について尋ねると、チャット内に **[Connection Required]**（コネクションが必要）カードが表示されます。そこで **[Connect]** をクリックすれば、会話から離れずに同じ認可を実行できます。カードは表示名ではなく内部 ID の `googlecalendar` を示します。[チャットから接続する](/ja/products/ai-studio/connections#%E3%83%81%E3%83%A3%E3%83%83%E3%83%88%E3%81%8B%E3%82%89%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B) を参照してください。

## ステップ 3 — チャットで Google Calendar を使う

Google Calendar への接続が済んだら、普通の言葉で尋ねてください。コマンドもチャット内の設定も不要です。例:

- 「明日の予定は? どのプロジェクトの会議かでまとめて」
- 「来週、私と `taro@example.com` と `hanako@example.com` の 3 人が空いている 45 分の枠を Asia/Tokyo で探して」
- 「Q3 のセグメント件数をレビューした会議を探して。8 月だったと思う」
- 「木曜 14 時に marketing ops チームと分析レビューを入れて。説明にクエリ結果を入れておいて」
- 「15 時の予定を 16 時に動かして、ゲストにも知らせて」
- 「先月、定例 1:1 のうち実際に開催したのはどれ?」


どの操作を使うかはエージェントが自分で決めます。日程調整の場合は、指定された相手の予定を突き合わせ、候補を提示し、合意が取れてから予定を作成するのが通常の流れです。タイムゾーンが問題になる場合は明示してください。Google は予定の時刻を `Asia/Tokyo` のような IANA タイムゾーンとともに保存し、終日の予定は日付のみで保存します。

予定を作成させる前にゲストと時刻を確認してください
エージェントが作成した予定は、あなたが作成したものと区別できません。全ゲストのカレンダーに載り、Google がただちに招待メールを送ることもあります。書き込みの前に、タイトル・時刻・タイムゾーン・ゲストの一覧を見せるようエージェントに依頼してください。組織外のゲストが含まれる場合はとくに重要です。エージェントは予定を削除できず、更新しかできないため、誤った招待の後始末は Google Calendar であなたが行うことになります。

## ゲストと通知

エージェントが作成・更新する予定にはゲストを含められ、Google はそれをあなた自身が追加したゲストとまったく同じに扱います。ここから 2 つのことが導かれます。

**ゲストには必ず予定が見えます。** 誰かをゲストに追加すると、その予定は相手のカレンダーに載ります。通知設定が制御するのは、Google が招待メールも送るかどうかだけで、相手に予定が入るかどうかは制御しません。エージェントは「全ゲストに通知」「組織外のゲストにのみ通知」「誰にも通知しない」のいずれかを指定でき、とくに指定しなければ Google の既定の挙動になります。

**ゲストを変えるときは一覧全体を送ることになります。** Google は予定のゲストを 1 つのリストとして保存するため、更新は追加ではなく置き換えになります。既存の会議に 1 人追加するようエージェントに頼むと、エージェントは現在のゲストを読み取り、新しい相手と一緒に送り直す必要があります。すでにゲストがいる会議では「X を招待して」ではなく「ほかの人はそのままで X を追加して」と伝え、結果を確認してください。エージェントには正しく行うための操作が揃っていますが、この言い方にすれば曖昧さがなくなります。

これ以外のフィールドは逆の挙動です。更新はエージェントが実際に指定した項目だけを変更します。予定を 1 時間後ろにずらすよう頼んでも、説明・繰り返しルール・会議リンクは消えません。

## エージェントができること

エージェントが使える操作は次のとおりです。どれを使うかは依頼の内容からエージェントが自分で選びます。操作を直接実行するためのコマンド構文はありませんが、メッセージの中で操作名を挙げればエージェントをその操作へ誘導できます。

| 領域  | 操作  | 内容  |
|  --- | --- | --- |
| カレンダー | `googlecalendar.list_calendars` | 接続したアカウントのカレンダーリストにあるカレンダーを、それぞれのアクセスロールとともに一覧します。1 回のリクエストで最大 250 件（ページング対応）です。 |
| 予定の読み取り | `googlecalendar.list_events`、`googlecalendar.list_events_all_calendars`、`googlecalendar.get_event`、`googlecalendar.list_event_instances` | 1 つのカレンダー、または複数のカレンダーをまとめて予定を一覧し（複数版は結果を集約し、カレンダーごとのエラーも報告します）、1 つの予定の全内容を読み取り、繰り返し予定の各回を展開します。期間・全文検索クエリ・予定の種類・繰り返しを展開するかどうかなどで絞り込めます。1 回のリクエストで最大 2,500 件（ページング対応）です。 |
| 予定の検索 | `googlecalendar.find_event` | カレンダーの予定を全文検索クエリで検索します。期間での絞り込みと並び替えも指定できます。最大 2,500 件（ページング対応）です。 |
| 空き時間 | `googlecalendar.free_busy_query`、`googlecalendar.find_free_slots` | 指定した期間について、カレンダーまたはグループの予定が入っている時間帯を読み取ります。またはそこからコネクタに空き枠を導出させます。グループは 1 つあたり最大 100 カレンダーまで展開され、展開後に返されるのは最大 50 カレンダーです。 |
| 予定の書き込み | `googlecalendar.create_event`、`googlecalendar.update_event` | 予定を作成、または既存の予定を更新します。書き込めるのはタイトル・説明・場所・開始と終了・ゲスト・繰り返しルール・会議データ・リマインダー・色・公開範囲・時間を占有するかどうか・ステータス・添付・拡張プロパティ・ソースです。どちらもゲストへの通知設定を指定できます。更新は予定を先に読み取り、指定されたフィールドだけを変更します。 |


### Google Calendar コネクタが公開しないもの

以下はアカウントのポリシーでブロックされており、アカウント単位やメンバー単位で有効化することはできません。

- **予定の削除はできません。** エージェントが行うのは予定の作成と更新で、削除は Google Calendar でのあなたの作業です。更新によって予定をキャンセル扱いにすることはできます。これは Google がキャンセル済みの予定を表現する方法で、予定自体はカレンダーに残ります。
- **移動・インポート・一行での予定作成はできません。** 予定を別のカレンダーへ移す、予定をインポートする、自然文 1 行から予定を作る、といった操作はできません。エージェントは指定されたカレンダーに、与えられた項目から予定を組み立てます。
- **カレンダーの管理はできません。** エージェントが扱えるのはリストに既にあるカレンダーだけです。カレンダーの作成・削除・名称変更・全消去はできず、リストへの追加やリストからの削除もできません。
- **共有設定の変更も、共有状況の読み取りもできません。** エージェントは誰かにカレンダーのアクセス権を与えたり、権限を変更したり、取り上げたりできません。誰が既にアクセス権を持っているかを伝えることもできません。
- **カレンダーの設定は読めません。** タイムゾーン・勤務時間・色の定義など、Google Calendar の設定は対象外です。
- **ほかの Google プロダクトは対象外です。** このコネクタが到達するのは Google Calendar だけです。Google Search Console と Google Analytics は別のコネクタで、それぞれ個別の認可が必要です。
- **Google Meet のリンクは確実には付けられません。** 予定に新しい Meet リンクを発行する手段としてエージェントを当てにはできません。会議リンクが目的なら Google Calendar で予定を作成してください。


## エージェントに見える範囲

Google Calendar コネクタはあなた自身の Google の認可を持つため、到達範囲は接続した Google アカウントのカレンダーへのアクセス権によって決まります。

- そのアカウントの**カレンダーリストにあるすべてのカレンダー** — 自分のカレンダーと、他の人や組織が共有してあなたが追加したカレンダーです。追加していないカレンダーは対象外で、エージェントが追加することもできません。
- **各カレンダーの共有レベルが許す範囲の詳細。** 予定ありなしのみで共有されたカレンダーは、タイトルやゲストではなく予定が入っている時間帯だけを返します。エージェントに見えるのは、あなたが Google Calendar で見えるものと完全に同じです。
- **照会できる相手の予定の空き状況。** 空き時間の照会は Google 自身のルールに従います。予定の内容は読めなくても、その時間に同僚が埋まっているかどうかは分かる、という具合です。
- **書き込みができるのは、そのアカウントが書き込める範囲だけです。** カレンダーへの予定の作成・更新には、人が手作業で行う場合と同じアクセス権が Google 側で必要です。読み取り専用で共有されたカレンダーでは、書き込みは Google 側で失敗します。


これを適用するのはリクエストを受け取った Google 側であり、Treasure AI Studio ではありません。プロンプトで範囲を広げることはできません。エージェントは範囲を狭めること（1 つのカレンダーだけ、1 週間だけを見るよう指示する）はできますが、広げることはできません。

カレンダーの中身も対象に含まれます
この認可の対象は、カレンダーリストにあるすべてのカレンダーです。自分で追加した個人用のカレンダーや、タイトルが機微な予定も含まれます。あるトピックを検索したエージェントがそれをあなたのチャットに持ち出すことがあり、同僚と共有しているチャットではその内容が相手にも見えます。それが許容できない場合は、その Google アカウントのリストから該当のカレンダーを外すか、仕事用のカレンダーだけを持つ Google アカウントで接続してください。

## リファレンス

| 項目 | 値 |
|  --- | --- |
| コネクタ | Google Calendar |
| 内部 ID | `googlecalendar` — チャットの **[Connection Required]** カードに表示される ID |
| 認証 | OAuth 2.0 認可コード + PKCE（user-to-machine）、プラットフォーム管理の Google OAuth アプリケーション |
| 要求する Google スコープ | 2 つ: `https://www.googleapis.com/auth/calendar.readonly` と `https://www.googleapis.com/auth/calendar.events`。カレンダーの管理・設定・共有のためのスコープは意図的に要求しません |
| 必要な設定 | なし。管理者は入力項目のないままコネクタを保存します |
| アクセス | 読み取りと予定の書き込み — カレンダーと予定の読み取り、空き時間の照会、予定の作成と更新。カレンダーの管理・共有設定の変更・予定の削除はできません |
| 使用する Google API | Google Calendar API v3 |
| エージェントの識別情報 | 認可した Google アカウントとして動作します。作成した予定はそのアカウントが主催者として表示され、招待もその人の名義で届きます |
| リクエストの実行場所 | エージェントのサンドボックス外にある Treasure AI のコネクタサービス |
| egress ドメイン | なし — サンドボックスは Calendar API に到達しないため、ネットワークポリシーのルールは不要です |
| 1 回の読み取りの予定数 | 最大 2,500 件（ページング対応）。複数カレンダーの読み取りではカレンダーごとにこの上限が適用されます |
| 1 回の読み取りのカレンダー数 | 最大 250 件（ページング対応） |
| 空き時間照会の展開上限 | グループ 1 つあたり最大 100 カレンダーまで展開し、展開後に返すのは最大 50 カレンダー |
| 時刻の形式 | 時刻指定の予定は RFC 3339 のタイムスタンプと IANA タイムゾーン（例: `Asia/Tokyo`）、終日の予定は `YYYY-MM-DD` の日付 |
| ゲストへの通知 | 書き込みごとに選択します（全ゲストに通知 / 組織外のゲストにのみ通知 / 誰にも通知しない）。エージェントが指定しない場合は Google の既定が適用されます。いずれの場合もゲストのカレンダーには予定が入ります |
| 同時編集 | 更新時には予定の現在のバージョンタグを送ります。その間に他の人が予定を変更していた場合、コネクタは読み直して 1 回だけ再試行し、それでも変わっていれば相手の変更を上書きせずに失敗します |
| トークンの有効期間 | 短命なアクセストークンを自動で更新します。そのためコネクションは接続し直さずにセッションをまたいで有効なままです |
| メンバーあたりのコネクション数 | 1 つ（Google アカウント 1 つ分と、そのリストにあるすべてのカレンダーが対象） |


## トラブルシューティング

| 症状 | 対処 |
|  --- | --- |
| コネクションタブに Google Calendar が表示されない | 管理者が **[コネクタ設定]** で Google Calendar コネクタを追加し、有効化する必要があります。 |
| 使っているカレンダーがエージェントに見えない | そのカレンダーは、接続した Google アカウントのカレンダーリストに入っていなければなりません。Google Calendar で追加してから、もう一度依頼してください。エージェント自身がカレンダーを登録することはできません。また、そのカレンダーを実際に持つ Google アカウントを認可したかも確認してください。ポップアップのアカウント選択は流してしまいやすい箇所です。 |
| 予定は見えるがタイトルやゲストが見えない | そのカレンダーが予定ありなしのみで共有されています。エージェントはあなたの見え方を引き継ぐため、Treasure AI 側で広げられるものはありません。カレンダーの所有者にアクセス権の拡大を依頼してください。 |
| エージェントが更新した予定からゲストが消えた | 更新はゲストの一覧を追加ではなく置き換えます。消えたゲストを再追加し、次回は既存のゲストを維持するようエージェントに伝えてください（[ゲストと通知](#%E3%82%B2%E3%82%B9%E3%83%88%E3%81%A8%E9%80%9A%E7%9F%A5) を参照）。 |
| 意図しない相手をエージェントが招待した | 予定を正しいゲストの一覧に更新してください。エージェントは予定を削除できないため、予定自体が誤りだった場合は Google Calendar で削除します。次回は書き込みの前にゲストの一覧を確認させてください。 |
| ゲストからメールが届かないと言われた | Google はその書き込みで使われた通知設定に従って招待メールを送ります。メールが無くても予定は相手のカレンダーに表示されます。全ゲストに通知する形で予定を更新するようエージェントに依頼してください。 |
| 更新中に予定が変更されたとエージェントが言う | 同じタイミングで他の人が予定を編集しています。コネクタは読み直して 1 回再試行してから失敗するため、もう一度依頼してください。 |
| エージェントがカレンダーに予定を作成できない | エージェントはあなたとして書き込むため、あなた自身が書き込める場所にしか書き込めません。Google Calendar でそのカレンダーへのアクセス権を確認するか、メインのカレンダーを使うようエージェントに依頼してください。 |
| 予定の削除を頼んだら断られた | 想定どおりの動作です。予定の削除はすべてのアカウントでブロックされています。Google Calendar で予定を削除するか、更新で対応するようエージェントに依頼してください。 |
| カレンダーの共有を頼んだら断られた | 想定どおりの動作です。アクセス制御の操作はすべてブロックされており、誰がアクセス権を持っているかの読み取りも含まれます。共有設定の変更は Google Calendar で行ってください。 |
| エージェントが再接続を求めてくる | 認可が失効したか、Google 側で取り消されています（Google アカウントのサードパーティ接続から Treasure AI Studio を削除した場合も含みます）。**[設定] → [コネクション]** から接続し直してください。 |
| コネクションタブからコネクタが消えた | 管理者が無効化した可能性があります。コネクション自体は保持されますが、コネクタが再度有効化されるまでエージェントは Google Calendar を利用できません。 |


## 次のステップ

- [コネクション](/ja/products/ai-studio/connections) — コネクションの全体像と管理者向けの制御
- [Google Search Console への接続](/ja/products/ai-studio/connections/google-search-console) — エージェントに Google 検索のパフォーマンスデータを読み取らせる
- [Slack への接続](/ja/products/ai-studio/connections/slack) — エージェントがあなたとして Slack のメッセージを検索・閲覧・投稿できるようにする
- [スキルとマーケットプレイス](/ja/products/ai-studio/skills/skills) — スキルがエージェントにドメイン専門知識を与える仕組み
- [セキュリティ概要](/ja/products/ai-studio/security) — Studio でのアクセス制御の仕組み