Integrations
Cal.com icon

Cal.com

OAuth · 238 tools

Scheduling, bookings, availability, teams, and organization management

Start free

Cal.com, one prompt away

Connect your own account and use these tools through your agent.

API docs

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.

Start free