Team
Shared credential for production and unattended runs.
Cal simplifies meeting coordination by providing shareable booking pages, calendar syncing, and availability management to streamline the scheduling process
Tools and triggers
Available tools and events after Cal is connected.
Tool to create a new attendee for an existing booking in Cal.com. Use when you need to add an additional participant to a scheduled event.
Adds a new member to a specified team within an organization by creating a team membership.
Adds a new option to an organization's SINGLE_SELECT or MULTI_SELECT attribute. Use this action to extend the available choices for an existing attribute. For example, adding a new department option like "Marketing" to…
Links a new external calendar or updates an existing link to one, enabling synchronization with the Cal application by specifying the `integration` provider, the calendar's `externalId`, and the `credentialId`.
Assigns an existing attribute option (using `attributeOptionId`) or creates a new one (using `value`) for a user, linking it to a specified `attributeId` which must already exist within the organization.
Cancels an existing and active Cal.com booking using its unique identifier (UID).
Retrieves free/busy availability for a specified calendar to aid scheduling without revealing event details; requires an existing, accessible calendar, noting that data granularity can vary.
Call this read-only action to verify the connection and synchronization status of a user's Google Calendar integration with Cal.
Checks an ICS feed URL (expected as a query parameter) to verify its validity, accessibility, and iCalendar data integrity.
Verifies if Stripe is correctly connected to the Cal scheduling system and functional for processing payments, reporting only on the integration's status.
Retrieves the Stripe integration status and related information for a team, primarily to verify account connection, subscription details, or payment setup; this is a read-only operation that does not modify Stripe…
Confirms an existing booking by `bookingUid` if the booking exists and is in a state allowing confirmation (e.g., not already cancelled or confirmed); this finalizes the booking, does not modify its details, and should…
Connects or reconnects Cal.com with a specified conferencing application to enable future virtual meeting scheduling, but does not itself create or schedule meetings.
Initiates or checks the external connection status for a specified calendar, possibly returning a redirect URL for user authorization to complete integration, without altering calendar data.
Creates a new booking for an event type at a specified start time. Use this action to schedule a meeting with a Cal.com user. Prerequisites: 1. Get a valid event type ID from list_event_types 2. Find an available time…
Creates a new membership for a user within a Cal.com organization. The caller must have admin/owner access to the organization, and the target user must already exist in the system. Use…
Creates a new team profile, or updates one if a 'slug' matches, customizing branding, scheduling, privacy, and operational details.
Creates a new custom attribute for an existing organization, used to enhance data collection for event bookings or user profiles.
Tool to create a new workflow for routing forms within an organization team. Use when you need to set up automated actions (like sending emails or SMS) triggered by routing form submissions. Supports notification…
Creates a webhook for an organization that sends HTTP POST notifications to a specified URL when triggered by events (e.g., booking created, cancelled, meeting started). Returns the webhook configuration including its…
Schedules a phone call event in Cal.com using existing eventType, organization, and team IDs; this action only registers the event details and does not initiate the actual phone call.
Configures Cal.ai phone call automation for a team event type, enabling AI-powered outbound calls for appointment reminders or custom conversations. Requires team membership - first use CAL_GET_TEAMS_LIST to get a…
Creates a new event type for a specified team in Cal.com; ensure `teamId`, any provided `scheduleId`, `hosts.userId`, and `destinationCalendar` details are valid and accessible.
Creates a highly customizable Cal.com team event type with extensive scheduling, booking, and host assignment options; `schedulingType` is required, `lengthInMinutes` must be included in `lengthInMinutesOptions`…
Creates a new team with customizable attributes within an existing and accessible Cal.com organization specified by orgId.
Creates a shareable invite link for a Cal.com team that allows new members to join. Returns both the raw token and a complete invitation URL.
Adds a user to a team with a specified role, acceptance status, and impersonation settings; ensure `teamId` and `userId` refer to existing, valid entities.
Creates a Cal.com user availability schedule, defining its name, timezone, weekly recurring availability, and specific date overrides; if `isDefault` is true, this schedule replaces any existing default and applies to…
Creates a new schedule defining a user's availability with weekly slots and date-specific overrides in an organization; setting 'isDefault' to true may replace an existing default schedule for the user.
Creates a webhook for an existing `eventTypeId` in Cal.com, sending notifications for specified `triggers` to a `subscriberUrl` that handles POST requests.
Creates a new Cal.com webhook subscription to send real-time notifications for specified calendar events (like bookings, meetings, forms) to a publicly accessible subscriber URL. Supports custom payload templates and…
Declines a pending booking using its bookingUid, optionally with a reason; this action is irreversible and applies only to bookings awaiting confirmation.
Permanently deletes all webhooks associated with a specific team event type. Use when you need to remove all webhook configurations for a team's event type.
Disconnects the specified conferencing application (e.g., 'zoom', 'google_meet') for the Cal.com account, immediately terminating any ongoing call or meeting; use with caution.
Tool to remove an existing destination calendar by its unique ID. Use when you need to delete a destination calendar configuration.
Permanently deletes an existing event type by its ID, which invalidates its scheduling links; the operation is irreversible, and while existing bookings are unaffected, no new bookings can be made for this event type.
Permanently removes an event type's configuration from a team's scheduling options (e.g., for cleanup); this action is irreversible and requires the event type to be associated with the team.
Use to permanently remove a user's membership from a specific team within an organization, which revokes their team-associated access but does not remove them from the organization.
Permanently deletes an organization-level webhook by its ID. This action removes the specified webhook from the organization, stopping all future notifications to its subscriber URL. The deletion is irreversible - the…
Permanently deletes an existing attribute (specified by `attributeId`) from an existing organization (specified by `orgId`); this action is irreversible and may affect features dependent on the attribute.
Permanently deletes a specified option from an organization's attribute. Use this action to remove an option value from attributes of type SINGLE_SELECT or MULTI_SELECT. This is useful for cleaning up unused or…
Irreversibly deletes a user's membership from an organization, removing all associated access and permissions; the response confirms deletion without returning details of the deleted membership.
Permanently deletes a specific schedule using its unique identifier, which must correspond to an existing schedule.
Removes a specified, currently selected calendar from the user's active list within the application, without deleting it from the external provider.
Deletes a previously selected time slot from the Cal schedule using its `uid`; the slot must exist and this action is irreversible.
Permanently and irreversibly deletes an existing team and all its associated data from the Cal system, using the team's unique `teamId`.
Permanently removes a team event type from an organization's scheduling configuration. Use when cleaning up unused event types or consolidating team scheduling options.
Permanently and irreversibly deletes a specific team from a Cal.com organization. WARNING: This action cannot be undone and will remove all associated team data including memberships, event types, and bookings…
Irreversibly removes a user's team membership in the Cal application, revoking access to that specific team; the user's overall Cal account remains active.
Unassigns a specific attribute option from a user within an organization. Use this action to remove an attribute option assignment (e.g., skill, role, department) from a specific user. This does NOT delete the…
Permanently removes a user from a specific organization (user's system-wide account is unaffected), revoking their access rights therein; this action is irreversible via API and expects the user to be a current member.
Permanently deletes a specific user's schedule, provided the organization, user, and schedule (identified by `orgId`, `userId`, and `scheduleId`) exist.
Permanently deletes an existing webhook by its `webhookId`, stopping future notifications; this action is irreversible.
Permanently deletes a specific webhook for an event type, halting its real-time notifications; this operation is irreversible and leaves the event type and other webhooks untouched.
Call this to irreversibly delete all webhooks for a specific `eventTypeId` if the event type exists; details of deleted webhooks are not returned.
Disconnects a calendar integration by its provider name and credential ID, irreversibly revoking Cal's access; external calendar data remains unaffected.
Tool to edit an existing attendee in a Cal.com booking. Use when you need to update attendee details such as name, email, or timezone.
Tool to edit an existing availability by ID on Cal.com. Use when you need to update the days, start time, end time, or schedule association of an existing availability.
Tool to edit an existing booking by its ID. Use when you need to update booking details such as title, description, status, or time.
Tool to edit an existing Cal.com event type by ID. Use when you need to update event type settings like title, description, duration, locations, or booking configurations.
Tool to edit a selected calendar by its composite ID in Cal.com. Use when you need to update an existing calendar integration.
Fetches a list of bookings, optionally filtered by status, attendee, date range, or by event/team IDs (which must belong to/include the authenticated user respectively), with support for pagination and sorting.
Fetches all configuration settings and characteristics for a single event type (identified by orgId, teamId, and eventTypeId), which must exist and be accessible; this read-only action cannot list, create, or modify…
Retrieves a specific attribute of an organization, useful for fetching a single data point instead of the entire organization record.
Fetches an OAuth access token for the specified `clientId` to authenticate API calls; this action only retrieves the token, not managing scheduling or calendar events.
Fetches comprehensive details for a specific, existing schedule using its `scheduleId`.
Retrieves a specific user's schedule within an organization, returning availability windows, timezone settings, and date-specific overrides. Requires organization-level access permissions.
Retrieves details for a single, specific webhook using its `webhookId` and associated `eventTypeId`.
Retrieves all supported time zone identifiers (e.g., 'America/New_York', 'Europe/London') and their associated metadata, excluding specific DST changes or precise UTC offset details.
Retrieves available time slots for scheduling by considering existing bookings and availability, based on criteria like a specified time range and event type.
Tool to find a specific booking reference by its ID. Use when you need to retrieve details about a single booking reference that links a booking to an external platform or calendar.
Retrieves external references for a specific booking within an organization's team. Use when you need to get calendar or video platform integration details for a booking.
Generates an OAuth 2.0 authorization URL for a supported conferencing `app` to initiate or refresh its integration with Cal.com.
Retrieves the Cal system's global default schedule configuration, not custom or user-specific ones.
Tool to retrieve all destination calendars configured for the authenticated user. Use when you need to find where new bookings will be created.
Retrieves a specific event type by its ID, requiring that the event type is associated with the given team ID.
Retrieves all private booking links for a specific event type. Private links allow sharing event booking URLs with restricted access, either time-limited or usage-limited.
Generates the initial Google Calendar OAuth 2.0 authorization URL for user redirection to begin the authentication and authorization process.
Retrieves all managed users associated with a Platform OAuth client. This endpoint is part of Cal.com's Platform API for managing users created through OAuth client credentials. Requires a valid Platform OAuth client…
Retrieves all assigned attribute options for a specific attribute within an organization. This action returns the list of attribute options that have been assigned to users, along with which users have been assigned…
Tool to retrieve all assigned attribute options for a specific attribute by its slug within an organization. Use when you need to see which attribute options have been assigned to users, filtered by the attribute's…
Retrieves the organization ID associated with the currently authenticated user from the Cal.com /v2/me endpoint.
Retrieves availability schedules for an organization. Returns schedules that define when users are available for bookings, including working hours, time zones, and date-specific overrides. These are not individual…
Retrieves workflows configured for a specific team within an organization. Returns workflow configurations including triggers, steps, and activation settings. Use when you need to list or inspect workflow automations…
Retrieves event types, including names, durations, and custom settings for team scheduling, for all teams within an existing organization specified by `orgId`.
Retrieves all availability schedules configured for a specific user within an organization. Returns detailed schedule information including time slots, timezones, and overrides. Does not include booked events or…
Get all private links for a team event type. Use this to retrieve both time-based (with expiration) and usage-based (with usage limits) private links for scheduling.
Retrieves all availability schedules for a specific user within a team and organization. Returns schedule configurations including working hours, time zones, weekly availability patterns, default schedule designation…
Tool to retrieve a selected calendar by its compound ID (userId_integration_externalId). Use when you need to fetch details of a specific calendar that has been selected for synchronization.
Retrieves Stripe Connect account details (ID, charges/payouts status, verification, settings) for the user's linked Cal.com account; response may be empty or indicate no integration if no account is linked.
Tool to get Stripe Connect authorization URL for a team within an organization. Use when you need to obtain a URL that allows team members to connect their Stripe account for payment processing on Cal.com.
Retrieves all bookings for a specified team, optionally filtered by status, attendee details, date ranges, or event type IDs, with support for pagination and sorting.
Retrieves the default conferencing application configured for a specific team within an organization. Use this to check which video platform (e.g., Zoom, Google Meet) is set as the team's default for scheduling meetings.
Retrieves comprehensive details for a specific team within an organization, including team metadata, configuration settings, branding options, and timezone/week preferences. Use this to get team information like name…
Retrieves details for a specific webhook configured on a team event type. Use when you need to inspect webhook configuration, verify settings, or troubleshoot webhook deliveries for team-managed event types.
Retrieves all webhooks configured for a specific team event type. Use this to audit webhook configurations or troubleshoot webhook delivery issues.
Retrieves detailed information about a specific Cal.com team by its ID. Returns team configuration including name, slug, branding (logo, colors, theme), timezone settings, and privacy options. Requires the…
Retrieves routing forms for a specific team within an organization. Routing forms are used to collect information from potential bookers and route them to appropriate event types or team members based on their…
Retrieves availability schedules for all members of a specific team within an organization. Returns schedules that define when team members are available for bookings, including working hours, time zones, and…
Retrieves all teams the user belongs to, including their names and members.
Retrieves a paginated list of verified phone numbers for a specific organization team. Use when you need to get phone numbers that have been verified and associated with a team.
Retrieves details for an existing and accessible webhook by its ID; this is a read-only operation.
Processes an OAuth 2.0 callback for a conferencing `app`, exchanging the `code` and `state` for access credentials; ensure an OAuth flow was previously initiated.
Tool to retrieve all attendees from Cal.com. Use when you need to get a complete list of all attendees across all bookings.
Fetches one page of booking references in Cal.com. The Cal.com v2 API does not expose `/booking-references` for Bearer-token auth, so this action paginates the v2 `/bookings` endpoint and extracts each booking's…
Retrieves Cal event types, filterable by `username` (required if `eventSlug` is provided), multiple `usernames`, or organization details (`orgSlug` or `orgId`).
Retrieves all memberships for a given organization, including user details, roles, status, and membership dates.
Retrieves all event types for a specific team within an organization, optionally filtering by a specific event slug.
Marks the host and/or specified attendees as absent for an existing booking, typically used after a scheduled event to record no-shows.
Partially updates an organization attribute using `orgId` and `attributeId`, allowing modification of its name, slug, type, or enabled status; changing the 'type' may affect existing data.
Updates an organization membership's status (accepted), role, or impersonation settings, identified by `orgId` and `membershipId` in the path; requires at least one of these fields in the request to apply changes.
Partially updates a specific option for an organization's attribute, modifying its 'value' and/or 'slug'; at least one of 'value' or 'slug' must be provided.
Partially updates details for a user that exists within the specified organization.
Updates specified details for an existing team identified by `teamId`; unspecified fields remain unchanged.
Updates configuration (e.g., payload template, active status, URL, triggers, secret) for an existing webhook tied to a specific event type.
Use to submit/update authentication credentials (passed in the request body) for an existing calendar, enabling Cal to connect with external calendar services for synchronization.
Adds a new user to an existing organization (identified by `orgId` in path), requiring user's `email` and allowing extensive optional profile customization.
Reassigns an existing booking to a specified user. Requires cal-api-version 2024-08-13. The booking owner must be authorized to perform the reassignment.
Reassigns the specified booking to a new team member, who is determined by the system rather than being specified in the request.
Request an email verification code for a team's verified resources. Use this action when you need to verify an email address for a team. The API will send a verification code to the specified email address. After…
Reschedules an existing booking (identified by `bookingUid`) to a new time. Requires the booking UID and the new start time in ISO 8601 format. Optionally, you can provide a rescheduling reason and the email of the…
Temporarily reserves an available time slot for an existing and bookable event type, useful for high-demand slots to prevent double-bookings while the user completes the booking.
Retrieves all available options for a specific attribute within an organization. This action returns the list of selectable options for SINGLE_SELECT or MULTI_SELECT type attributes. For example, if you have a…
Fetches comprehensive details for an existing booking, identified by its `bookingUid`.
To find busy calendar slots for scheduling/conflict detection, call this with a valid `credentialId`, an `externalId` accessible by it, and a recognized IANA `loggedInUsersTz`; returns only busy intervals, not event…
Retrieves a list of all calendar summaries (no event details) associated with the authenticated user's account.
Retrieves details of the team(s) for the currently authenticated user within the specified organization `orgId`.
Retrieves an account's or organization's read-only default conferencing settings in Cal.com (e.g., video platform, meeting duration) to inform event creation or ensure consistency.
Retrieves comprehensive details for a specific, existing Cal.com event type using its unique ID; this is a read-only action and does not return associated events or bookings.
Retrieves detailed information about a specific membership within a particular organization.
Retrieves the authenticated user's core profile information (e.g., name, email, timezone); does not retrieve related data like calendar events or schedules.
Retrieves detailed profile information for a specific managed user associated with an OAuth client. This endpoint is part of Cal.com's Platform API for OAuth client management. It requires: - A valid OAuth client ID…
Retrieves detailed attributes (e.g., configurations, settings, metadata) for an organization, identified by its `orgId`, which must correspond to an existing organization.
Retrieves all attribute options assigned to a specific user within an organization. Attribute options are customizable organizational metadata (like department, role, location, or team) that organizations define and…
Retrieves detailed information, including configuration and status, for a specific webhook by its ID (`webhookId`) within a given organization (`orgId`).
Retrieves all webhooks configured for a specific organization, returning an array of webhook objects with their configuration details (ID, triggers, subscriber URL, active status, etc.). Supports pagination via `take`…
Verifies and retrieves details for an OAuth client (provider) in Cal.com's Platform API. This endpoint is part of Cal.com's Platform API for managing OAuth clients. It verifies the OAuth client credentials (clientId…
Retrieve all availability schedules for the authenticated Cal.com user. This action returns a list of schedules that define when a user is available for bookings. Each schedule includes availability time blocks…
Retrieves a paginated list of teams and their details for a specific organization ID; individual team member details or schedules are not included.
Retrieves event types for a team within the Cal scheduling system; this action does not provide details on scheduled instances or member availability.
Retrieves detailed information for a specific team membership by its ID within an organization's team. Returns membership details including the user's role (MEMBER, OWNER, or ADMIN), acceptance status, impersonation…
Retrieves detailed attributes for a specific team membership by its ID and the team ID, such as member information, role, and status; does not list all team members.
Retrieves all memberships for a team, including member details, roles (MEMBER/OWNER/ADMIN), and invitation acceptance status. Supports pagination via 'take' and 'skip' parameters. Use this action to list team members…
Retrieves all user memberships for a specific team within an organization, including each member's role (OWNER, ADMIN, MEMBER), acceptance status, impersonation settings, and detailed user information (email, username…
Retrieves users associated with a specific organization ID, excluding individual scheduling or calendar data; the `orgId` must be a valid identifier for an existing organization.
Retrieves an authenticated Cal user's or organization's video conferencing configurations, capabilities, and installed apps, useful for understanding options before scheduling or verifying setups; provider availability…
Retrieves all webhook configurations for a specific OAuth client with optional pagination. This endpoint is part of Cal.com's Platform API for managing webhooks associated with OAuth clients. Use this to: - List all…
Retrieves a paginated list of webhooks (including URLs, subscribed events, and status) for a specified, existing event type ID, useful for auditing configurations or troubleshooting.
Retrieves a paginated list of webhooks from the user's Cal scheduling system account, which are used for real-time notifications on events like new bookings, cancellations, or updates.
Saves or updates a calendar's settings using a GET request, typically for data already on the server or simple updates via query parameters.
Imports and saves one or more publicly accessible external iCalendar (ICS) feed URLs into the Cal.com calendar system.
Completes the Google Calendar OAuth 2.0 flow by exchanging the `code` and `state` (received from Google's redirect after user consent) for access and refresh tokens.
Completes the Stripe OAuth flow by saving Stripe details; call this when a user is redirected back from Stripe with an authorization `code` and `state`.
Sets the specified, valid, and configured conferencing application as the default for new meetings for the authenticated user.
Updates the destination calendar for syncing events, using `integration` and `externalId` (typically from `/calendars` endpoint).
Updates specified profile and scheduling preference fields for a user associated with an OAuth client; `defaultScheduleId`, if provided, must be an existing, valid schedule for the user.
Updates specified properties of an existing webhook for an OAuth client; omitted fields remain unchanged.
Updates a private link for a team event type within an organization. Use to modify maxUsageCount for usage-based links or expiresAt for time-based links.
Updates an existing schedule by its ID, allowing partial modification of properties; providing `availability` or `overrides` replaces them entirely.
Tool to update a team event type in Cal.com. Use when modifying settings for a team's event type such as duration, description, scheduling, locations, or any other event configuration.
Updates a webhook for a team event type. Use when you need to modify webhook configuration like active status, subscriber URL, triggers, or payload template.
Updates an existing team's information by its ID within a specified organization; the `slug`, if provided, must be unique within the organization.
Updates properties of an existing team membership. Supports partial updates - only provided fields are modified while others remain unchanged. Requires appropriate team permissions (admin or owner role). Use 'Get teams…
Updates attributes like acceptance status, role, or impersonation settings for an existing team membership within an organization. Only provided fields are changed (partial update). Requires organization admin or owner…
Updates the profile information and preferences for the authenticated user, affecting only the fields provided in the request.
Modifies an existing schedule for a specified user within an organization by updating only the provided fields; the organization, user, and schedule must already exist.
Updates an existing Cal.com webhook by its `webhookId`, allowing partial modification of its attributes; only explicitly provided fields will be changed.
Updates an existing webhook for an organization. Use this to modify webhook settings such as the subscriber URL, activation status, event triggers, or verification secret. Requires admin access to the organization…
Setup
Pick a scope, then confirm what can start a Protege and what it can do.
What can start a Protege from this app.
What a Protege can do after it starts.
Prefer team for production.
Shared credential for production and unattended runs.
Tied to one user—only when the workflow needs their account.
Team-scoped for supported chat surfaces.
Build with us
Request early access or book a live walkthrough with the team.