google-calendar-automation について
google-calendar-automationは、ComposioのGoogle Calendarツールキットでカレンダー業務を自動化するスキルです。Rube MCPを介し、予定の操作や検索、参加者管理、空き時間の確認を行います。
主な機能
- 01予定の作成・更新・削除
- 02カレンダー予定の検索と閲覧
- 03予定参加者の管理
- 04空き時間と予定状況の確認
活用シーン
- 01空き時間を確認して予定を設定
- 02期間を指定して予定を検索
- 03予定の参加者を追加・削除
MCP 対応
Rube MCPを通じてComposioのGoogle Calendarツールキットにアクセスします。利用前にRube MCPと有効なGoogle Calendarアカウント接続が必要です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill google-calendar-automationインストール後、Claude Code で/google-calendar-automationを入力して読み込まれたか確認します。
詳細
Rube MCP による Google Calendar の自動化
Composio の Google Calendar ツールキットを使用して、イベントの作成、スケジュール設定、空き状況の確認、参加者の管理、カレンダーの閲覧など、Google Calendar のワークフローを自動化します。
ツールキットのドキュメント:composio.dev/toolkits/googlecalendar
前提条件
- Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能)
RUBE_MANAGE_CONNECTIONSでツールキットgooglecalendarを指定した、有効な Google Calendar 接続- 現在のツールスキーマを取得するため、必ず最初に
RUBE_SEARCH_TOOLSを呼び出すこと
セットアップ
Rube MCP を入手する:クライアントの設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで使用できます。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確認しますRUBE_MANAGE_CONNECTIONSをツールキットgooglecalendarで呼び出します- 接続が ACTIVE でない場合は、返された認証リンクに従って Google OAuth を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. イベントの作成と管理
使用する場面:ユーザーがカレンダーイベントの作成、更新、削除を希望する場合
ツールの順序:
GOOGLECALENDAR_LIST_CALENDARS- 対象のカレンダー ID を特定します[前提条件]GOOGLECALENDAR_GET_CURRENT_DATE_TIME- 適切なタイムゾーンで現在時刻を取得します[任意]GOOGLECALENDAR_FIND_FREE_SLOTS- 予約前に空き状況を確認します[任意]GOOGLECALENDAR_CREATE_EVENT- イベントを作成します[必須]GOOGLECALENDAR_PATCH_EVENT- 既存イベントの特定のフィールドを更新します[代替手段]GOOGLECALENDAR_UPDATE_EVENT- イベント全体を置き換えて更新します[代替手段]GOOGLECALENDAR_DELETE_EVENT- イベントを削除します[任意]
主なパラメーター:
calendar_id:メインカレンダーには 'primary' を使用するか、特定のカレンダー ID を指定しますstart_datetime:ISO 8601 形式の 'YYYY-MM-DDTHH:MM:SS'(自然言語は不可)timezone:IANA タイムゾーン名(例:'America/New_York'。'EST' や 'PST' は不可)event_duration_hour:時間(0 以上)event_duration_minutes:分(0~59 のみ。60 以上は絶対に指定しないでください)summary:イベントのタイトルattendees:メールアドレスの配列(名前は不可)location:イベントの場所を表す自由形式のテキスト
注意点:
start_datetimeは ISO 8601 形式で指定する必要があります。'tomorrow' のような自然言語は拒否されますevent_duration_minutesの最大値は 59 です。event_duration_minutes=60の代わりにevent_duration_hour=1を使用してくださいtimezoneには IANA 識別子を指定する必要があります。'EST' や 'PST' のような略称は有効ではありませんattendeesにはメールアドレスのみ指定できます。名前を先に解決してください- Google Meet リンクの作成はデフォルトで有効ですが、個人用 Gmail アカウントでは失敗する場合があります(その場合は適切にフォールバックします)
exclude_organizer=trueを指定しない限り、主催者は参加者として自動的に追加されます
2. イベントの一覧表示と検索
使用する場面:ユーザーがカレンダーのイベントを検索または閲覧したい場合
ツールの順序:
GOOGLECALENDAR_LIST_CALENDARS- 利用可能なカレンダーを取得します[前提条件]GOOGLECALENDAR_FIND_EVENT- タイトルやキーワードを時間範囲で検索します[必須]GOOGLECALENDAR_EVENTS_LIST- 時間範囲内のイベントを一覧表示します[代替手段]GOOGLECALENDAR_EVENTS_INSTANCES- 繰り返しイベントの各回を一覧表示します[任意]
主なパラメーター:
query/q:フリーテキスト検索(概要、説明、場所、出席者が一致します)timeMin:下限(タイムゾーンオフセット付きの RFC3339 形式。例:'2024-01-01T00:00:00-08:00')timeMax:上限(タイムゾーンオフセット付きの RFC3339 形式)singleEvents:繰り返しイベントを各回に展開する場合は trueorderBy:'startTime'(singleEvents=true が必要)または 'updated'maxResults:ページごとの結果数(最大 2500 件)
注意点:
- タイムゾーンに関する警告:UTC タイムスタンプ(末尾が 'Z' のもの)は現地の日付と一致しません。代わりに現地のタイムゾーンオフセットを使用してください
- 例:'2026-01-19T00:00:00Z' は、PST では 2026-01-18 4pm から 2026-01-19 4pm までの範囲になります
timeMin/timeMaxを省略すると、カレンダー全体が検索され、時間がかかることがあります- 応答に
pageTokenがある場合、結果がさらにあります。なくなるまでページネーションしてください orderBy='startTime'にはsingleEvents=trueが必要です
3. 出席者と招待の管理
使用する場面:ユーザーがイベントの出席者を追加、削除、更新したい場合
ツールの順序:
GOOGLECALENDAR_FIND_EVENTまたはGOOGLECALENDAR_EVENTS_LIST- イベントを検索します[前提条件]GOOGLECALENDAR_PATCH_EVENT- 出席者を追加します(出席者リスト全体を置き換えます)[必須]GOOGLECALENDAR_REMOVE_ATTENDEE- メールアドレスを指定して特定の出席者を削除します[必須]
主なパラメーター:
event_id:一意のイベント識別子(不透明な文字列であり、イベントのタイトルではありません)attendees:出席者のメールアドレス全件(PATCH はリスト全体を置き換えます)attendee_email:削除するメールアドレスsend_updates:'all'、'externalOnly'、または 'none'
注意点:
event_idは技術的な識別子であり、イベントのタイトルではありません。ID を取得するため、必ず最初に検索してくださいPATCH_EVENTの出席者フィールドはリスト全体を置き換えます。既存の出席者を削除しないよう、既存の出席者も含めてください- 出席者名からメールアドレスを特定することはできません。必ずメールアドレスを使用してください
- 出席者を管理する前に、
GMAIL_SEARCH_PEOPLEを使って名前からメールアドレスを特定してください
4. 空き状況と予定あり/なしの確認
使用する場面:ユーザーが空き時間を見つける、または予定のある時間帯を確認したい場合
ツールの順序:
GOOGLECALENDAR_LIST_CALENDARS- 確認するカレンダーを特定します[前提条件]GOOGLECALENDAR_GET_CURRENT_DATE_TIME- タイムゾーン付きで現在時刻を取得します[任意]GOOGLECALENDAR_FIND_FREE_SLOTS- 複数のカレンダーを対象に空き時間を検索します[必須]GOOGLECALENDAR_FREE_BUSY_QUERY- 空き時間を計算するため、予定のある時間帯を生データで取得します[代替手段]GOOGLECALENDAR_CREATE_EVENT- 確定した時間枠に予定を登録します[必須]
主なパラメーター:
items:確認するカレンダー ID のリスト(例:['primary'])time_min/time_max:検索する時間範囲(省略すると現在の日がデフォルトになります)timezone:タイムゾーン情報のないタイムスタンプの解釈に使う IANA タイムゾーンcalendarExpansionMax:カレンダーの最大数(1~50)groupExpansionMax:グループあたりの最大メンバー数(1~100)
注意点:
- Google Calendar freeBusy API の制限により、範囲は最大で約 90 日です
- 範囲が非常に長い場合や、アクセスできないカレンダーがある場合、結果が空または無効になることがあります
- freeBusyReader 以上のアクセス権があるカレンダーのみ表示されます
- 空き時間の応答は UTC('Z')に正規化される場合があります。オフセットを確認してください
GOOGLECALENDAR_FREE_BUSY_QUERYには、タイムゾーン付きの RFC3339 タイムスタンプが必要です
よくあるパターン
ID の特定
- カレンダー名 -> calendar_id:
GOOGLECALENDAR_LIST_CALENDARSを使ってすべてのカレンダーを列挙します - イベントタイトル -> event_id:
GOOGLECALENDAR_FIND_EVENTまたはGOOGLECALENDAR_EVENTS_LIST - 出席者名 -> メールアドレス:
GMAIL_SEARCH_PEOPLE
タイムゾーンの処理
- 常に IANA タイムゾーン識別子を使用します(例:'America/Los_Angeles')
GOOGLECALENDAR_GET_CURRENT_DATE_TIMEを使用して、ユーザーのタイムゾーンの現在時刻を取得します- ローカルの日付の予定を検索する場合は、UTC ではなくローカルオフセット付きのタイムスタンプを使用します
- 例:PST の場合は '2026-01-19T00:00:00-08:00' を使用し、'2026-01-19T00:00:00Z' は使用しません
ページネーション
GOOGLECALENDAR_EVENTS_LISTはnextPageTokenを返します。なくなるまで繰り返しますGOOGLECALENDAR_LIST_CALENDARSもページネーションに対応しています。page_tokenを使用します
既知の落とし穴
- 自然言語の日付:サポートされていません。すべての日付は ISO 8601 または RFC3339 形式にする必要があります
- タイムゾーンの不一致:UTC タイムスタンプは、フィルタリング時にローカルの日付と一致しません
- 期間の制限:
event_duration_minutesの最大値は 59 です。それより長い期間には時間単位を使用します - IANA タイムゾーンのみ:'EST' や 'PST' などは有効ではありません。'America/New_York' を使用します
- イベント ID は不透明です:必ず検索して event_id を取得します。推測したり、組み立てたりしないでください
- 参加者はメールアドレスで指定:名前は使用できません。GMAIL_SEARCH_PEOPLE で解決します
- PATCH は参加者を置き換えます:新規参加者だけでなく、希望する参加者全員を配列に含めます
- 会議の制限:個人アカウントでは Google Meet が失敗する場合があります(適切にフォールバックします)
- レート制限:大量の検索を行うと 403/429 が発生する場合があります。呼び出しの間隔を空けてください
クイックリファレンス
| タスク | ツールスラッグ | 主なパラメーター |
|---|---|---|
| カレンダーの一覧表示 | GOOGLECALENDAR_LIST_CALENDARS | max_results |
| 予定の作成 | GOOGLECALENDAR_CREATE_EVENT | start_datetime, timezone, summary |
| 予定の更新 | GOOGLECALENDAR_PATCH_EVENT | calendar_id, event_id, 更新するフィールド |
| 予定の削除 | GOOGLECALENDAR_DELETE_EVENT | calendar_id, event_id |
| 予定の検索 | GOOGLECALENDAR_FIND_EVENT | query, timeMin, timeMax |
| 予定の一覧表示 | GOOGLECALENDAR_EVENTS_LIST | calendarId, timeMin, timeMax |
| 繰り返し予定のインスタンス | GOOGLECALENDAR_EVENTS_INSTANCES | calendarId, eventId |
| 空き時間の検索 | GOOGLECALENDAR_FIND_FREE_SLOTS | items, time_min, time_max, timezone |
| 空き時間の照会 | GOOGLECALENDAR_FREE_BUSY_QUERY | timeMin, timeMax, items |
| 参加者の削除 | GOOGLECALENDAR_REMOVE_ATTENDEE | event_id, attendee_email |
| 現在時刻の取得 | GOOGLECALENDAR_GET_CURRENT_DATE_TIME | timezone |
| カレンダーの取得 | GOOGLECALENDAR_GET_CALENDAR | calendar_id |
Composio 提供