- name:
- calendly-automation
- description:
- Automate Calendly scheduling, event management, invitee tracking, availability checks, and organization administration via Rube MCP (Composio). Always search tools first for current schemas.
- risk:
- critical
- source:
- community
- date_added:
- 2026-02-27
@ 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 MCP must be connected (RUBESEARCHTOOLS available)
- Active Calendly connection via RUBEMANAGECONNECTIONS with toolkit calendly
- Always call RUBESEARCHTOOLS first to get current tool schemas
- Many operations require the user's Calendly URI, obtained via CALENDLYGETCURRENT_USER
@ Setup
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.
- Verify Rube MCP is available by confirming RUBESEARCHTOOLS responds
- Call RUBEMANAGECONNECTIONS with toolkit calendly
- If connection is not ACTIVE, follow the returned auth link to complete Calendly OAuth
- Confirm connection status shows ACTIVE before running any workflows
@ Core Workflows
@ 1. List and View Scheduled Events
When to use: User wants to see their upcoming, past, or filtered Calendly events
Tool sequence:
- CALENDLYGETCURRENT_USER - Get authenticated user URI and organization URI [Prerequisite]
- CALENDLYLISTEVENTS - List events scoped by user, organization, or group [Required]
- CALENDLYGETEVENT - 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 queries
- status: "active" or "canceled"
- minstarttime / maxstarttime: UTC timestamps (e.g., 2024-01-01T00:00:00.000000Z)
- invitee_email: Filter events by invitee email (filter only, not a scope)
- sort: "starttime:asc" or "starttime:desc"
- count: Results per page (default 20)
- page_token: Pagination token from previous response
Pitfalls:
- Exactly ONE of user, organization, or group must be provided - omitting or combining scopes fails
- The user parameter requires the full API URI, not "me" - use CALENDLYGETCURRENT_USER first
- invitee_email is a filter, not a scope; you still need one of user/organization/group
- Pagination uses count + pagetoken; loop until pagetoken is absent for complete results
- Admin rights may be needed for organization or group scope queries
@ 2. Manage Event Invitees
When to use: User wants to see who is booked for events or get invitee details
Tool sequence:
- CALENDLYLISTEVENTS - Find the target event(s) [Prerequisite]
- CALENDLYLISTEVENT_INVITEES - List all invitees for a specific event [Required]
- CALENDLYGETEVENT_INVITEE - Get detailed info for a single invitee [Optional]
Key parameters:
- uuid: Event UUID (for LISTEVENTINVITEES)
- eventuuid + inviteeuuid: Both required for GETEVENTINVITEE
- email: Filter invitees by email address
- status: "active" or "canceled"
- sort: "createdat:asc" or "createdat:desc"
- count: Results per page (default 20)
Pitfalls:
- The uuid parameter for CALENDLYLISTEVENT_INVITEES is the event UUID, not the invitee UUID
- Paginate using page_token until absent for complete invitee lists
- Canceled invitees are excluded by default; use status: "canceled" to see them
@ 3. Create Scheduling Links and Check Availability
When to use: User wants to generate a booking link or check available time slots
Tool sequence:
- CALENDLYGETCURRENT_USER - Get user URI [Prerequisite]
- CALENDLYLISTUSERSEVENT_TYPES - List available event types [Required]
- CALENDLYLISTEVENTTYPEAVAILABLE_TIMES - Check available slots for an event type [Optional]
- CALENDLYCREATESCHEDULING_LINK - Generate a single-use scheduling link [Required]
- CALENDLYLISTUSERAVAILABILITYSCHEDULES - 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)
- maxeventcount: Must be exactly 1 for single-use links
- starttime / endtime: UTC timestamps for availability queries (max 7-day range)
- active: Boolean to filter active/inactive event types
- user: User URI for event type listing
Pitfalls:
- CALENDLYCREATESCHEDULING_LINK can return 403 if token lacks rights or owner URI is invalid
- CALENDLYLISTEVENTTYPEAVAILABLE_TIMES requires UTC timestamps and max 7-day range; split longer searches
- Available times results are NOT paginated - all results returned in one response
- Event type URIs must be full API URIs (e.g., https://api.calendly.com/event_types/...)
@ 4. Cancel Events
When to use: User wants to cancel a scheduled Calendly event
Tool sequence:
- CALENDLYLISTEVENTS - Find the event to cancel [Prerequisite]
- CALENDLYGETEVENT - Confirm event details before cancellation [Prerequisite]
- CALENDLYLISTEVENT_INVITEES - Check who will be affected [Optional]
- CALENDLYCANCELEVENT - Cancel the event [Required]
Key parameters:
- uuid: Event UUID to cancel
- reason: Optional cancellation reason (may be included in notification to invitees)
Pitfalls:
- Cancellation is IRREVERSIBLE - always confirm with the user before calling
- Cancellation may trigger notifications to invitees
- Only active events can be canceled; already-canceled events return errors
- Get explicit user confirmation before executing CALENDLYCANCELEVENT
@ 5. Manage Organization and Invitations
When to use: User wants to invite members, manage organization, or handle org invitations
Tool sequence:
- CALENDLYGETCURRENT_USER - Get user and organization context [Prerequisite]
- CALENDLYGETORGANIZATION - Get organization details [Optional]
- CALENDLYLISTORGANIZATION_INVITATIONS - Check existing invitations [Optional]
- CALENDLYCREATEORGANIZATION_INVITATION - Send an org invitation [Required]
- CALENDLYREVOKEUSERSORGANIZATION_INVITATION - Revoke a pending invitation [Optional]
- CALENDLYREMOVEUSERFROMORGANIZATION - Remove a member [Optional]
Key parameters:
- uuid: Organization UUID
- email: Email address of user to invite
- status: Filter invitations by "pending", "accepted", or "declined"
Pitfalls:
- Only org owners/admins can manage invitations and removals; others get authorization errors
- Duplicate active invitations for the same email are rejected - check existing invitations first
- Organization owners cannot be removed via CALENDLYREMOVEUSERFROMORGANIZATION
- Invitation statuses include pending, accepted, declined, and revoked - handle each appropriately
@ Common Patterns
@ ID Resolution
Calendly uses full API URIs as identifiers, not simple IDs:
- Current user URI: CALENDLYGETCURRENT_USER returns resource.uri (e.g., https://api.calendly.com/users/{uuid})
- Organization URI: Found in current user response at resource.current_organization
- Event UUID: Extract from event URI or list responses
- Event type URI: From CALENDLYLISTUSERSEVENT_TYPES response
Important: 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:
- Set count for page size (default 20)
- Follow pagetoken from pagination.nextpage_token until absent
- Sort with field:direction format (e.g., starttime:asc, createdat:desc)
@ Time Handling
- All timestamps must be in UTC format: yyyy-MM-ddTHH:mm:ss.ffffffZ
- Use minstarttime / maxstarttime for date range filtering on events
- Available times queries have a maximum 7-day range; split longer searches into multiple calls
@ Known Pitfalls
@ URI Formats
- All entity references use full Calendly API URIs (e.g., https://api.calendly.com/users/{uuid})
- Never pass bare UUIDs where URIs are expected, and never pass "me" to list endpoints
- Extract UUIDs from URIs when tools expect UUID parameters (e.g., CALENDLYGETEVENT)
@ Scope Requirements
- CALENDLYLISTEVENTS requires exactly one scope (user, organization, or group) - no more, no less
- Organization/group scoped queries may require admin privileges
- Token scope determines which operations are available; 403 errors indicate insufficient permissions
@ Data Relationships
- Events have invitees (attendees who booked)
- Event types define scheduling pages (duration, availability rules)
- Organizations contain users and groups
- Scheduling links are tied to event types, not directly to events
@ Rate Limits
- Calendly API has rate limits; avoid tight loops over large datasets
- Paginate responsibly and add delays for batch operations
@ Quick Reference
Task; Tool Slug; Key Params
Get current user; CALENDLYGETCURRENT_USER; (none)
Get user by UUID; CALENDLYGETUSER; uuid
List events; CALENDLYLISTEVENTS; user, status, minstarttime
Get event details; CALENDLYGETEVENT; uuid
Cancel event; CALENDLYCANCELEVENT; uuid, reason
List invitees; CALENDLYLISTEVENT_INVITEES; uuid, status, email
Get invitee; CALENDLYGETEVENTINVITEE; eventuuid, invitee_uuid
List event types; CALENDLYLISTUSERSEVENT_TYPES; user, active
Get event type; CALENDLYGETEVENT_TYPE; uuid
Check availability; CALENDLYLISTEVENTTYPEAVAILABLETIMES; event type URI, starttime, end_time
Create scheduling link; CALENDLYCREATESCHEDULINGLINK; owner, maxevent_count
List availability schedules; CALENDLYLISTUSERAVAILABILITYSCHEDULES; user URI
Get organization; CALENDLYGETORGANIZATION; uuid
Invite to org; CALENDLYCREATEORGANIZATION_INVITATION; uuid, email
List org invitations; CALENDLYLISTORGANIZATION_INVITATIONS; uuid, status
Revoke org invitation; CALENDLYREVOKEUSERSORGANIZATION_INVITATION; org UUID, invitation UUID
Remove from org; CALENDLYREMOVEUSERFROMORGANIZATION; membership UUID
@ When to Use
This skill is applicable to execute the workflow or actions described in the overview.
@ Limitations
- Use this skill only when the task clearly matches the scope described above.
- never treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.