calendly-automation について
Rube MCP と Composio のツールキットで Calendly を自動化するスキルです。イベントや予約者、予約リンク、空き時間、組織管理に対応します。
主な機能
- 01予定済みイベントの確認と絞り込み
- 02イベント予約者の確認
- 03予約リンクの作成
- 04空き時間の確認
- 05組織への招待管理
活用シーン
- 01期間を指定したイベント確認
- 02イベント予約者の確認
- 03イベントタイプの予約リンク作成
- 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 キーは不要です。エンドポイントを追加するだけで使用できます。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確認します- ツールキット
calendlyを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクにアクセスして Calendly OAuth を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. 予定済みイベントの一覧表示と確認
使用する場面: ユーザーが今後の Calendly イベント、過去の Calendly イベント、または条件で絞り込んだ Calendly イベントを確認したい場合
ツールの順序:
CALENDLY_GET_CURRENT_USER- 認証済みユーザーの URI と組織の URI を取得します[前提条件]CALENDLY_LIST_EVENTS- ユーザー、組織、またはグループの範囲でイベントを一覧表示します[必須]CALENDLY_GET_EVENT- UUID を指定して特定のイベントの詳細情報を取得します[任意]
主なパラメーター:
user: Calendly API の完全な URI(例:https://api.calendly.com/users/{uuid})。"me"は指定できませんorganization: 組織の範囲で照会するための完全な URIstatus:"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. イベントの招待者を管理する
使用する場面: ユーザーがイベントの予約者を確認したい場合や、招待者の詳細情報を取得したい場合
ツールの順序:
CALENDLY_LIST_EVENTS- 対象のイベントを検索します[前提条件]CALENDLY_LIST_EVENT_INVITEES- 特定のイベントの招待者をすべて一覧表示します[必須]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. スケジューリングリンクの作成と空き状況の確認
使用するタイミング: ユーザーが予約リンクを生成したい、または空き時間枠を確認したい場合
ツールの順序:
CALENDLY_GET_CURRENT_USER- ユーザー URI を取得する [前提条件]CALENDLY_LIST_USER_S_EVENT_TYPES- 利用可能なイベントタイプを一覧表示する [必須]CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES- イベントタイプの空き枠を確認する [任意]CALENDLY_CREATE_SCHEDULING_LINK- 単回使用のスケジューリングリンクを生成する [必須]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 イベントをキャンセルしたい場合
ツールの順序:
CALENDLY_LIST_EVENTS- キャンセルするイベントを探す [前提条件]CALENDLY_GET_EVENT- キャンセル前にイベントの詳細を確認する [前提条件]CALENDLY_LIST_EVENT_INVITEES- 影響を受ける招待者を確認する [任意]CALENDLY_CANCEL_EVENT- イベントをキャンセルする [必須]
主要なパラメータ:
uuid: キャンセルするイベントの UUIDreason: 任意のキャンセル理由(招待者への通知に含まれる場合があります)
注意点:
- キャンセルは取り消しできません - 呼び出す前に必ずユーザーに確認してください
- キャンセルにより招待者へ通知が送信される場合があります
- キャンセルできるのは有効なイベントのみです。すでにキャンセルされたイベントはエラーを返します
CALENDLY_CANCEL_EVENTを実行する前に、ユーザーから明確な確認を取得してください
5. 組織と招待の管理
使用するタイミング: ユーザーがメンバーを招待したい、組織を管理したい、または組織の招待を処理したい場合
ツールの順序:
CALENDLY_GET_CURRENT_USER- ユーザーと組織のコンテキストを取得する [前提条件]CALENDLY_GET_ORGANIZATION- 組織の詳細を取得する [任意]CALENDLY_LIST_ORGANIZATION_INVITATIONS- 既存の招待を確認する [任意]CALENDLY_CREATE_ORGANIZATION_INVITATION- 組織の招待を送信する [必須]CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION- 保留中の招待を取り消す [任意]CALENDLY_REMOVE_USER_FROM_ORGANIZATION- メンバーを削除する [任意]
主要なパラメータ:
uuid: 組織の UUIDemail: 招待するユーザーのメールアドレス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_USER | uuid |
| イベントを一覧表示 | CALENDLY_LIST_EVENTS | user、status、min_start_time |
| イベントの詳細を取得 | CALENDLY_GET_EVENT | uuid |
| イベントをキャンセル | CALENDLY_CANCEL_EVENT | uuid、reason |
| 招待者を一覧表示 | CALENDLY_LIST_EVENT_INVITEES | uuid、status、email |
| 招待者を取得 | CALENDLY_GET_EVENT_INVITEE | event_uuid、invitee_uuid |
| イベントタイプを一覧表示 | CALENDLY_LIST_USER_S_EVENT_TYPES | user、active |
| イベントタイプを取得 | CALENDLY_GET_EVENT_TYPE | uuid |
| 空き時間を確認 | CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES | イベントタイプ URI、start_time、end_time |
| スケジューリングリンクを作成 | CALENDLY_CREATE_SCHEDULING_LINK | owner、max_event_count |
| 空き時間スケジュールを一覧表示 | CALENDLY_LIST_USER_AVAILABILITY_SCHEDULES | ユーザー URI |
| 組織を取得 | CALENDLY_GET_ORGANIZATION | uuid |
| 組織に招待 | CALENDLY_CREATE_ORGANIZATION_INVITATION | uuid、email |
| 組織の招待を一覧表示 | CALENDLY_LIST_ORGANIZATION_INVITATIONS | uuid、status |
| 組織の招待を取り消し | CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION | 組織 UUID、招待 UUID |
| 組織から削除 | CALENDLY_REMOVE_USER_FROM_ORGANIZATION | メンバーシップ UUID |
Powered by Composio