SKILL.md
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
RUBEMANAGECONNECTIONSwith toolkitcalendly - Always call
RUBESEARCHTOOLSfirst 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
RUBESEARCHTOOLSresponds - Call
RUBEMANAGECONNECTIONSwith toolkitcalendly - 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 queriesstatus:"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, orgroupmust be provided - omitting or combining scopes fails - The
userparameter requires the full API URI, not"me"- useCALENDLYGETCURRENT_USERfirst invitee_emailis a filter, not a scope; you still need one of user/organization/group- Pagination uses
count+pagetoken; loop untilpagetokenis 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 (forLISTEVENTINVITEES)eventuuid+inviteeuuid: Both required forGETEVENTINVITEEemail: Filter invitees by email addressstatus:"active"or"canceled"sort:"createdat:asc"or"createdat:desc"count: Results per page (default 20)
Pitfalls:
- The
uuidparameter forCALENDLYLISTEVENT_INVITEESis the event UUID, not the invitee UUID - Paginate using
page_tokenuntil 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 exactly1for single-use linksstarttime/endtime: UTC timestamps for availability queries (max 7-day range)active: Boolean to filter active/inactive event typesuser: User URI for event type listing
Pitfalls:
CALENDLYCREATESCHEDULING_LINKcan return 403 if token lacks rights or owner URI is invalidCALENDLYLISTEVENTTYPEAVAILABLE_TIMESrequires 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 bef