cal-com-automation について
Rube MCP 経由で Composio の Cal ツールキットを利用し、Cal.com のスケジュールを自動化するスキルです。予約、空き状況、Webhook、チーム、組織情報を扱い、認可済みの Cal.com 接続が必要です。
主な機能
- 01予約の一覧表示と作成
- 02予定と空き枠の確認
- 03予約 Webhook の管理
- 04チームの表示と管理
活用シーン
- 01予約前に空き時間を確認
- 02予定を作成または確認
- 03予約イベントの通知を設定
- 04チームとイベントタイプの詳細を確認
MCP 対応
Rube MCP を介して Composio の Cal ツールキットを利用します。ワークフローの実行前に Rube MCP を接続し、Cal.com アカウントを認可します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill cal-com-automationインストール後、Claude Code で/cal-com-automationを入力して読み込まれたか確認します。
詳細
Rube MCP による Cal.com の自動化
Rube MCP を介して Composio の Cal ツールキットを使用し、Cal.com のスケジュール管理操作を自動化します。
前提条件
- Rube MCP が接続されていること(RUBE_SEARCH_TOOLS を利用可能)
RUBE_MANAGE_CONNECTIONSでツールキットcalを指定して、Cal.com に接続していること- 現在のツールスキーマを取得するため、必ず最初に
RUBE_SEARCH_TOOLSを呼び出してください
セットアップ
Rube MCP の取得:クライアント設定で https://rube.app/mcp を MCP サーバーとして追加します。エンドポイントはホストの指示に従って接続し、認証する必要があります。各サービスへの接続には、それぞれ個別に認可されたアカウントとスコープが必要です。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確認します- ツールキット
calを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクに従って Cal.com の認証を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. 予約を管理する
使用する場面:ユーザーが予約の一覧表示、作成、確認を希望する場合
ツールの順序:
CAL_FETCH_ALL_BOOKINGS- フィルターを指定してすべての予約を一覧表示します[必須]CAL_POST_NEW_BOOKING_REQUEST- 新しい予約を作成します[任意]
一覧表示の主なパラメーター:
status:予約ステータスでフィルターします('upcoming'、'recurring'、'past'、'cancelled'、'unconfirmed')afterStart:この日付より後の予約でフィルターします(ISO 8601)beforeEnd:この日付より前の予約でフィルターします(ISO 8601)
作成時の主なパラメーター:
eventTypeId:予約のイベントタイプ IDstart:予約の開始時刻(ISO 8601)end:予約の終了時刻(ISO 8601)name:参加者の名前email:参加者のメールアドレスtimeZone:参加者のタイムゾーン(IANA 形式)language:参加者の言語コードmetadata:追加のメタデータオブジェクト
注意点:
- 日付フィルターにはタイムゾーン付きの ISO 8601 形式を使用します(例:'2024-01-15T09:00:00Z')
eventTypeIdは有効でアクティブなイベントタイプを参照している必要があります- 予約を作成するには、利用可能な時間枠に一致させる必要があります。事前に空き状況を確認してください
- タイムゾーンには有効な IANA タイムゾーン文字列を指定する必要があります(例:'America/New_York')
- ステータスフィルターには特定の文字列を指定します。無効な値を指定すると、結果は空になります
2. 空き状況を確認する
使用する場面:ユーザーが空き時間や予約可能な時間枠を確認したい場合
ツールの順序:
CAL_RETRIEVE_CALENDAR_BUSY_TIMES- 予定が入っている時間帯を取得します[必須]CAL_GET_AVAILABLE_SLOTS_INFO- 具体的な予約可能時間枠を取得します[必須]
主なパラメーター:
dateFrom:空き状況の確認を開始する日付(YYYY-MM-DD)dateTo:空き状況の確認を終了する日付(YYYY-MM-DD)eventTypeId:時間枠を確認するイベントタイプtimeZone:空き状況の応答に使用するタイムゾーンloggedInUsersTz:リクエストしたユーザーのタイムゾーン
注意点:
- 予定が入っている時間帯は、ユーザーが利用できない時間を示します
- 予約可能な時間枠は、イベントタイプの所要時間と設定に固有です
- 正確な結果を得るため、日付範囲は妥当な長さにしてください(数カ月先まで指定しないでください)
- タイムゾーンによって時間枠の表示が変わるため、必ず明示的に指定してください
- 空き状況には、カレンダー連携(Google Calendar、Outlook など)が反映されます
3. Webhook を設定する
使用する状況:予約イベントの Webhook 通知を設定または管理したい場合
ツールの実行順序:
CAL_RETRIEVE_WEBHOOKS_LIST- 既存の Webhook を一覧表示します[必須]CAL_GET_WEBHOOK_BY_ID- 特定の Webhook の詳細を取得します[任意]CAL_UPDATE_WEBHOOK_BY_ID- Webhook の設定を更新します[任意]CAL_DELETE_WEBHOOK_BY_ID- Webhook を削除します[任意]
主なパラメーター:
id:GET/UPDATE/DELETE 操作用の Webhook IDsubscriberUrl:Webhook エンドポイントの URLeventTriggers:トリガーするイベントタイプの配列active:Webhook が有効かどうかsecret:Webhook 署名用シークレット
注意点:
- Webhook URL は、インターネットからアクセス可能な HTTPS エンドポイントである必要があります
- イベントトリガーには「BOOKING_CREATED」、「BOOKING_RESCHEDULED」、「BOOKING_CANCELLED」などがあります
- 無効な Webhook は実行されません。有効/無効を切り替えるには
activeを変更してください - Webhook シークレットは、ペイロードの署名検証に使用されます
4. チームを管理する
使用する状況:チームやチームのイベントタイプを作成、表示、管理したい場合
ツールの実行順序:
CAL_GET_TEAMS_LIST- すべてのチームを一覧表示します[必須]CAL_GET_TEAM_INFORMATION_BY_TEAM_ID- 特定のチームの詳細を取得します[任意]CAL_CREATE_TEAM_IN_ORGANIZATION- 新しいチームを作成します[任意]CAL_RETRIEVE_TEAM_EVENT_TYPES- チームのイベントタイプを一覧表示します[任意]
主なパラメーター:
teamId:チーム識別子name:チーム名(作成時)slug:URL で使用しやすいチーム識別子
注意点:
- チームの作成には、組織レベルの権限が必要な場合があります
- チームのイベントタイプは、個人のイベントタイプとは別です
- チームのスラッグは URL で使用できる形式で、組織内で一意である必要があります
5. 組織を管理する
使用する状況:組織の詳細を確認したい場合
ツールの実行順序:
CAL_GET_ORGANIZATION_ID- 組織 ID を取得します[必須]
主なパラメーター:(必須のパラメーターはありません)
注意点:
- チームの作成や組織レベルの操作には、組織 ID が必要です
- すべての Cal.com アカウントに組織があるとは限りません。個人向けプランではエラーが返される場合があります
よくあるパターン
予約の作成フロー
1. Call CAL_GET_AVAILABLE_SLOTS_INFO to find open slots
2. Present available times to the user
3. Call CAL_POST_NEW_BOOKING_REQUEST with selected slot
4. Confirm booking creation response
ID の解決
チーム名 -> チーム ID:
1. Call CAL_GET_TEAMS_LIST
2. Find team by name in response
3. Extract id field
Webhook の設定
1. Call CAL_RETRIEVE_WEBHOOKS_LIST to check existing hooks
2. Create or update webhook with desired triggers
3. Verify webhook fires on test booking
既知の注意点
日付/時刻の形式:
- 予約時刻:タイムゾーン付きの ISO 8601 形式(例:「2024-01-15T09:00:00Z」)
- 空き状況の日付:YYYY-MM-DD 形式
- 誤解を避けるため、必ずタイムゾーンを明示してください
イベントタイプ:
- イベントタイプ ID は数値の整数です
- イベントタイプによって、所要時間、場所、予約ルールが定義されます
- 無効なイベントタイプでは、新しい予約を受け付けられません
権限:
- チームの操作には、チームメンバーシップまたは管理者アクセス権が必要です
- 組織の操作には、組織レベルの権限が必要です
- Webhook の管理には、適切なアクセスレベルが必要です
レート制限:
- Cal.com API には、API キーごとのレート制限があります
- 429 レスポンスを受信した場合は、バックオフを実装してください
クイックリファレンス
| タスク | ツールのスラッグ | 主なパラメーター |
|---|---|---|
| 予約を一覧表示 | CAL_FETCH_ALL_BOOKINGS | status, afterStart, beforeEnd |
| 予約を作成 | CAL_POST_NEW_BOOKING_REQUEST | eventTypeId, start, end, name, email |
| 予定ありの時間を取得 | CAL_RETRIEVE_CALENDAR_BUSY_TIMES | dateFrom, dateTo |
| 予約可能な時間枠を取得 | CAL_GET_AVAILABLE_SLOTS_INFO | eventTypeId, dateFrom, dateTo |
| Webhook を一覧表示 | CAL_RETRIEVE_WEBHOOKS_LIST | (なし) |
| Webhook を取得 | CAL_GET_WEBHOOK_BY_ID | id |
| Webhook を更新 | CAL_UPDATE_WEBHOOK_BY_ID | id, subscriberUrl, eventTriggers |
| Webhook を削除 | CAL_DELETE_WEBHOOK_BY_ID | id |
| チームを一覧表示 | CAL_GET_TEAMS_LIST | (なし) |
| チームを取得 | CAL_GET_TEAM_INFORMATION_BY_TEAM_ID | teamId |
| チームを作成 | CAL_CREATE_TEAM_IN_ORGANIZATION | name, slug |
| チームのイベントタイプ | CAL_RETRIEVE_TEAM_EVENT_TYPES | teamId |
| 組織 ID を取得 | CAL_GET_ORGANIZATION_ID | (なし) |
使用する状況
このスキルは、概要で説明されているワークフローまたはアクションを実行する際に使用できます。
制限事項
- タスクが上記の説明にある範囲に明確に該当する場合にのみ、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中止して確認を求めてください。
予約の作成によって、参加者への通知やカレンダーの予約が行われる場合があります。書き込みを行う前に、許可されたリクエストで正確なイベントの種類、参加者、タイムゾーン、時間枠を確認してください。空き状況を再確認し、競合があれば報告してください。Webhook は予約データを送信先に開示するため、URL と署名シークレットの取り扱いを確認してください。予約結果が不確かな場合は、重複した予定を避けるため、再試行する前に結果を照合してください。