calendly-automation
通过Rube MCP(Composio)实现Calendly日程安排、活动管理、受邀者追踪、可用性检查及组织管理的自动化。始终优先搜索工具以获取最新架构信息。
Calendly Automation via Rube MCP
Automate Calendly operations including event listing, invitee management, scheduling link creation, availability queries, and organization administration through Composio's Calendly toolkit.
Prerequisites
RUBE_MANAGE_CONNECTIONS with toolkit calendlyRUBE_SEARCH_TOOLS first to get current tool schemasCALENDLY_GET_CURRENT_USERSetup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit calendlyCore Workflows
1. List and View Scheduled Events
When to use: User wants to see their upcoming, past, or filtered Calendly events
Tool sequence:
CALENDLY_GET_CURRENT_USER - Get authenticated user URI and organization URI [Prerequisite]CALENDLY_LIST_EVENTS - List events scoped by user, organization, or group [Required]CALENDLY_GET_EVENT - Get detailed info for a specific event by UUID [Optional]Key parameters:
user: Full Calendly API URI (e.g., https://api.calendly.com/users/{uuid}) - NOT "me"organization: Full organization URI for org-scoped queriesstatus: "active" or "canceled"min_start_time / max_start_time: UTC timestamps (e.g., 2024-01-01T00:00:00.000000Z)invitee_email: Filter events by invitee email (filter only, not a scope)sort: "start_time:asc" or "start_time:desc"count: Results per page (default 20)page_token: Pagination token from previous responsePitfalls:
user, organization, or group must be provided - omitting or combining scopes failsuser parameter requires the full API URI, not "me" - use CALENDLY_GET_CURRENT_USER firstinvitee_email is a filter, not a scope; you still need one of user/organization/groupcount + page_token; loop until page_token is absent for complete results2. Manage Event Invitees
When to use: User wants to see who is booked for events or get invitee details
Tool sequence:
CALENDLY_LIST_EVENTS - Find the target event(s) [Prerequisite]CALENDLY_LIST_EVENT_INVITEES - List all invitees for a specific event [Required]CALENDLY_GET_EVENT_INVITEE - Get detailed info for a single invitee [Optional]Key parameters:
uuid: Event UUID (for LIST_EVENT_INVITEES)event_uuid + invitee_uuid: Both required for GET_EVENT_INVITEEemail: Filter invitees by email addressstatus: "active" or "canceled"sort: "created_at:asc" or "created_at:desc"count: Results per page (default 20)Pitfalls:
uuid parameter for CALENDLY_LIST_EVENT_INVITEES is the event UUID, not the invitee UUIDpage_token until absent for complete invitee listsstatus: "canceled" to see them3. Create Scheduling Links and Check Availability
When to use: User wants to generate a booking link or check available time slots
Tool sequence:
CALENDLY_GET_CURRENT_USER - Get user URI [Prerequisite]CALENDLY_LIST_USER_S_EVENT_TYPES - List available event types [Required]CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES - Check available slots for an event type [Optional]CALENDLY_CREATE_SCHEDULING_LINK - Generate a single-use scheduling link [Required]CALENDLY_LIST_USER_AVAILABILITY_SCHEDULES - View user's availability schedules [Optional]Key parameters:
owner: Event type URI (e.g., https://api.calendly.com/event_types/{uuid})owner_type: "EventType" (default)max_event_count: Must be exactly 1 for single-use linksstart_time / end_time: UTC timestamps for availability queries (max 7-day range)active: Boolean to filter active/inactive event typesuser: User URI for event type listingPitfalls:
CALENDLY_CREATE_SCHEDULING_LINK can return 403 if token lacks rights or owner URI is invalidCALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES requires UTC timestamps and max 7-day range; split longer searcheshttps://api.calendly.com/event_types/...)4. Cancel Events
When to use: User wants to cancel a scheduled Calendly event
Tool sequence:
CALENDLY_LIST_EVENTS - Find the event to cancel [Prerequisite]CALENDLY_GET_EVENT - Confirm event details before cancellation [Prerequisite]CALENDLY_LIST_EVENT_INVITEES - Check who will be affected [Optional]CALENDLY_CANCEL_EVENT - Cancel the event [Required]Key parameters:
uuid: Event UUID to cancelreason: Optional cancellation reason (may be included in notification to invitees)Pitfalls:
CALENDLY_CANCEL_EVENT5. Manage Organization and Invitations
When to use: User wants to invite members, manage organization, or handle org invitations
Tool sequence:
CALENDLY_GET_CURRENT_USER - Get user and organization context [Prerequisite]CALENDLY_GET_ORGANIZATION - Get organization details [Optional]CALENDLY_LIST_ORGANIZATION_INVITATIONS - Check existing invitations [Optional]CALENDLY_CREATE_ORGANIZATION_INVITATION - Send an org invitation [Required]CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION - Revoke a pending invitation [Optional]CALENDLY_REMOVE_USER_FROM_ORGANIZATION - Remove a member [Optional]Key parameters:
uuid: Organization UUIDemail: Email address of user to invitestatus: Filter invitations by "pending", "accepted", or "declined"Pitfalls:
CALENDLY_REMOVE_USER_FROM_ORGANIZATIONCommon Patterns
ID Resolution
Calendly uses full API URIs as identifiers, not simple IDs:
CALENDLY_GET_CURRENT_USER returns resource.uri (e.g., https://api.calendly.com/users/{uuid})resource.current_organizationCALENDLY_LIST_USER_S_EVENT_TYPES responseImportant: Never use "me" as a user parameter in list/filter endpoints. Always resolve to the full URI first.
Pagination
Most Calendly list endpoints use token-based pagination:
count for page size (default 20)page_token from pagination.next_page_token until absentfield:direction format (e.g., start_time:asc, created_at:desc)Time Handling
yyyy-MM-ddTHH:mm:ss.ffffffZmin_start_time / max_start_time for date range filtering on eventsKnown Pitfalls
URI Formats
https://api.calendly.com/users/{uuid})"me" to list endpointsCALENDLY_GET_EVENT)Scope Requirements
CALENDLY_LIST_EVENTS requires exactly one scope (user, organization, or group) - no more, no lessData Relationships
Rate Limits
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Get current user | CALENDLY_GET_CURRENT_USER | (none) |
| Get user by UUID | CALENDLY_GET_USER | uuid |
| List events | CALENDLY_LIST_EVENTS | user, status, min_start_time |
| Get event details | CALENDLY_GET_EVENT | uuid |
| Cancel event | CALENDLY_CANCEL_EVENT | uuid, reason |
| List invitees | CALENDLY_LIST_EVENT_INVITEES | uuid, status, email |
| Get invitee | CALENDLY_GET_EVENT_INVITEE | event_uuid, invitee_uuid |
| List event types | CALENDLY_LIST_USER_S_EVENT_TYPES | user, active |
| Get event type | CALENDLY_GET_EVENT_TYPE | uuid |
| Check availability | CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES | event type URI, start_time, end_time |
| Create scheduling link | CALENDLY_CREATE_SCHEDULING_LINK | owner, max_event_count |
| List availability schedules | CALENDLY_LIST_USER_AVAILABILITY_SCHEDULES | user URI |
| Get organization | CALENDLY_GET_ORGANIZATION | uuid |
| Invite to org | CALENDLY_CREATE_ORGANIZATION_INVITATION | uuid, email |
| List org invitations | CALENDLY_LIST_ORGANIZATION_INVITATIONS | uuid, status |
| Revoke org invitation | CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION | org UUID, invitation UUID |
| Remove from org | CALENDLY_REMOVE_USER_FROM_ORGANIZATION | membership UUID |