mcpField
C
cal-com-automation

cal-com-automation

github.com/davepoon生産性3.7k117 回インストール今日更新
リポジトリ

cal-com-automation について

Rube MCP と Composio の Cal ツールキットを通じて、Cal.com のスケジュール管理を自動化するスキルです。予約、空き時間、チーム、Webhook を扱うユーザー向けで、予約の検索や作成などに対応します。

主な機能

  1. 01ステータスや日付による予約の絞り込み
  2. 02多忙時間と予約可能枠の確認
  3. 03予約リクエストの作成
  4. 04Webhook の参照・更新・削除
  5. 05チームとイベントタイプの閲覧

活用シーン

  1. 01期間を指定した予約可能枠の検索
  2. 02選択した枠での予約作成
  3. 03予約イベント通知用Webhookの管理
  4. 04チームとチームのイベントタイプの確認

MCP 対応

Rube MCP 経由で Cal.com のツールを使用します。利用には Cal.com 接続が必要で、RUBE_SEARCH_TOOLS から最新のツールスキーマを取得します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davepoon/buildwithclaude --skill cal-com-automation

インストール後、Claude Code で/cal-com-automationを入力して読み込まれたか確認します。

詳細

Rube MCP を使用した Cal.com の自動化

Rube MCP を通じて Composio の Cal ツールキットを利用し、Cal.com のスケジュール管理操作を自動化します。

ツールキットのドキュメント: composio.dev/toolkits/cal

前提条件

  • Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能)
  • RUBE_MANAGE_CONNECTIONS でツールキット cal を指定した、有効な Cal.com 接続
  • 現在のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください

セットアップ

Rube MCP を入手する: クライアント設定で https://rube.app/mcp を MCP サーバーとして追加してください。API キーは不要です。エンドポイントを追加するだけで動作します。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確認します
  2. ツールキット cal を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクを開いて Cal.com の認証を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE と表示されていることを確認します

主なワークフロー

1. 予約を管理する

使用する場合: ユーザーが予約の一覧表示、作成、または確認を希望するとき

ツールの実行順序:

  1. CAL_FETCH_ALL_BOOKINGS - フィルターを指定してすべての予約を一覧表示します[必須]
  2. CAL_POST_NEW_BOOKING_REQUEST - 新しい予約を作成します[任意]

一覧表示の主なパラメーター:

  • status: 予約ステータスで絞り込みます('upcoming'、'recurring'、'past'、'cancelled'、'unconfirmed')
  • afterStart: この日付以降に開始する予約で絞り込みます(ISO 8601)
  • beforeEnd: この日付以前に終了する予約で絞り込みます(ISO 8601)

作成時の主なパラメーター:

  • eventTypeId: 予約のイベントタイプ ID
  • start: 予約の開始時刻(ISO 8601)
  • end: 予約の終了時刻(ISO 8601)
  • name: 参加者の名前
  • email: 参加者のメールアドレス
  • timeZone: 参加者のタイムゾーン(IANA 形式)
  • language: 参加者の言語コード
  • metadata: 追加のメタデータオブジェクト

注意点:

  • 日付フィルターには、タイムゾーンを含む ISO 8601 形式を使用します(例: '2024-01-15T09:00:00Z')
  • eventTypeId は、有効でアクティブなイベントタイプを参照している必要があります
  • 予約を作成するには、空き枠に一致させる必要があります。先に空き状況を確認してください
  • タイムゾーンには、有効な IANA タイムゾーン文字列を指定する必要があります(例: 'America/New_York')
  • ステータスフィルターには指定された文字列を使用します。無効な値を指定すると、結果は空になります
2. 空き状況を確認する

使用する場合: ユーザーが空き時間や予約可能な枠を確認したいとき

ツールの実行順序:

  1. CAL_RETRIEVE_CALENDAR_BUSY_TIMES - 予定が入っている時間帯を取得します[必須]
  2. CAL_GET_AVAILABLE_SLOTS_INFO - 具体的な空き枠を取得します[必須]

主なパラメーター:

  • dateFrom: 空き状況を確認する開始日(YYYY-MM-DD)
  • dateTo: 空き状況を確認する終了日(YYYY-MM-DD)
  • eventTypeId: 空き枠を確認するイベントタイプ
  • timeZone: 空き状況のレスポンスに使用するタイムゾーン
  • loggedInUsersTz: リクエストしたユーザーのタイムゾーン

