mcpField
C
calendly-automation

calendly-automation

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

calendly-automation について

Rube MCP と Composio のツールキットで Calendly を自動化するスキルです。イベントや予約者、予約リンク、空き時間、組織管理に対応します。

主な機能

  1. 01予定済みイベントの確認と絞り込み
  2. 02イベント予約者の確認
  3. 03予約リンクの作成
  4. 04空き時間の確認
  5. 05組織への招待管理

活用シーン

  1. 01期間を指定したイベント確認
  2. 02イベント予約者の確認
  3. 03イベントタイプの予約リンク作成
  4. 04組織へのメンバー招待

MCP 対応

Rube MCP 経由で Composio の Calendly ツールキットを利用します。実行前に Calendly の接続と認証が必要です。

インストール

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

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

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

詳細

Rube MCP による Calendly の自動化

Composio の Calendly ツールキットを通じて、イベントの一覧表示、招待者の管理、スケジュールリンクの作成、空き状況の照会、組織の管理など、Calendly の操作を自動化します。

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

前提条件

  • Rube MCP が接続されている必要があります(RUBE_SEARCH_TOOLS が利用可能)
  • RUBE_MANAGE_CONNECTIONS でツールキット calendly を指定し、Calendly に接続されている必要があります
  • 最新のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください
  • 多くの操作には、CALENDLY_GET_CURRENT_USER で取得するユーザーの Calendly URI が必要です

セットアップ

Rube MCP の取得: クライアントの設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで使用できます。

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

主なワークフロー

1. 予定済みイベントの一覧表示と確認

使用する場面: ユーザーが今後の Calendly イベント、過去の Calendly イベント、または条件で絞り込んだ Calendly イベントを確認したい場合

ツールの順序:

  1. CALENDLY_GET_CURRENT_USER - 認証済みユーザーの URI と組織の URI を取得します[前提条件]
  2. CALENDLY_LIST_EVENTS - ユーザー、組織、またはグループの範囲でイベントを一覧表示します[必須]
  3. CALENDLY_GET_EVENT - UUID を指定して特定のイベントの詳細情報を取得します[任意]

