Automate Cal.com tasks via Rube MCP (Composio): manage bookings, check availability, configure webhooks, and handle teams. Always search tools first for current schemas.
RUBE_MANAGE_CONNECTIONS with toolkit calRUBE_SEARCH_TOOLS first to get current tool schemasRUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit calCAL_FETCH_ALL_BOOKINGS - List all bookings with filters [Required]CAL_POST_NEW_BOOKING_REQUEST - Create a new booking [Optional]status: Filter by booking status ('upcoming', 'recurring', 'past', 'cancelled', 'unconfirmed')afterStart: Filter bookings after this date (ISO 8601)beforeEnd: Filter bookings before this date (ISO 8601)eventTypeId: Event type ID for the bookingstart: Booking start time (ISO 8601)end: Booking end time (ISO 8601)name: Attendee nameemail: Attendee emailtimeZone: Attendee timezone (IANA format)language: Attendee language codemetadata: Additional metadata objecteventTypeId must reference a valid, active event typeCAL_RETRIEVE_CALENDAR_BUSY_TIMES - Get busy time blocks [Required]CAL_GET_AVAILABLE_SLOTS_INFO - Get specific available slots [Required]dateFrom: Start date for availability check (YYYY-MM-DD)dateTo: End date for availability check (YYYY-MM-DD)eventTypeId: Event type to check slots fortimeZone: Timezone for the availability responseloggedInUsersTz: Timezone of the requesting userCAL_RETRIEVE_WEBHOOKS_LIST - List existing webhooks [Required]CAL_GET_WEBHOOK_BY_ID - Get specific webhook details [Optional]CAL_UPDATE_WEBHOOK_BY_ID - Update webhook configuration [Optional]CAL_DELETE_WEBHOOK_BY_ID - Remove a webhook [Optional]id: Webhook ID for GET/UPDATE/DELETE operationssubscriberUrl: Webhook endpoint URLeventTriggers: Array of event types to trigger onactive: Whether the webhook is activesecret: Webhook signing secretactive to enable/disableCAL_GET_TEAMS_LIST - List all teams [Required]CAL_GET_TEAM_INFORMATION_BY_TEAM_ID - Get specific team details [Optional]CAL_CREATE_TEAM_IN_ORGANIZATION - Create a new team [Optional]CAL_RETRIEVE_TEAM_EVENT_TYPES - List event types for a team [Optional]teamId: Team identifiername: Team name (for creation)slug: URL-friendly team identifierCAL_GET_ORGANIZATION_ID - Get the organization ID [Required]1. Call CAL_GET_AVAILABLE_SLOTS_INFO to find open slots
2. Present available times to the user
3. Call CAL_POST_NEW_BOOKING_REQUEST with selected slot
4. Confirm booking creation response
1. Call CAL_GET_TEAMS_LIST
2. Find team by name in response
3. Extract id field
1. Call CAL_RETRIEVE_WEBHOOKS_LIST to check existing hooks
2. Create or update webhook with desired triggers
3. Verify webhook fires on test booking
| Task | Tool Slug | Key Params |
|---|---|---|
| List bookings | CAL_FETCH_ALL_BOOKINGS | status, afterStart, beforeEnd |
| Create booking | CAL_POST_NEW_BOOKING_REQUEST | eventTypeId, start, end, name, email |
| Get busy times | CAL_RETRIEVE_CALENDAR_BUSY_TIMES | dateFrom, dateTo |
| Get available slots | CAL_GET_AVAILABLE_SLOTS_INFO | eventTypeId, dateFrom, dateTo |
| List webhooks | CAL_RETRIEVE_WEBHOOKS_LIST | (none) |
| Get webhook | CAL_GET_WEBHOOK_BY_ID | id |
| Update webhook | CAL_UPDATE_WEBHOOK_BY_ID | id, subscriberUrl, eventTriggers |
| Delete webhook | CAL_DELETE_WEBHOOK_BY_ID | id |
| List teams | CAL_GET_TEAMS_LIST | (none) |
| Get team | CAL_GET_TEAM_INFORMATION_BY_TEAM_ID | teamId |
| Create team | CAL_CREATE_TEAM_IN_ORGANIZATION | name, slug |
| Team event types | CAL_RETRIEVE_TEAM_EVENT_TYPES | teamId |
| Get org ID | CAL_GET_ORGANIZATION_ID | (none) |