注意点:

  • 予定が入っている時間帯は、ユーザーが利用できない時間を示します
  • 空き枠は、イベントタイプの所要時間と設定によって異なります
  • 正確な結果を得るには、妥当な日付範囲を指定してください(数か月先まで指定しないでください)
  • タイムゾーンによって空き枠の表示が変わるため、必ず明示的に指定してください
  • 空き状況には、カレンダー連携(Google Calendar、Outlook など)が反映されます
3. Webhook を設定する

使用するタイミング:予約イベントの Webhook 通知を設定または管理する場合

ツールの順序:

  1. CAL_RETRIEVE_WEBHOOKS_LIST - 既存の Webhook を一覧表示します[必須]
  2. CAL_GET_WEBHOOK_BY_ID - 特定の Webhook の詳細を取得します[任意]
  3. CAL_UPDATE_WEBHOOK_BY_ID - Webhook の設定を更新します[任意]
  4. CAL_DELETE_WEBHOOK_BY_ID - Webhook を削除します[任意]

主なパラメーター:

  • id:GET/UPDATE/DELETE 操作で使用する Webhook ID
  • subscriberUrl:Webhook エンドポイントの URL
  • eventTriggers:トリガー対象のイベントタイプの配列
  • active:Webhook が有効かどうか
  • secret:Webhook 署名用シークレット

注意点:

  • Webhook URL は、インターネットからアクセス可能な HTTPS エンドポイントである必要があります
  • イベントトリガーには、'BOOKING_CREATED'、'BOOKING_RESCHEDULED'、'BOOKING_CANCELLED' などがあります
  • 無効な Webhook は実行されません。active を切り替えて有効化/無効化してください
  • Webhook シークレットは、ペイロードの署名検証に使用します
4. チームを管理する

使用するタイミング:チームやチームのイベントタイプを作成、表示、管理する場合

ツールの順序:

  1. CAL_GET_TEAMS_LIST - すべてのチームを一覧表示します[必須]
  2. CAL_GET_TEAM_INFORMATION_BY_TEAM_ID - 特定のチームの詳細を取得します[任意]
  3. CAL_CREATE_TEAM_IN_ORGANIZATION - 新しいチームを作成します[任意]
  4. CAL_RETRIEVE_TEAM_EVENT_TYPES - チームのイベントタイプを一覧表示します[任意]

主なパラメーター:

  • teamId:チーム識別子
  • name:チーム名(作成時)
  • slug:URL で使用できるチーム識別子

注意点:

  • チームの作成には、組織レベルの権限が必要な場合があります
  • チームのイベントタイプは、個人のイベントタイプとは別です
  • チームのスラッグは、URL で使用できる形式で、組織内で一意である必要があります
5. 組織を管理する

使用するタイミング:組織の詳細を表示する場合

ツールの順序:

  1. 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_BOOKINGSstatus, afterStart, beforeEnd
予約を作成CAL_POST_NEW_BOOKING_REQUESTeventTypeId, start, end, name, email
予定ありの時間を取得CAL_RETRIEVE_CALENDAR_BUSY_TIMESdateFrom, dateTo
空き時間枠を取得CAL_GET_AVAILABLE_SLOTS_INFOeventTypeId, dateFrom, dateTo
Webhook を一覧表示CAL_RETRIEVE_WEBHOOKS_LIST(none)
Webhook を取得CAL_GET_WEBHOOK_BY_IDid
Webhook を更新CAL_UPDATE_WEBHOOK_BY_IDid, subscriberUrl, eventTriggers
Webhook を削除CAL_DELETE_WEBHOOK_BY_IDid
チームを一覧表示CAL_GET_TEAMS_LIST(none)
チームを取得CAL_GET_TEAM_INFORMATION_BY_TEAM_IDteamId
チームを作成CAL_CREATE_TEAM_IN_ORGANIZATIONname, slug
チームのイベントタイプCAL_RETRIEVE_TEAM_EVENT_TYPESteamId
組織 ID を取得CAL_GET_ORGANIZATION_ID(none)

Composio 提供

コメント