Cal.com
OAuth · 238 tools
Scheduling, bookings, availability, teams, and organization management
Cal.com, one prompt away
Connect your own account and use these tools through your agent.
All 238 tools
Add an attendee to a booking
Add a new attendee to an existing booking by its UID. Seated Events: This endpoint does not support seated event bookings. For seated events, each attendee must be added by creating a new booking for the same event type and time slot via POST /v2/bookings. Attempting to add an attendee to a seated event booking will return a 400 error. Side effects: - The booking's attendee list is updated in the database - The calendar event is updated on connected calendars (Google Calendar, Outlook, etc.) to
Get a specific attendee for a booking
Retrieve a specific attendee by their ID for a booking identified by its UID. The cal-api-version header is required for this endpoint. Without it, the request will fail with a 404 error. If accessed using an OAuth access token, the BOOKING_READ scope is required.
Get all attendees for a booking
Retrieve all attendees for a specific booking by its UID. The cal-api-version header is required for this endpoint. Without it, the request will fail with a 404 error. If accessed using an OAuth access token, the BOOKING_READ scope is required.
Add guests to an existing booking
Add one or more guests to an existing booking. Maximum 10 guests per request, with a limit of 30 total guests per booking. Rate Limiting: This endpoint is rate limited to 5 requests per minute to prevent abuse. Seated Events: This endpoint does not support seated event bookings. For seated events, each guest must be added by creating a new booking for the same event type and time slot via POST /v2/bookings. Attempting to add guests to a seated event booking will return a 400 error. Email Notific
Update booking location for an existing booking
Updates the booking location in Cal.com and updates the corresponding calendar event via the organizer's connected credentials. For integration locations (e.g. Zoom, Google Meet, Cal Video), the endpoint also provisions a conference link. Attendees are notified of the location change by email. The cal-api-version header is required for this endpoint. Without it, the request will fail with a 404 error. If accessed using an OAuth access token, the BOOKING_WRITE scope is required.
Get the routing trace for a booking
Retrieve the step-by-step routing trace for a booking identified by its UID. Shows how the booking was routed through routing forms, CRM lookups, and host selection logic. Returns presented (human-readable) trace steps grouped by routing round, along with the routing form submission if one was used. If no routing trace exists for the booking, empty steps and groups are returned. The cal-api-version header is required for this endpoint. If accessed using an OAuth access token, the BOOKING_READ sc
Confirm a booking
The provided authorization header refers to the owner of the booking. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the BOOKING_WRITE scope is required.
Create a booking
POST /v2/bookings is used to create regular bookings, recurring bookings and instant bookings. The request bodies for all 3 are almost the same except: If eventTypeId in the request body is id of a regular event, then regular booking is created. If it is an id of a recurring event type, then recurring booking is created. Meaning that the request bodies are equal but the outcome depends on what kind of event type it is with the goal of making it as seamless for developers as possible. For team ev
Decline a booking
The provided authorization header refers to the owner of the booking. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the BOOKING_WRITE scope is required.
Get a booking by seat UID
Get a seated booking by its seat reference UID. This is useful when you have a seatUid from a seated booking and want to retrieve the full booking details. If you are fetching a seated booking for an event type with 'show attendees' disabled, then to retrieve attendees in the response either set 'show attendees' to true on event type level or you have to provide an authentication method of event type owner, host, team admin or owner or org admin or owner. Please make sure to pass in the cal-api-
Get all the recordings for the booking
Fetches all the recordings for the booking :bookingUid. Requires authentication and proper authorization. Access is granted if you are the booking organizer, team admin or org admin/owner. Recording download links are valid for 1 hour only. Make a new request to generate fresh links after expiration. cal-api-version: 2026-02-25 is required in the request header. If accessed using an OAuth access token, the BOOKING_READ scope is required.
Get booking references
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the BOOKING_READ scope is required.
Get Cal Video real time transcript download links for the booking
Fetches all the transcript download links for the booking :bookingUid Transcripts are generated when clicking "Transcribe" during a Cal Video meeting. Download links are valid for 1 hour only - make a new request to generate fresh links after expiration. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the BOOKING_READ scope is
Get 'Add to Calendar' links for a booking
Retrieve calendar links for a booking that can be used to add the event to various calendar services. Returns links for Google Calendar, Microsoft Office, Microsoft Outlook, and a downloadable ICS file. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the BOOKING_READ scope is required.
Get Video Meeting Sessions. Only supported for Cal Video
Requires authentication and proper authorization. Access is granted if you are the booking organizer, team admin or org admin/owner. cal-api-version: 2026-02-25 is required in the request header. This endpoint is rate-limited to 60 requests per minute per caller (per API key, access token, OAuth client, or IP). Exceeding the limit returns a 429 response and blocks further calls for 60 seconds. If the upstream conferencing provider rate-limits the request, this endpoint responds with HTTP 429 and
Mark a booking absence
The provided authorization header refers to the owner of the booking. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the BOOKING_WRITE scope is required.
Reassign a booking to auto-selected host
Currently only supports reassigning host for round robin bookings. The provided authorization header refers to the owner of the booking. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the BOOKING_WRITE scope is required.
Reassign a booking to a specific host
Currently only supports reassigning host for round robin bookings. The provided authorization header refers to the owner of the booking. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the BOOKING_WRITE scope is required.
Request to reschedule a booking
Request to reschedule a booking. The booking will be cancelled and the attendee will receive an email with a link to reschedule. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the BOOKING_WRITE scope is required.
Reschedule a booking
Reschedule a booking or seated booking. Reschedulable booking statuses: - accepted — the confirmed booking is moved to the new start time. - pending — a booking awaiting host confirmation can be rescheduled. The new booking stays pending until the host confirms or declines it. Non-reschedulable booking statuses (endpoint responds with 400 Bad Request): - cancelled — the booking has already been cancelled. If it was cancelled because it was previously rescheduled, the error message includes the U
Get meeting details from calendar
Returns detailed information about a meeting including attendance metrics. If accessed using an OAuth access token, the APPS_READ scope is required.
Update meeting details in calendar
Updates event information in the specified calendar provider. If accessed using an OAuth access token, the APPS_WRITE scope is required.
Check a calendar connection
If accessed using an OAuth access token, the APPS_READ scope is required.
Check an ICS feed
If accessed using an OAuth access token, the APPS_READ scope is required.
Save an ICS feed
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Disconnect a calendar
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Get busy times
Get busy times from a calendar. Example request URL is https://api.cal.com/v2/calendars/busy-times?timeZone=Europe%2FMadrid&dateFrom=2024-12-18&dateTo=2024-12-18&calendarsToLoad[0][credentialId]=135&calendarsToLoad[0][externalId]=skrauciz%40gmail.com. Note: loggedInUsersTz is deprecated, use timeZone instead. If accessed using an OAuth access token, the APPS_READ scope is required.
Get all calendars
If accessed using an OAuth access token, the APPS_READ scope is required.
Get OAuth connect URL
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Save Apple calendar credentials
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Cancel a booking
:bookingUid can be :bookingUid of an usual booking, individual recurrence or recurring booking to cancel all recurrences. Cancelling normal bookings: If the booking is not seated and not recurring, simply pass :bookingUid in the request URL /bookings/:bookingUid/cancel and optionally cancellationReason in the request body {"cancellationReason": "Will travel"}. Cancelling seated bookings: It is possible to cancel specific seat within a booking as an attendee or all of the seats as the host. 1. As
Connect your conferencing application
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Set your default conferencing application
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Disconnect your conferencing application
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Get your default conferencing application
If accessed using an OAuth access token, the APPS_READ scope is required.
List your conferencing applications
If accessed using an OAuth access token, the APPS_READ scope is required.
Get OAuth conferencing app auth URL
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Charge credits
Charge credits for an authenticated user. Uses externalRef for idempotency to prevent double-charging. Third-party OAuth tokens require the CREDITS_WRITE scope.
Check available credits
Check if the authenticated user (or their org/team) has available credits and return the current balance. Third-party OAuth tokens require the CREDITS_READ scope.
Update destination calendars
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Create a webhook
If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
Delete all webhooks
If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
Delete a webhook
If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
Get a webhook
If accessed using an OAuth access token, the EVENT_TYPE_READ scope is required.
Get all webhooks
If accessed using an OAuth access token, the EVENT_TYPE_READ scope is required.
Update a webhook
If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
Create an event type
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
Delete an event type
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
List CRM sync errors for an event type
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. Returns CRM sync errors scoped to the requested event type and CRM app. By default this endpoint returns only active errors. Pass includeDismissed=true to include dismissed historical errors. If accessed using an OAuth access token, the EVENT_TYPE_READ scope is required.
Get event type history
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the EVENT_TYPE_READ scope is required. Access control: This endpoint returns audit history using the same owner/admin-style audit-history access policy as the app/tRPC history query. Having general event type read access does not by itself grant access to audit history.
Get scheduling configuration
Returns the scheduling configuration for a team event type. The response shape varies by scheduling type: - roundRobin: Full configuration including hosts with priority, weight, and group assignment, host groups, and advanced settings (weights toggle, lead threshold, no-show calculations, CRM fallback). - collective: Hosts with basic info and assignAllTeamMembers. Round-robin-specific fields are omitted. - managed: Hosts with basic info and assignAllTeamMembers. Round-robin-specific fields are o
Create a private link for an event type
If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
Delete a private link for an event type
If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
Get all private links for an event type
If accessed using an OAuth access token, the EVENT_TYPE_READ scope is required.
Update a private link for an event type
If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
Update an event type
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the EVENT_TYPE_WRITE scope is required.
Get a booking
:bookingUid can be 1. uid of a normal booking 2. uid of one of the recurring booking recurrences 3. uid of recurring booking which will return an array of all recurring booking recurrences (stored as recurringBookingUid on one of the individual recurrences). If you are fetching a seated booking for an event type with 'show attendees' disabled, then to retrieve attendees in the response either set 'show attendees' to true on event type level or you have to provide an authentication method of even
Get an event type
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. Access control: This endpoint fetches an event type by ID and returns it only if the authenticated user is authorized. Authorization is granted to: - System admins - The event type owner - Hosts of the event type or users assigned to the event type - Team admins/owners of the team that owns the team event type - Organiz
Get my profile
If accessed using an OAuth access token, the PROFILE_READ scope is required.
Get average booking duration
Get average booking duration for user, team, or organization insights.
Get booking event trends
Get booking trend stats for user, team, or organization insights.
Get booking KPI stats
Get booking KPI stats for user, team, or organization insights.
Get booking member stats
Get booking member stats for user, team, or organization insights.
Get failed bookings by routing field
Get failed booking counts grouped by routing form field for user, team, or organization insights.
Get routed-to users per period
Get routed-to booking counts by user and period for user, team, or organization insights.
Get routing form field options
Get routing form fields and options for user, team, or organization insights.
Get routing form response headers
Get routing form response headers for user, team, or organization insights.
Get routing form responses
Get paginated routing form responses for user, team, or organization insights.
Get routing forms by status
Get routing form response counts by booking status for user, team, or organization insights.
Get available time slots for an event type
There are 4 ways to get available slots for event type of an individual user: 1. By event type id. Example '/v2/slots?eventTypeId=10&start=2050-09-05&end=2050-09-06&timeZone=Europe/Rome' 2. By event type slug + username. Example '/v2/slots?eventTypeSlug=intro&username=bob&start=2050-09-05&end=2050-09-06' 3. By event type slug + username + organization slug when searching within an organization. Example '/v2/slots?organizationSlug=org-slug&eventTypeSlug=intro&username=bob&start=2050-09-05&end=205
Get all bookings
Cursor-based pagination. Pass the pagination.nextCursor from the previous response as the cursor query parameter to fetch the next page. Omit cursor to fetch the first page. pagination.hasMore is false and pagination.nextCursor is null when you've reached the last page. Must pass cal-api-version: 2026-05-01 header. status filters to a single status. Pass one (e.g. ?status=upcoming) or omit to walk all statuses. To list bookings across multiple statuses, issue parallel requests — one per status —
Get all event types
Hidden event types are returned only if authentication is provided and it belongs to the event type owner. Use the optional sortCreatedAt query parameter to order results by creation date (by ID). Accepts "asc" (oldest first) or "desc" (newest first). When not provided, no explicit ordering is applied. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.
Get all schedules
Get all schedules of the authenticated user. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the SCHEDULE_READ scope is required.
Clear my booking limits
Removes all of the authenticated user's global booking limits. Only available to organization members — non-org accounts receive a 403. If accessed using an OAuth access token, the PROFILE_WRITE scope is required.
Get my booking limits
Returns the authenticated user's global booking limits. Unset bounds are returned as null. Only available to organization members — non-org accounts receive a 403. If accessed using an OAuth access token, the PROFILE_READ scope is required.
Update my profile
Updates the authenticated user's profile. Email changes require verification and the primary email stays unchanged until verification completes, unless the new email is already a verified secondary email or the user is platform-managed. If accessed using an OAuth access token, the PROFILE_WRITE scope is required.
Update my booking limits
Partially updates the authenticated user's global booking limits. Only fields present in the request body are changed; omit a field to leave it untouched, or set it to null to remove that limit. Only available to organization members — non-org accounts receive a 403. If accessed using an OAuth access token, the PROFILE_WRITE scope is required.
Get verified email of an org team by id
Required membership role: team admin. PBAC permission: team.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_READ scope is required.
Get list of verified emails of an org team
Required membership role: team admin. PBAC permission: team.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_READ scope is required.
Get verified phone number of an org team by id
Required membership role: team admin. PBAC permission: team.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_READ scope is required.
Get list of verified phone numbers of an org team
Required membership role: team admin. PBAC permission: team.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_READ scope is required.
Request email verification code
Sends a verification code to the email. Required membership role: team admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_WRITE scope is required.
Request phone number verification code
Sends a verification code to the phone number. Required membership role: team admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_WRITE scope is required.
Verify an email for an org team
Use code to verify an email. Required membership role: team admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_WRITE scope is required.
Verify a phone number for an org team
Use code to verify a phone number. Required membership role: team admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_WRITE scope is required.
Create organization team workflow for event-types
Required membership role: team admin. PBAC permission: workflow.create. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_WRITE scope is required.
Create organization team workflow for routing-forms
Required membership role: team admin. PBAC permission: workflow.create. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_WRITE scope is required.
Delete organization team routing-form workflow
Required membership role: team admin. PBAC permission: workflow.delete. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_WRITE scope is required.
Delete organization team workflow
Required membership role: team admin. PBAC permission: workflow.delete. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_WRITE scope is required.
Get organization team routing form workflow
Required membership role: team admin. PBAC permission: workflow.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_READ scope is required.
Get organization team routing form workflows
Required membership role: team admin. PBAC permission: workflow.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_READ scope is required.
Get organization team workflow
Required membership role: team admin. PBAC permission: workflow.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_READ scope is required.
Get organization team workflows
Required membership role: team admin. PBAC permission: workflow.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_READ scope is required.
Update organization routing form team workflow
Required membership role: team admin. PBAC permission: workflow.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_WRITE scope is required.
Update organization team workflow
Required membership role: team admin. PBAC permission: workflow.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_WORKFLOW_WRITE scope is required.
Get an attribute
Required membership role: org member. PBAC permission: organization.attributes.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control
Get all attributes
Required membership role: org member. PBAC permission: organization.attributes.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control
Assign an attribute to a user
Required membership role: org admin. PBAC permission: organization.attributes.editUsers. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control
Get all attribute options
Required membership role: org member. PBAC permission: organization.attributes.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control
Unassign an attribute from a user
Required membership role: org admin. PBAC permission: organization.attributes.editUsers. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control
Update an attribute assignment for a user
Required membership role: org admin. PBAC permission: organization.attributes.editUsers. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control
Get organization bookings (cursor pagination)
Cursor-paginated org bookings listing. Pass the pagination.nextCursor from the previous response as the cursor query parameter to fetch the next page. Omit cursor to fetch the first page. pagination.hasMore is false and pagination.nextCursor is null when you've reached the last page. Must pass cal-api-version: 2026-05-01 header. status filters to a single status. Pass one (e.g. ?status=upcoming) or omit to walk all statuses. To list bookings across multiple statuses, issue parallel requests — on
Connect your conferencing application to a team
Required membership role: team admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_APPS_WRITE scope is required.
Disconnect team conferencing application
Required membership role: team admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_APPS_WRITE scope is required.
Get team default conferencing application
Required membership role: team admin. PBAC permission: team.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_APPS_READ scope is required.
Get OAuth conferencing app's auth URL for a team
Required membership role: team admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_APPS_WRITE scope is required.
List team conferencing applications
Required membership role: team admin. PBAC permission: team.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_APPS_READ scope is required.
Save conferencing app OAuth credentials
Required membership role: team admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_APPS_WRITE scope is required.
Set team default conferencing application
Required membership role: team admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_APPS_WRITE scope is required.
Create a phone call
Required membership role: team admin. PBAC permission: eventType.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Create an event type
Required membership role: team admin. PBAC permission: eventType.create. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Delete a team event type
Required membership role: team admin. PBAC permission: eventType.delete. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Get an event type
Required membership role: team admin. PBAC permission: eventType.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_EVENT_TYPE_READ scope is required.
Get team event types
Use the optional sortCreatedAt query parameter to order results by creation date (by ID). Accepts "asc" (oldest first) or "desc" (newest first). When not provided, no explicit ordering is applied.
Get all team event types
Use the optional sortCreatedAt query parameter to order results by creation date (by ID). Accepts "asc" (oldest first) or "desc" (newest first). When not provided, no explicit ordering is applied. Required membership role: team admin. PBAC permission: eventType.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_EVENT_TYPE_READ scope is required.
Create a private link for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Delete a private link for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Get all private links for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_READ scope is required.
Update a private link for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Update a team event type
Required membership role: team admin. PBAC permission: eventType.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Create a membership
Required membership role: org admin. PBAC permission: organization.invite. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_MEMBERSHIP_WRITE scope is required. Two identifier modes are accepted in the request body: 1. userId — attach an existing user (by id) directly. Use when the caller already knows the Cal.com user id and just needs the membership row created/updated. No notification email is sent. 2.
Delete a membership
Required membership role: org admin. PBAC permission: organization.remove. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_MEMBERSHIP_WRITE scope is required.
Get all memberships
Required membership role: org admin. PBAC permission: organization.listMembers. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_MEMBERSHIP_READ scope is required.
Get a membership
Required membership role: org admin. PBAC permission: organization.listMembers. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_MEMBERSHIP_READ scope is required.
Update a membership
Required membership role: org admin. PBAC permission: organization.changeMemberRole. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_MEMBERSHIP_WRITE scope is required.
Get organization routing forms
Required membership role: org admin. PBAC permission: routingForm.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_ROUTING_FORM_READ scope is required.
Create routing form response and get available slots
Required membership role: org admin. PBAC permission: routingForm.create. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_ROUTING_FORM_WRITE scope is required.
Get routing form responses
Required membership role: org admin. PBAC permission: routingForm.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_ROUTING_FORM_READ scope is required.
Update routing form response
Required membership role: org admin. PBAC permission: routingForm.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_ROUTING_FORM_WRITE scope is required.
Create a schedule
Required membership role: org admin. PBAC permission: availability.create. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_SCHEDULE_WRITE scope is required.
Delete a schedule
Required membership role: org admin. PBAC permission: availability.delete. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_SCHEDULE_WRITE scope is required.
Get all schedules
Required membership role: org admin. PBAC permission: availability.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_SCHEDULE_READ scope is required.
Get a schedule
Required membership role: org admin. PBAC permission: availability.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_SCHEDULE_READ scope is required.
Get all schedules
Required membership role: org admin. PBAC permission: availability.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_SCHEDULE_READ scope is required.
Update a schedule
Required membership role: org admin. PBAC permission: availability.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_SCHEDULE_WRITE scope is required.
Get organization team bookings
Required membership role: team admin. PBAC permission: booking.readTeamBookings. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_BOOKING_READ scope is required.
Get booking references
Required membership role: team admin. PBAC permission: booking.readTeamBookings. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_BOOKING_READ scope is required.
Create a team
Required membership role: org admin. PBAC permission: team.create. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_PROFILE_WRITE scope is required.
Delete a team
Required membership role: org admin. PBAC permission: team.delete. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_PROFILE_WRITE scope is required.
Get all teams
Required membership role: org admin. PBAC permission: team.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_PROFILE_READ scope is required.
Get teams membership for user
Required membership role: org member. PBAC permission: team.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_MEMBERSHIP_READ scope is required.
Get a team
Required membership role: team admin. PBAC permission: team.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_PROFILE_READ scope is required.
Create team invite link
Required membership role: team admin. PBAC permission: team.invite. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_MEMBERSHIP_WRITE scope is required.
Create a membership
Required membership role: team admin. PBAC permission: team.invite. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_MEMBERSHIP_WRITE scope is required.
Delete a membership
Required membership role: team admin. PBAC permission: team.remove. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_MEMBERSHIP_WRITE scope is required.
Get all memberships
Required membership role: team admin. PBAC permission: team.listMembers. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_MEMBERSHIP_READ scope is required.
Get a membership
Required membership role: team admin. PBAC permission: team.listMembers. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_MEMBERSHIP_READ scope is required.
Update a membership
Required membership role: team admin. PBAC permission: team.changeMemberRole. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_MEMBERSHIP_WRITE scope is required.
Get team routing forms
Required membership role: team admin. PBAC permission: routingForm.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_ROUTING_FORM_READ scope is required.
Create routing form response and get available slots
Required membership role: team member. PBAC permission: routingForm.create. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_ROUTING_FORM_WRITE scope is required.
Get organization team routing form responses
Required membership role: team admin. PBAC permission: routingForm.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_ROUTING_FORM_READ scope is required.
Update routing form response
Required membership role: team admin. PBAC permission: routingForm.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_ROUTING_FORM_WRITE scope is required.
Get all team member schedules
Required membership role: team admin. PBAC permission: availability.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_SCHEDULE_READ scope is required.
Get schedules of a team member
Required membership role: team admin. PBAC permission: availability.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_SCHEDULE_READ scope is required.
Update a team
Required membership role: org admin. PBAC permission: team.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_PROFILE_WRITE scope is required.
Get all bookings for an organization user
If accessed using an OAuth access token, the ORG_BOOKING_READ scope is required.
List conferencing apps of an organization user
Lists all connected conferencing apps for a specific user within the organization, including which one is set as default. If accessed using an OAuth access token, the APPS_READ scope is required.
Set the default conferencing app for an organization user
Sets the default conferencing app for a specific user within the organization. If accessed using an OAuth access token, the APPS_WRITE scope is required.
Create a user
Required membership role: org admin. PBAC permission: organization.invite. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_MEMBERSHIP_WRITE scope is required. This endpoint creates a brand-new Cal.com user account and attaches them to the organization. If the email already belongs to an existing Cal.com user, the request fails with 409 Conflict. When the user is already a member of this organization the
Delete a user
Required membership role: org admin. PBAC permission: organization.remove. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_MEMBERSHIP_WRITE scope is required.
Get all users
Required membership role: org admin. PBAC permission: organization.listMembers. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_MEMBERSHIP_READ scope is required.
Create an out-of-office entry for a user
If accessed using an OAuth access token, the ORG_SCHEDULE_WRITE scope is required.
Delete an out-of-office entry for a user
If accessed using an OAuth access token, the ORG_SCHEDULE_WRITE scope is required.
Get all out-of-office entries for a user
If accessed using an OAuth access token, the ORG_SCHEDULE_READ scope is required.
Get all out-of-office entries for organization users
If accessed using an OAuth access token, the ORG_SCHEDULE_READ scope is required.
Update an out-of-office entry for a user
If accessed using an OAuth access token, the ORG_SCHEDULE_WRITE scope is required.
Update a user
Required membership role: org admin. PBAC permission: organization.editUsers. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_MEMBERSHIP_WRITE scope is required.
Create a webhook
Required membership role: org admin. PBAC permission: webhook.create. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_WEBHOOK_WRITE scope is required.
Delete a webhook
Required membership role: org admin. PBAC permission: webhook.delete. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_WEBHOOK_WRITE scope is required.
Get all webhooks
Required membership role: org admin. PBAC permission: webhook.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_WEBHOOK_READ scope is required.
Get a webhook
Required membership role: org admin. PBAC permission: webhook.read. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_WEBHOOK_READ scope is required.
Update a webhook
Required membership role: org admin. PBAC permission: webhook.update. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the ORG_WEBHOOK_WRITE scope is required.
Create a schedule
Create a schedule for the authenticated user. The point of creating schedules is for event types to be available at specific times. The first goal of schedules is to have a default schedule. If you are platform customer and created managed users, then it is important to note that each managed user should have a default schedule. 1. If you passed timeZone when creating managed user, then the default schedule from Monday to Friday from 9AM to 5PM will be created with that timezone. The managed use
Delete a schedule
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the SCHEDULE_WRITE scope is required.
Get default schedule
Get the default schedule of the authenticated user. Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the SCHEDULE_READ scope is required.
Get a schedule
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the SCHEDULE_READ scope is required.
Update a schedule
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint. If accessed using an OAuth access token, the SCHEDULE_WRITE scope is required.
Add a selected calendar
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Delete a selected calendar
If accessed using an OAuth access token, the APPS_WRITE scope is required.
Delete a reserved slot
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.
Get reserved slot
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.
Reserve a slot
Make a slot not available for others to book for a certain period of time. If you authenticate using oAuth credentials, api key or access token then you can also specify custom duration for how long the slot should be reserved for (defaults to 5 minutes). Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.
Update a reserved slot
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.
Get team bookings
If accessed using an OAuth access token, the TEAM_BOOKING_READ scope is required.
Create a team
If accessed using an OAuth access token, the TEAM_PROFILE_WRITE scope is required.
Delete a team
If accessed using an OAuth access token, the TEAM_PROFILE_WRITE scope is required.
Create a phone call
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Create an event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Delete a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Get an event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_READ scope is required.
Get team event types
Use the optional sortCreatedAt query parameter to order results by creation date (by ID). Accepts "asc" (oldest first) or "desc" (newest first). When not provided, no explicit ordering is applied.
Update a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Create a webhook for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Delete all webhooks for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Delete a webhook for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Get a webhook for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_READ scope is required.
Get all webhooks for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_READ scope is required.
Update a webhook for a team event type
If accessed using an OAuth access token, the TEAM_EVENT_TYPE_WRITE scope is required.
Get a team
If accessed using an OAuth access token, the TEAM_PROFILE_READ scope is required.
Get teams
If accessed using an OAuth access token, the TEAM_PROFILE_READ scope is required.
Create team invite link
If accessed using an OAuth access token, the TEAM_MEMBERSHIP_WRITE scope is required.
Create a membership
If accessed using an OAuth access token, the TEAM_MEMBERSHIP_WRITE scope is required.
Delete a membership
Required membership role: team admin. PBAC permission: team.remove. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_MEMBERSHIP_WRITE scope is required.
Get a membership
If accessed using an OAuth access token, the TEAM_MEMBERSHIP_READ scope is required.
Get all memberships
Retrieve team memberships with optional filtering by email addresses. Supports pagination. If accessed using an OAuth access token, the TEAM_MEMBERSHIP_READ scope is required.
Update membership
If accessed using an OAuth access token, the TEAM_MEMBERSHIP_WRITE scope is required.
Create an out-of-office entry for a team member
If accessed using an OAuth access token, the TEAM_SCHEDULE_WRITE scope is required.
Delete an out-of-office entry for a team member
If accessed using an OAuth access token, the TEAM_SCHEDULE_WRITE scope is required.
Get all out-of-office entries for a team member
If accessed using an OAuth access token, the TEAM_SCHEDULE_READ scope is required.
Update an out-of-office entry for a team member
If accessed using an OAuth access token, the TEAM_SCHEDULE_WRITE scope is required.
Create routing form response and get available slots
Only available for teams that are not part of an organization - for a team within an organization use the organization team endpoint instead. Required membership role: team member. PBAC permission: routingForm.create. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the TEAM_ROUTING_FORM_WRITE scope is required.
Get all team member schedules
If accessed using an OAuth access token, the TEAM_SCHEDULE_READ scope is required.
Update a team
If accessed using an OAuth access token, the TEAM_PROFILE_WRITE scope is required.
Get verified email of a team by id
If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_READ scope is required.
Get list of verified emails of a team
If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_READ scope is required.
Get verified phone number of a team by id
If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_READ scope is required.
Get list of verified phone numbers of a team
If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_READ scope is required.
Request email verification code
Sends a verification code to the Email. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_WRITE scope is required.
Request phone number verification code
Sends a verification code to the phone number. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_WRITE scope is required.
Verify an email for a team
Use code to verify an email. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_WRITE scope is required.
Verify a phone number for an org team
Use code to verify a phone number. If accessed using an OAuth access token, the TEAM_VERIFIED_RESOURCES_WRITE scope is required.
Create an out-of-office entry for the authenticated user
If accessed using an OAuth access token, the SCHEDULE_WRITE scope is required.
Delete an out-of-office entry for the authenticated user
If accessed using an OAuth access token, the SCHEDULE_WRITE scope is required.
Get all out-of-office entries for the authenticated user
If accessed using an OAuth access token, the SCHEDULE_READ scope is required.
Update an out-of-office entry for the authenticated user
If accessed using an OAuth access token, the SCHEDULE_WRITE scope is required.
Get verified email by id
If accessed using an OAuth access token, the VERIFIED_RESOURCES_READ scope is required.
Get list of verified emails
If accessed using an OAuth access token, the VERIFIED_RESOURCES_READ scope is required.
Get verified phone number by id
If accessed using an OAuth access token, the VERIFIED_RESOURCES_READ scope is required.
Get list of verified phone numbers
If accessed using an OAuth access token, the VERIFIED_RESOURCES_READ scope is required.
Request email verification code
Sends a verification code to the email. If accessed using an OAuth access token, the VERIFIED_RESOURCES_WRITE scope is required.
Request phone number verification code
Sends a verification code to the phone number. If accessed using an OAuth access token, the VERIFIED_RESOURCES_WRITE scope is required.
Verify an email
Use code to verify an email. If accessed using an OAuth access token, the VERIFIED_RESOURCES_WRITE scope is required.
Verify a phone number
Use code to verify a phone number. If accessed using an OAuth access token, the VERIFIED_RESOURCES_WRITE scope is required.
Create a webhook
If accessed using an OAuth access token, the WEBHOOK_WRITE scope is required.
Delete a webhook
If accessed using an OAuth access token, the WEBHOOK_WRITE scope is required.
Get a webhook
If accessed using an OAuth access token, the WEBHOOK_READ scope is required.
Get all webhooks
Gets a paginated list of webhooks for the authenticated user. If accessed using an OAuth access token, the WEBHOOK_READ scope is required.
Update a webhook
If accessed using an OAuth access token, the WEBHOOK_WRITE scope is required.