Skip to main content

Cal.com

Find open slots, book meetings, and manage cal.com bookings.

Connect a cal.com account with an API key to schedule end to end: list its event types, find available slots in any time zone, create bookings (with custom booking-question answers), then reschedule, cancel, confirm or decline them, and read availability schedules.

Connect

Credential fieldRequiredWhere it comes from
API key (API_KEY)YesFrom cal.com → Settings → Security → API keys (cal_live_…). Sent as “Authorization: Bearer <key>”.

Tools

ToolAccessWhat it does
My profile (yekar.cal-com.me)ReadThe connected cal.com account's profile - username (needed for slug-based event-type and slot lookups), time zone, and default schedule.
List event types (yekar.cal-com.list-event-types)ReadThe bookable event types of a cal.com user (the connected account by default). Returns the ids and slugs that Find slots and Create booking take; hidden event types appear only for the connected account itself.
Get event type (yekar.cal-com.get-event-type)ReadFull detail of one event type, including its custom booking questions (bookingFields). Call this before Create booking when an event type may have required questions - bookings missing a required answer are rejected.
Find slots (yekar.cal-com.get-slots)ReadAvailable booking slots for an event type in a date range - accounts for existing bookings, buffers and connected calendars. Identify the event type by eventTypeId, or by eventTypeSlug + username. Returns a map of date → start times in the given time zone.
List bookings (yekar.cal-com.list-bookings)ReadThe connected account's bookings, filterable by status bucket, attendee, event type and time range. Paginated - pass nextCursor to continue.
Get booking (yekar.cal-com.get-booking)ReadOne booking by uid - status, times, attendees, and the reschedule chain (a rescheduled booking points at its replacement via rescheduledToUid).
List schedules (yekar.cal-com.list-schedules)ReadThe connected account's availability schedules (working-hours templates). For actually bookable times use Find slots - it also accounts for existing bookings, buffers and connected calendars.
Create booking (yekar.cal-com.create-booking)WriteBook a slot on an event type. Identify it by eventTypeId, or eventTypeSlug + username. Event types with required custom questions need bookingFieldsResponses (check Get event type first). A 'pending' result means the host must still confirm.
Reschedule booking (yekar.cal-com.reschedule-booking)WriteMove a booking to a new time. This creates a REPLACEMENT booking with a new uid - the old uid goes stale (it stays readable, pointing at the replacement via rescheduledToUid). Only accepted or pending bookings can be rescheduled.
Cancel booking (yekar.cal-com.cancel-booking)WriteCancel a booking by uid. Attendees are notified by cal.com; cancelling an already-cancelled booking fails.
Confirm booking (yekar.cal-com.confirm-booking)WriteAccept a booking that is pending host confirmation (event types with a confirmation policy). Only the host's account can confirm.
Decline booking (yekar.cal-com.decline-booking)WriteReject a booking that is pending host confirmation. Only the host's account can decline.
Reserve slot (yekar.cal-com.reserve-slot)WriteHold a slot for ~5 minutes while finishing a multi-step booking (e.g. still collecting the attendee's details) so no one else takes it. The hold expires on its own; Create booking completes it.

Notes

  • Create an API key at cal.com → Settings → Security → API keys and paste it to connect - tools act as that cal.com account.
  • Always pass the invitee's IANA time zone to Find slots - cal.com silently falls back to UTC without it and shows wrong times.
  • Bookings are addressed by their string uid, never the numeric id. Rescheduling creates a NEW booking with a new uid - the old one goes stale.
  • Before booking an event type that may have required custom questions, call Get event type and answer them via bookingFieldsResponses.