主なパラメーター:

  • user: Calendly API の完全な URI(例: https://api.calendly.com/users/{uuid})。"me" は指定できません
  • organization: 組織の範囲で照会するための完全な URI
  • status: "active" または "canceled"
  • min_start_time / max_start_time: UTC のタイムスタンプ(例: 2024-01-01T00:00:00.000000Z)
  • invitee_email: 招待者のメールアドレスでイベントを絞り込みます(フィルターであり、範囲ではありません)
  • sort: "start_time:asc" または "start_time:desc"
  • count: ページあたりの結果数(デフォルトは 20)
  • page_token: 前回の応答から取得したページネーショントークン

注意点:

  • user、organization、group のうち、指定する必要があるのは必ず 1 つだけです。省略したり、複数を組み合わせたりすると失敗します
  • user パラメーターには "me" ではなく、完全な API URI が必要です。先に CALENDLY_GET_CURRENT_USER を使用してください
  • invitee_email はフィルターであり、範囲ではありません。引き続き user、organization、group のいずれか 1 つが必要です
  • ページネーションには count と page_token を使用します。すべての結果を取得するには、page_token がなくなるまで繰り返してください
  • 組織またはグループの範囲で照会するには、管理者権限が必要な場合があります
2. イベントの招待者を管理する

使用する場面: ユーザーがイベントの予約者を確認したい場合や、招待者の詳細情報を取得したい場合

ツールの順序:

  1. CALENDLY_LIST_EVENTS - 対象のイベントを検索します[前提条件]
  2. CALENDLY_LIST_EVENT_INVITEES - 特定のイベントの招待者をすべて一覧表示します[必須]
  3. CALENDLY_GET_EVENT_INVITEE - 1 人の招待者の詳細情報を取得します[任意]

主なパラメーター:

  • uuid: イベントの UUID(LIST_EVENT_INVITEES 用)
  • event_uuid + invitee_uuid: GET_EVENT_INVITEE には両方が必要です
  • email: メールアドレスで招待者を絞り込みます
  • status: "active" または "canceled"
  • sort: "created_at:asc" または "created_at:desc"
  • count: ページあたりの結果数(デフォルトは 20)

注意点:

  • CALENDLY_LIST_EVENT_INVITEES の uuid パラメーターには、招待者の UUID ではなくイベントの UUID を指定します
  • 招待者の一覧をすべて取得するには、page_token がなくなるまでページネーションを続けてください
  • キャンセルされた招待者はデフォルトでは除外されます。表示するには status: "canceled" を指定してください
3. スケジューリングリンクの作成と空き状況の確認

使用するタイミング: ユーザーが予約リンクを生成したい、または空き時間枠を確認したい場合

ツールの順序:

  1. CALENDLY_GET_CURRENT_USER - ユーザー URI を取得する [前提条件]
  2. CALENDLY_LIST_USER_S_EVENT_TYPES - 利用可能なイベントタイプを一覧表示する [必須]
  3. CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES - イベントタイプの空き枠を確認する [任意]
  4. CALENDLY_CREATE_SCHEDULING_LINK - 単回使用のスケジューリングリンクを生成する [必須]
  5. CALENDLY_LIST_USER_AVAILABILITY_SCHEDULES - ユーザーの可用性スケジュールを表示する [任意]

主要なパラメータ:

  • owner: イベントタイプ URI(例: https://api.calendly.com/event_types/{uuid})
  • owner_type: "EventType"(デフォルト)
  • max_event_count: 単回使用リンクの場合は必ず 1 にする必要があります
  • start_time / end_time: 可用性クエリ用の UTC タイムスタンプ(最大 7 日間の範囲)
  • active: 有効/無効なイベントタイプをフィルタリングするブール値
  • user: イベントタイプ一覧表示用のユーザー URI

注意点:

  • CALENDLY_CREATE_SCHEDULING_LINK は、トークンに権限がない場合や owner URI が無効な場合に 403 を返すことがあります
  • CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES には UTC タイムスタンプと最大 7 日間の範囲が必要です。それより長い検索は分割してください
  • 空き時間の結果はページネーションされません - すべての結果が 1 つのレスポンスで返されます
  • イベントタイプ URI は完全な API URI である必要があります(例: https://api.calendly.com/event_types/...)
4. イベントのキャンセル

使用するタイミング: ユーザーが予定されている Calendly イベントをキャンセルしたい場合

ツールの順序:

  1. CALENDLY_LIST_EVENTS - キャンセルするイベントを探す [前提条件]
  2. CALENDLY_GET_EVENT - キャンセル前にイベントの詳細を確認する [前提条件]
  3. CALENDLY_LIST_EVENT_INVITEES - 影響を受ける招待者を確認する [任意]
  4. CALENDLY_CANCEL_EVENT - イベントをキャンセルする [必須]

主要なパラメータ:

  • uuid: キャンセルするイベントの UUID
  • reason: 任意のキャンセル理由(招待者への通知に含まれる場合があります)

注意点:

  • キャンセルは取り消しできません - 呼び出す前に必ずユーザーに確認してください
  • キャンセルにより招待者へ通知が送信される場合があります
  • キャンセルできるのは有効なイベントのみです。すでにキャンセルされたイベントはエラーを返します
  • CALENDLY_CANCEL_EVENT を実行する前に、ユーザーから明確な確認を取得してください
5. 組織と招待の管理

使用するタイミング: ユーザーがメンバーを招待したい、組織を管理したい、または組織の招待を処理したい場合

ツールの順序:

  1. CALENDLY_GET_CURRENT_USER - ユーザーと組織のコンテキストを取得する [前提条件]
  2. CALENDLY_GET_ORGANIZATION - 組織の詳細を取得する [任意]
  3. CALENDLY_LIST_ORGANIZATION_INVITATIONS - 既存の招待を確認する [任意]
  4. CALENDLY_CREATE_ORGANIZATION_INVITATION - 組織の招待を送信する [必須]
  5. CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION - 保留中の招待を取り消す [任意]
  6. CALENDLY_REMOVE_USER_FROM_ORGANIZATION - メンバーを削除する [任意]

主要なパラメータ:

  • uuid: 組織の UUID
  • email: 招待するユーザーのメールアドレス
  • status: 招待を "pending"、"accepted"、または "declined" でフィルタリングします

注意点:

  • 招待と削除を管理できるのは組織のオーナー/管理者のみです。それ以外のユーザーは認可エラーになります
  • 同じメールアドレスに対する有効な招待が重複している場合は拒否されます - まず既存の招待を確認してください
  • 組織のオーナーは CALENDLY_REMOVE_USER_FROM_ORGANIZATION で削除できません
  • 招待のステータスには pending、accepted、declined、revoked があります - それぞれに適切に対応してください

一般的なパターン

ID の解決

Calendly は識別子として単純な ID ではなく完全な API URI を使用します:

  • 現在のユーザー URI: CALENDLY_GET_CURRENT_USER は resource.uri を返します(例: https://api.calendly.com/users/{uuid})
  • 組織 URI: 現在のユーザーのレスポンスの resource.current_organization に含まれます
  • イベント UUID: イベント URI または一覧レスポンスから抽出します
  • イベントタイプ URI: CALENDLY_LIST_USER_S_EVENT_TYPES のレスポンスから取得します

重要: 一覧/フィルタのエンドポイントでユーザーパラメータとして "me" を決して使用しないでください。必ず最初に完全な URI に解決してください。

ページネーション

ほとんどの Calendly リストエンドポイントはトークンベースのページネーションを使用します:

  • ページサイズには count を設定します (デフォルト 20)
  • pagination.next_page_token の page_token を、存在しなくなるまでたどります
  • field:direction 形式でソートします (例: start_time:asc、created_at:desc)
時間の扱い
  • すべてのタイムスタンプは UTC 形式である必要があります: yyyy-MM-ddTHH:mm:ss.ffffffZ
  • イベントの日付範囲フィルタリングには min_start_time / max_start_time を使用します
  • 空き時間のクエリは最大 7 日間の範囲です。それより長い検索は複数の呼び出しに分割してください

既知の落とし穴

URI 形式
  • すべてのエンティティ参照は完全な Calendly API URI を使用します (例: https://api.calendly.com/users/{uuid})
  • URI が期待される場所に裸の UUID を渡さないでください。また、リストエンドポイントに "me" を渡さないでください
  • ツールが UUID パラメータを期待する場合は、URI から UUID を抽出してください (例: CALENDLY_GET_EVENT)
スコープの要件
  • CALENDLY_LIST_EVENTS はちょうど 1 つのスコープ (ユーザー、組織、またはグループ) を必要とします - それ以上でもそれ以下でもありません
  • 組織/グループスコープのクエリには管理者権限が必要な場合があります
  • トークンのスコープによって利用可能な操作が決まります。403 エラーは権限不足を示します
データの関連性
  • イベントには招待者 (予約した出席者) がいます
  • イベントタイプはスケジューリングページを定義します (所要時間、空き時間のルール)
  • 組織にはユーザーとグループが含まれます
  • スケジューリングリンクはイベントタイプに紐づいており、イベントに直接紐づいているわけではありません
レート制限
  • Calendly API にはレート制限があります。大規模なデータセットに対する tight loop は避けてください
  • 責任を持ってページネーションし、バッチ操作には遅延を追加してください

クイックリファレンス

タスクツールスラッグ主なパラメータ
現在のユーザーを取得CALENDLY_GET_CURRENT_USER(なし)
UUID でユーザーを取得CALENDLY_GET_USERuuid
イベントを一覧表示CALENDLY_LIST_EVENTSuser、status、min_start_time
イベントの詳細を取得CALENDLY_GET_EVENTuuid
イベントをキャンセルCALENDLY_CANCEL_EVENTuuid、reason
招待者を一覧表示CALENDLY_LIST_EVENT_INVITEESuuid、status、email
招待者を取得CALENDLY_GET_EVENT_INVITEEevent_uuid、invitee_uuid
イベントタイプを一覧表示CALENDLY_LIST_USER_S_EVENT_TYPESuser、active
イベントタイプを取得CALENDLY_GET_EVENT_TYPEuuid
空き時間を確認CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMESイベントタイプ URI、start_time、end_time
スケジューリングリンクを作成CALENDLY_CREATE_SCHEDULING_LINKowner、max_event_count
空き時間スケジュールを一覧表示CALENDLY_LIST_USER_AVAILABILITY_SCHEDULESユーザー URI
組織を取得CALENDLY_GET_ORGANIZATIONuuid
組織に招待CALENDLY_CREATE_ORGANIZATION_INVITATIONuuid、email
組織の招待を一覧表示CALENDLY_LIST_ORGANIZATION_INVITATIONSuuid、status
組織の招待を取り消しCALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION組織 UUID、招待 UUID
組織から削除CALENDLY_REMOVE_USER_FROM_ORGANIZATIONメンバーシップ UUID

Powered by Composio

コメント