# Cal.com on boxd

> Cal simplifies meeting coordination by providing shareable booking pages, calendar syncing, and availability management to streamline the scheduling process.

- Page: https://boxd.sh/integrations/cal/
- CLI: `run cal` (175 commands, 18 marked common)
- SDK: `import { cal } from "@boxd/run"`; every parameter and response type is at `@boxd/run/cal`
- Triggers: none
- Connect: `run auth cal` (Sign in with Cal.com), or https://app.boxd.sh/integrations/detail/cal
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth cal      # once: prints a link to connect your account
run cal           # list its commands
run cal get-teams-list
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, cal } from "@boxd/run";

every("1 hour", async () => {
  const result = await cal.getTeamsList();
  console.log(result);
});
```

Run it with `run cal.run.ts`. Cal.com has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run cal <command> --help` lists the optional ones. "common" marks what `run cal` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `add-attendee` ·common | `cal.addAttendee()` | `--bookingId` `--email` `--name` `--timeZone` | 0 | Create a new attendee for an existing booking in Cal.com |
| `add-member-to-team-using-org-and-team-id` | `cal.addMemberToTeamUsingOrgAndTeamId()` | `--orgId` `--teamId` `--userId` | 3 | Adds a new member to a specified team within an organization by creating a team membership |
| `add-organization-attribute-option` | `cal.addOrganizationAttributeOption()` | `--attributeId` `--orgId` `--slug` `--value` | 0 | Adds a new option to an organization's SINGLE_SELECT or MULTI_SELECT attribute |
| `cancel-booking-via-uid` | `cal.cancelBookingViaUid()` | `--bookingUid` | 3 | Cancels an existing and active Cal.com booking using its unique identifier (UID) |
| `check-calendar-version2` | `cal.checkCalendarVersion2()` | `--calendar` | 0 | 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 |
| `check-gsynchronization-status` | `cal.checkGsynchronizationStatus()` | — | 0 | Call this read-only action to verify the connection and synchronization status of a user's Google Calendar integration with Cal |
| `check-ics-feed-calendar-endpoint` | `cal.checkIcsFeedCalendarEndpoint()` | — | 0 | Checks an ICS feed URL (expected as a query parameter) to verify its validity, accessibility, and iCalendar data integrity |
| `check-stripe-status` | `cal.checkStripeStatus()` | — | 0 | Verifies if Stripe is correctly connected to the Cal scheduling system and functional for processing payments, reporting only on the integration's status |
| `check-team-stripe-integration-status` | `cal.checkTeamStripeIntegrationStatus()` | `--teamId` | 0 | 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… |
| `confirm-booking-by-uid` | `cal.confirmBookingByUid()` | `--bookingUid` | 0 | 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… |
| `connect-to-calendar` ·common | `cal.connectToCalendar()` | `--calendar` | 0 | 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 |
| `create-membership-for-organization` | `cal.createMembershipForOrganization()` | `--orgId` `--userId` | 3 | Creates a new membership for a user within a Cal.com organization |
| `create-oauth-client-user` | `cal.createOauthClientUser()` | `--clientId` `--email` `--name` `--x-cal-secret-key` | 5 | Creates a new managed user for a Cal.com Platform OAuth client |
| `create-oauth-client-webhook-configuration` | `cal.createOauthClientWebhookConfiguration()` | `--active` `--clientId` `--subscriberUrl` `--triggers` `--x-cal-secret-key` | 2 | Creates a webhook configuration for an OAuth client to receive real-time event notifications from Cal.com |
| `create-or-update-team-profile` ·common | `cal.createOrUpdateTeamProfile()` | `--name` | 18 | Creates a new team profile, or updates one if a 'slug' matches, customizing branding, scheduling, privacy, and operational details |
| `create-organization-attributes` | `cal.createOrganizationAttributes()` | `--name` `--options` `--orgId` `--slug` `--type` | 1 | Creates a new custom attribute for an existing organization, used to enhance data collection for event bookings or user profiles |
| `create-organization-team-form-workflow` | `cal.createOrganizationTeamFormWorkflow()` | `--activation` `--name` `--orgId` `--steps` `--teamId` `--trigger` | 0 | Create a new workflow for routing forms within an organization team |
| `create-organization-webhook-by-org-id` | `cal.createOrganizationWebhookByOrgId()` | `--active` `--orgId` `--subscriberUrl` `--triggers` | 2 | 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) |
| `create-phone-call-event` | `cal.createPhoneCallEvent()` | `--calApiKey` `--eventTypeId` `--numberToCall` `--orgId` `--teamId` `--yourPhoneNumber` | 7 | 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 |
| `create-phone-call-for-event-type` | `cal.createPhoneCallForEventType()` | `--calApiKey` `--eventTypeId` `--numberToCall` `--teamId` `--yourPhoneNumber` | 8 | Configures Cal.ai phone call automation for a team event type, enabling AI-powered outbound calls for appointment reminders or custom conversations |
| `create-team-event-type` | `cal.createTeamEventType()` | `--lengthInMinutes` `--schedulingType` `--slug` `--teamId` `--title` | 31 | 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 |
| `create-team-event-types-with-custom-options` | `cal.createTeamEventTypesWithCustomOptions()` | `--hosts` `--lengthInMinutes` `--lengthInMinutesOptions` `--orgId` `--schedulingType` `--slug` `--teamId` `--title` | 29 | 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… |
| `create-team-in-organization` | `cal.createTeamInOrganization()` | `--name` `--orgId` | 18 | Creates a new team with customizable attributes within an existing and accessible Cal.com organization specified by orgId |
| `create-team-invite-link` | `cal.createTeamInviteLink()` | `--teamId` | 0 | Creates a shareable invite link for a Cal.com team that allows new members to join |
| `create-team-membership-with-role` | `cal.createTeamMembershipWithRole()` | `--teamId` `--userId` | 3 | Adds a user to a team with a specified role, acceptance status, and impersonation settings; ensure `teamId` and `userId` refer to existing, valid entities |
| `create-user-availability-schedule` | `cal.createUserAvailabilitySchedule()` | `--isDefault` `--name` `--timeZone` | 2 | 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… |
| `create-user-schedule-in-organization` | `cal.createUserScheduleInOrganization()` | `--isDefault` `--name` `--orgId` `--timeZone` `--userId` | 2 | 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… |
| `create-webhook-for-event-type` | `cal.createWebhookForEventType()` | `--active` `--eventTypeId` `--subscriberUrl` `--triggers` | 2 | Creates a webhook for an existing `eventTypeId` in Cal.com, sending notifications for specified `triggers` to a `subscriberUrl` that handles POST requests |
| `decline-booking-with-reason` | `cal.declineBookingWithReason()` | `--bookingUid` | 1 | Declines a pending booking using its bookingUid, optionally with a reason; this action is irreversible and applies only to bookings awaiting confirmation |
| `delete-all-team-event-type-webhooks` | `cal.deleteAllTeamEventTypeWebhooks()` | `--eventTypeId` `--teamId` | 0 | Permanently deletes all webhooks associated with a specific team event type |
| `delete-conference-app-connection` | `cal.deleteConferenceAppConnection()` | `--app` | 0 | 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 |
| `delete-destination-calendar-by-id` | `cal.deleteDestinationCalendarById()` | `--id` | 0 | Remove an existing destination calendar by its unique ID |
| `delete-event-type-by-id` | `cal.deleteEventTypeById()` | `--eventTypeId` | 0 | 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… |
| `delete-event-type-in-team` | `cal.deleteEventTypeInTeam()` | `--eventTypeId` `--teamId` | 0 | 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 |
| `delete-membership-in-team` | `cal.deleteMembershipInTeam()` | `--membershipId` `--orgId` `--teamId` | 0 | 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 |
| `delete-oauth-client-user` | `cal.deleteOauthClientUser()` | `--clientId` `--userId` `--x-cal-secret-key` | 0 | Permanently removes a managed user's association with an OAuth client without deleting their Cal.com account |
| `delete-oauth-client-webhook` | `cal.deleteOauthClientWebhook()` | `--clientId` `--webhookId` `--x-cal-secret-key` | 0 | Permanently deletes a specific webhook for an OAuth client in Cal.com Platform API |
| `delete-org-webhook` | `cal.deleteOrgWebhook()` | `--orgId` `--webhookId` | 0 | Permanently deletes an organization-level webhook by its ID |
| `delete-organization-attribute` | `cal.deleteOrganizationAttribute()` | `--attributeId` `--orgId` | 0 | 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… |
| `delete-organization-attribute-option` | `cal.deleteOrganizationAttributeOption()` | `--attributeId` `--optionId` `--orgId` | 0 | Permanently deletes a specified option from an organization's attribute |
| `delete-organization-membership` | `cal.deleteOrganizationMembership()` | `--membershipId` `--orgId` | 0 | 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 |
| `delete-schedule-by-id` | `cal.deleteScheduleById()` | `--scheduleId` | 0 | Permanently deletes a specific schedule using its unique identifier, which must correspond to an existing schedule |
| `delete-selected-calendars` | `cal.deleteSelectedCalendars()` | `--credentialId` `--externalId` `--integration` | 0 | Removes a specified, currently selected calendar from the user's active list within the application, without deleting it from the external provider |
| `delete-selected-slot` | `cal.deleteSelectedSlot()` | `--uid` | 0 | Deletes a previously selected time slot from the Cal schedule using its `uid`; the slot must exist and this action is irreversible |
| `delete-team-by-id` | `cal.deleteTeamById()` | `--teamId` | 0 | Permanently and irreversibly deletes an existing team and all its associated data from the Cal system, using the team's unique `teamId` |
| `delete-team-event-type-in-organization` | `cal.deleteTeamEventTypeInOrganization()` | `--eventTypeId` `--orgId` `--teamId` | 0 | Permanently removes a team event type from an organization's scheduling configuration |
| `delete-team-from-organization` | `cal.deleteTeamFromOrganization()` | `--orgId` `--teamId` | 0 | Permanently and irreversibly deletes a specific team from a Cal.com organization |
| `delete-team-memberships-by-id` | `cal.deleteTeamMembershipsById()` | `--membershipId` `--teamId` | 0 | 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 |
| `delete-user-attribute-option` | `cal.deleteUserAttributeOption()` | `--attributeOptionId` `--orgId` `--userId` | 0 | Unassigns a specific attribute option from a user within an organization |
| `delete-user-from-organization` | `cal.deleteUserFromOrganization()` | `--orgId` `--userId` | 0 | 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… |
| `delete-user-schedule` | `cal.deleteUserSchedule()` | `--orgId` `--scheduleId` `--userId` | 0 | Permanently deletes a specific user's schedule, provided the organization, user, and schedule (identified by `orgId`, `userId`, and `scheduleId`) exist |
| `delete-webhook-by-id` | `cal.deleteWebhookById()` | `--webhookId` | 0 | Permanently deletes an existing webhook by its `webhookId`, stopping future notifications; this action is irreversible |
| `delete-webhook-for-event-type` | `cal.deleteWebhookForEventType()` | `--eventTypeId` `--webhookId` | 0 | 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 |
| `delete-webhooks-for-event-type` | `cal.deleteWebhooksForEventType()` | `--eventTypeId` | 0 | Call this to irreversibly delete all webhooks for a specific `eventTypeId` if the event type exists; details of deleted webhooks are not returned |
| `disconnect-calendar-using-credential-id` | `cal.disconnectCalendarUsingCredentialId()` | `--calendar` `--id` | 0 | Disconnects a calendar integration by its provider name and credential ID, irreversibly revoking Cal's access; external calendar data remains unaffected |
| `edit-attendee-by-id` | `cal.editAttendeeById()` | `--bookingId` `--id` | 3 | Edit an existing attendee in a Cal.com booking |
| `edit-availability-by-id` | `cal.editAvailabilityById()` | `--id` | 4 | Edit an existing availability by ID on Cal.com |
| `edit-booking-by-id` ·common | `cal.editBookingById()` | `--id` | 5 | Edit an existing booking by its ID |
| `edit-event-type-by-id` ·common | `cal.editEventTypeById()` | `--id` | 31 | Edit an existing Cal.com event type by ID |
| `edit-selected-calendar-by-id` | `cal.editSelectedCalendarById()` | `--external-id` `--integration` `--user-id` | 3 | Edit a selected calendar by its composite ID in Cal.com |
| `fetch-all-bookings` | `cal.fetchAllBookings()` | — | 14 | 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… |
| `fetch-event-type-details` | `cal.fetchEventTypeDetails()` | `--eventTypeId` `--orgId` `--teamId` | 0 | 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… |
| `fetch-organization-attribute-by-id` | `cal.fetchOrganizationAttributeById()` | `--attributeId` `--orgId` | 0 | Retrieves a specific attribute of an organization, useful for fetching a single data point instead of the entire organization record |
| `fetch-provider-access-token` | `cal.fetchProviderAccessToken()` | `--clientId` | 0 | 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 |
| `fetch-schedule-by-id` | `cal.fetchScheduleById()` | `--scheduleId` | 0 | Fetches comprehensive details for a specific, existing schedule using its `scheduleId` |
| `fetch-user-schedule-by-org-id` | `cal.fetchUserScheduleByOrgId()` | `--orgId` `--scheduleId` `--userId` | 0 | Retrieves a specific user's schedule within an organization, returning availability windows, timezone settings, and date-specific overrides |
| `fetch-webhook-by-event-type-id` | `cal.fetchWebhookByEventTypeId()` | `--eventTypeId` `--webhookId` | 0 | Retrieves details for a single, specific webhook using its `webhookId` and associated `eventTypeId` |
| `force-refresh-user-oauth-client` | `cal.forceRefreshUserOauthClient()` | `--clientId` `--userId` `--x-cal-secret-key` | 0 | Forces an immediate refresh of OAuth tokens for a Platform managed user |
| `get-all-timezones` | `cal.getAllTimezones()` | — | 0 | 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 |
| `get-available-slots-info` | `cal.getAvailableSlotsInfo()` | `--endTime` `--eventTypeId` `--startTime` | 7 | Retrieves available time slots for scheduling by considering existing bookings and availability, based on criteria like a specified time range and event type |
| `get-booking-reference-by-id` | `cal.getBookingReferenceById()` | `--id` | 0 | Find a specific booking reference by its ID |
| `get-booking-references` | `cal.getBookingReferences()` | `--bookingUid` `--orgId` `--teamId` | 1 | Retrieves external references for a specific booking within an organization's team |
| `get-conference-oauth-authorization-url` | `cal.getConferenceOauthAuthorizationUrl()` | `--app` `--onErrorReturnTo` `--returnTo` | 0 | Generates an OAuth 2.0 authorization URL for a supported conferencing `app` to initiate or refresh its integration with Cal.com |
| `get-default-schedule-details` | `cal.getDefaultScheduleDetails()` | — | 0 | Retrieves the Cal system's global default schedule configuration, not custom or user-specific ones |
| `get-destination-calendars` ·common | `cal.getDestinationCalendars()` | — | 0 | Retrieve all destination calendars configured for the authenticated user |
| `get-event-type-by-team-id` | `cal.getEventTypeByTeamId()` | `--eventTypeId` `--teamId` | 0 | Retrieves a specific event type by its ID, requiring that the event type is associated with the given team ID |
| `get-event-type-private-links` | `cal.getEventTypePrivateLinks()` | `--eventTypeId` | 0 | Retrieves all private booking links for a specific event type |
| `get-google-calendar-oauth-authentication-url` | `cal.getGoogleCalendarOauthAuthenticationUrl()` | — | 0 | Generates the initial Google Calendar OAuth 2.0 authorization URL for user redirection to begin the authentication and authorization process |
| `get-oauth-clients-user` | `cal.getOauthClientsUser()` | `--clientId` | 2 | Retrieves all managed users associated with a Platform OAuth client |
| `get-organization-attribute-assigned-options` | `cal.getOrganizationAttributeAssignedOptions()` | `--attributeId` `--orgId` | 4 | Retrieves all assigned attribute options for a specific attribute within an organization |
| `get-organization-attribute-assigned-options-by-slug` | `cal.getOrganizationAttributeAssignedOptionsBySlug()` | `--attributeSlug` `--orgId` | 4 | Retrieve all assigned attribute options for a specific attribute by its slug within an organization |
| `get-organization-id` ·common | `cal.getOrganizationId()` | — | 0 | Retrieves the organization ID associated with the currently authenticated user from the Cal.com /v2/me endpoint |
| `get-organization-schedules` | `cal.getOrganizationSchedules()` | `--orgId` | 2 | Retrieves availability schedules for an organization |
| `get-organization-team-workflows` | `cal.getOrganizationTeamWorkflows()` | `--orgId` `--teamId` | 2 | Retrieves workflows configured for a specific team within an organization |
| `get-organization-teams-event-types` | `cal.getOrganizationTeamsEventTypes()` | `--orgId` | 3 | Retrieves event types, including names, durations, and custom settings for team scheduling, for all teams within an existing organization specified by `orgId` |
| `get-organization-user-schedules` | `cal.getOrganizationUserSchedules()` | `--orgId` `--userId` | 0 | Retrieves all availability schedules configured for a specific user within an organization |
| `get-private-links` | `cal.getPrivateLinks()` | `--event-type-id` `--org-id` `--team-id` | 0 | Get all private links for a team event type |
| `get-schedule-for-user-in-team` | `cal.getScheduleForUserInTeam()` | `--orgId` `--teamId` `--userId` | 0 | Retrieves all availability schedules for a specific user within a team and organization |
| `get-selected-calendar-by-id` | `cal.getSelectedCalendarById()` | `--external-id` `--integration` `--user-id` | 0 | Retrieve a selected calendar by its compound ID (userId_integration_externalId) |
| `get-stripe-connect-info` | `cal.getStripeConnectInfo()` | — | 0 | 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… |
| `get-stripe-connect-url` | `cal.getStripeConnectUrl()` | `--onErrorReturnTo` `--orgId` `--returnTo` `--teamId` | 0 | Get Stripe Connect authorization URL for a team within an organization |
| `get-team-bookings` ·common | `cal.getTeamBookings()` | `--teamId` | 13 | 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 |
| `get-team-default-conferencing-app` | `cal.getTeamDefaultConferencingApp()` | `--orgId` `--teamId` | 0 | Retrieves the default conferencing application configured for a specific team within an organization |
| `get-team-details-by-org-id-and-team-id` | `cal.getTeamDetailsByOrgIdAndTeamId()` | `--orgId` `--teamId` | 0 | Retrieves comprehensive details for a specific team within an organization, including team metadata, configuration settings, branding options, and timezone/week preferences |
| `get-team-event-type-webhook` | `cal.getTeamEventTypeWebhook()` | `--eventTypeId` `--teamId` `--webhookId` | 0 | Retrieves details for a specific webhook configured on a team event type |
| `get-team-event-type-webhooks` | `cal.getTeamEventTypeWebhooks()` | `--eventTypeId` `--teamId` | 2 | Retrieves all webhooks configured for a specific team event type |
| `get-team-information-by-team-id` | `cal.getTeamInformationByTeamId()` | `--teamId` | 0 | Retrieves detailed information about a specific Cal.com team by its ID |
| `get-team-routing-forms` | `cal.getTeamRoutingForms()` | `--orgId` `--teamId` | 9 | Retrieves routing forms for a specific team within an organization |
| `get-team-schedules` | `cal.getTeamSchedules()` | `--orgId` `--teamId` | 3 | Retrieves availability schedules for all members of a specific team within an organization |
| `get-teams-list` ·common | `cal.getTeamsList()` | — | 0 | Retrieves all teams the user belongs to, including their names and members |
| `get-verified-phone-numbers` | `cal.getVerifiedPhoneNumbers()` | `--orgId` `--teamId` | 2 | Retrieves a paginated list of verified phone numbers for a specific organization team |
| `get-webhook-by-id` | `cal.getWebhookById()` | `--webhookId` | 0 | Retrieves details for an existing and accessible webhook by its ID; this is a read-only operation |
| `handle-conferencing-oauth-callback-for-app` | `cal.handleConferencingOauthCallbackForApp()` | `--app` `--code` `--state` | 0 | 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 |
| `list-attendees` ·common | `cal.listAttendees()` | — | 0 | Retrieve all attendees from Cal.com |
| `list-booking-references` | `cal.listBookingReferences()` | — | 2 | Fetches one page of booking references in Cal.com |
| `list-event-types` ·common | `cal.listEventTypes()` | — | 5 | Retrieves Cal event types, filterable by `username` (required if `eventSlug` is provided), multiple `usernames`, or organization details (`orgSlug` or `orgId`) |
| `list-organization-memberships` | `cal.listOrganizationMemberships()` | `--orgId` | 2 | Retrieves all memberships for a given organization, including user details, roles, status, and membership dates |
| `list-team-event-types-by-org-and-team-id` | `cal.listTeamEventTypesByOrgAndTeamId()` | `--orgId` `--teamId` | 1 | Retrieves all event types for a specific team within an organization, optionally filtering by a specific event slug |
| `mark-booking-absent-for-uid` | `cal.markBookingAbsentForUid()` | `--bookingUid` | 2 | Marks the host and/or specified attendees as absent for an existing booking, typically used after a scheduled event to record no-shows |
| `modify-org-attribute-by-id` | `cal.modifyOrgAttributeById()` | `--attributeId` `--orgId` | 4 | 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 |
| `modify-organization-membership-by-id` | `cal.modifyOrganizationMembershipById()` | `--membershipId` `--orgId` | 3 | 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… |
| `patch-organization-attribute-option` | `cal.patchOrganizationAttributeOption()` | `--attributeId` `--optionId` `--orgId` | 2 | 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 |
| `patch-organization-user-details` | `cal.patchOrganizationUserDetails()` | `--orgId` `--userId` | 14 | Partially updates details for a user that exists within the specified organization |
| `patch-team-details-by-id` | `cal.patchTeamDetailsById()` | `--teamId` | 20 | Updates specified details for an existing team identified by `teamId`; unspecified fields remain unchanged |
| `patch-webhook-event-type` | `cal.patchWebhookEventType()` | `--eventTypeId` `--webhookId` | 5 | Updates configuration (e.g., payload template, active status, URL, triggers, secret) for an existing webhook tied to a specific event type |
| `post-calendar-credentials` | `cal.postCalendarCredentials()` | `--calendar` `--password` `--username` | 0 | 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 |
| `post-conferencing-app-connect` | `cal.postConferencingAppConnect()` | `--app` | 0 | Connects or reconnects Cal.com with a specified conferencing application to enable future virtual meeting scheduling, but does not itself create or schedule meetings |
| `post-new-booking-request` | `cal.postNewBookingRequest()` | `--language` `--responses` `--start` `--timeZone` | 13 | Creates a new booking for an event type at a specified start time |
| `post-org-attribute-option-by-user` | `cal.postOrgAttributeOptionByUser()` | `--attributeId` `--orgId` `--userId` | 2 | 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… |
| `post-selected-calendars` | `cal.postSelectedCalendars()` | `--credentialId` `--externalId` `--integration` | 0 | 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… |
| `post-user-to-organization` | `cal.postUserToOrganization()` | `--email` `--orgId` | 14 | Adds a new user to an existing organization (identified by `orgId` in path), requiring user's `email` and allowing extensive optional profile customization |
| `post-webhook-event` | `cal.postWebhookEvent()` | `--active` `--subscriberUrl` `--triggers` | 2 | 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 |
| `reassign-booking-to-another-user` | `cal.reassignBookingToAnotherUser()` | `--bookingUid` `--userId` | 1 | Reassigns an existing booking to a specified user |
| `reassign-booking-with-uid` | `cal.reassignBookingWithUid()` | `--bookingUid` | 0 | Reassigns the specified booking to a new team member, who is determined by the system rather than being specified in the request |
| `refresh-oauth-token-for-client-id` | `cal.refreshOauthTokenForClientId()` | `--clientId` `--refreshToken` `--x-cal-secret-key` | 0 | Refreshes an OAuth access token for a specified `clientId` and managed user using their `refreshToken` |
| `request-email-verification-code` | `cal.requestEmailVerificationCode()` | `--email` `--teamId` | 0 | Request an email verification code for a team's verified resources |
| `reschedule-booking-by-uid` | `cal.rescheduleBookingByUid()` | `--bookingUid` `--start` | 3 | Reschedules an existing booking (identified by `bookingUid`) to a new time |
| `reserve-slot-for-event` ·common | `cal.reserveSlotForEvent()` | `--eventTypeId` `--slotUtcEndDate` `--slotUtcStartDate` | 1 | 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 |
| `retrieve-attribute-options-for-org` | `cal.retrieveAttributeOptionsForOrg()` | `--attributeId` `--orgId` | 0 | Retrieves all available options for a specific attribute within an organization |
| `retrieve-booking-details-by-uid` | `cal.retrieveBookingDetailsByUid()` | `--bookingUid` | 0 | Fetches comprehensive details for an existing booking, identified by its `bookingUid` |
| `retrieve-calendar-busy-times` ·common | `cal.retrieveCalendarBusyTimes()` | `--credentialId` `--externalId` `--loggedInUsersTz` | 2 | 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… |
| `retrieve-calendar-list` ·common | `cal.retrieveCalendarList()` | — | 0 | Retrieves a list of all calendar summaries (no event details) associated with the authenticated user's account |
| `retrieve-current-team-for-organization` | `cal.retrieveCurrentTeamForOrganization()` | `--orgId` | 2 | Retrieves details of the team(s) for the currently authenticated user within the specified organization `orgId` |
| `retrieve-default-conferencing-settings` | `cal.retrieveDefaultConferencingSettings()` | — | 0 | 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 |
| `retrieve-event-type-by-id` | `cal.retrieveEventTypeById()` | `--eventTypeId` | 0 | 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 |
| `retrieve-membership-from-organization` | `cal.retrieveMembershipFromOrganization()` | `--membershipId` `--orgId` | 0 | Retrieves detailed information about a specific membership within a particular organization |
| `retrieve-my-information` ·common | `cal.retrieveMyInformation()` | — | 0 | Retrieves the authenticated user's core profile information (e.g., name, email, timezone); does not retrieve related data like calendar events or schedules |
| `retrieve-oauth-client-user-by-id` | `cal.retrieveOauthClientUserById()` | `--clientId` `--userId` `--x-cal-secret-key` | 0 | Retrieves detailed profile information for a specific managed user associated with an OAuth client |
| `retrieve-oauth-client-webhook-by-id` | `cal.retrieveOauthClientWebhookById()` | `--clientId` `--webhookId` `--x-cal-secret-key` | 0 | Retrieves detailed configuration for a specific webhook by ID from a Platform OAuth client |
| `retrieve-organization-attributes` | `cal.retrieveOrganizationAttributes()` | `--orgId` | 2 | Retrieves detailed attributes (e.g., configurations, settings, metadata) for an organization, identified by its `orgId`, which must correspond to an existing organization |
| `retrieve-organization-attributes-options` | `cal.retrieveOrganizationAttributesOptions()` | `--orgId` `--userId` | 0 | Retrieves all attribute options assigned to a specific user within an organization |
| `retrieve-organization-webhook-by-id` | `cal.retrieveOrganizationWebhookById()` | `--orgId` `--webhookId` | 0 | Retrieves detailed information, including configuration and status, for a specific webhook by its ID (`webhookId`) within a given organization (`orgId`) |
| `retrieve-organization-webhooks-by-org-id` | `cal.retrieveOrganizationWebhooksByOrgId()` | `--orgId` | 2 | 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.) |
| `retrieve-provider-details` | `cal.retrieveProviderDetails()` | `--clientId` `--x-cal-secret-key` | 0 | Verifies and retrieves details for an OAuth client (provider) in Cal.com's Platform API |
| `retrieve-schedules-list` | `cal.retrieveSchedulesList()` | — | 0 | Retrieve all availability schedules for the authenticated Cal.com user |
| `retrieve-team-details-in-organization` | `cal.retrieveTeamDetailsInOrganization()` | `--orgId` | 2 | Retrieves a paginated list of teams and their details for a specific organization ID; individual team member details or schedules are not included |
| `retrieve-team-event-types` | `cal.retrieveTeamEventTypes()` | `--teamId` | 2 | Retrieves event types for a team within the Cal scheduling system; this action does not provide details on scheduled instances or member availability |
| `retrieve-team-membership-by-id` | `cal.retrieveTeamMembershipById()` | `--membershipId` `--orgId` `--teamId` | 0 | Retrieves detailed information for a specific team membership by its ID within an organization's team |
| `retrieve-team-membership-details` | `cal.retrieveTeamMembershipDetails()` | `--membershipId` `--teamId` | 0 | 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 |
| `retrieve-team-memberships` ·common | `cal.retrieveTeamMemberships()` | `--teamId` | 2 | Retrieves all memberships for a team, including member details, roles (MEMBER/OWNER/ADMIN), and invitation acceptance status |
| `retrieve-team-memberships-for-organization` | `cal.retrieveTeamMembershipsForOrganization()` | `--orgId` `--teamId` | 2 | 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… |
| `retrieve-users-in-organization` ·common | `cal.retrieveUsersInOrganization()` | `--orgId` | 3 | 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 |
| `retrieve-v2-conferencing-info` | `cal.retrieveV2ConferencingInfo()` | — | 0 | 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… |
| `retrieve-webhook-details-for-oauth-client` | `cal.retrieveWebhookDetailsForOauthClient()` | `--clientId` | 3 | Retrieves all webhook configurations for a specific OAuth client with optional pagination |
| `retrieve-webhooks-for-event-type` | `cal.retrieveWebhooksForEventType()` | `--eventTypeId` | 2 | 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 |
| `retrieve-webhooks-list` | `cal.retrieveWebhooksList()` | — | 2 | 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 |
| `save-calendar-entry` | `cal.saveCalendarEntry()` | `--calendar` `--code` `--state` | 0 | Saves or updates a calendar's settings using a GET request, typically for data already on the server or simple updates via query parameters |
| `save-calendar-ics-feeds` | `cal.saveCalendarIcsFeeds()` | `--urls` | 1 | Imports and saves one or more publicly accessible external iCalendar (ICS) feed URLs into the Cal.com calendar system |
| `save-oauth-credentials-via-gapi` | `cal.saveOauthCredentialsViaGapi()` | `--code` `--state` | 0 | 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 |
| `save-stripe-details` | `cal.saveStripeDetails()` | `--code` `--state` | 0 | 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` |
| `set-default-conferencing-app` | `cal.setDefaultConferencingApp()` | `--app` | 0 | Sets the specified, valid, and configured conferencing application as the default for new meetings for the authenticated user |
| `update-destination-calendar-integration` | `cal.updateDestinationCalendarIntegration()` | `--externalId` `--integration` | 0 | Updates the destination calendar for syncing events, using `integration` and `externalId` (typically from `/calendars` endpoint) |
| `update-oauth-client-user-settings` | `cal.updateOauthClientUserSettings()` | `--clientId` `--userId` | 11 | 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 |
| `update-oauth-client-webhook` | `cal.updateOauthClientWebhook()` | `--clientId` `--webhookId` | 6 | Updates specified properties of an existing webhook for an OAuth client; omitted fields remain unchanged |
| `update-private-link` | `cal.updatePrivateLink()` | `--eventTypeId` `--linkId` `--orgId` `--teamId` | 2 | Updates a private link for a team event type within an organization |
| `update-schedule-by-id` | `cal.updateScheduleById()` | `--scheduleId` | 5 | Updates an existing schedule by its ID, allowing partial modification of properties; providing `availability` or `overrides` replaces them entirely |
| `update-team-event-type` ·common | `cal.updateTeamEventType()` | `--eventTypeId` `--teamId` | 50 | Update a team event type in Cal.com |
| `update-team-event-type-webhook` | `cal.updateTeamEventTypeWebhook()` | `--eventTypeId` `--teamId` `--webhookId` | 6 | Updates a webhook for a team event type |
| `update-team-information-by-id` | `cal.updateTeamInformationById()` | `--orgId` `--teamId` | 20 | Updates an existing team's information by its ID within a specified organization; the `slug`, if provided, must be unique within the organization |
| `update-team-membership-by-id` | `cal.updateTeamMembershipById()` | `--membershipId` `--teamId` | 3 | Updates properties of an existing team membership |
| `update-team-membership-properties` | `cal.updateTeamMembershipProperties()` | `--membershipId` `--orgId` `--teamId` | 3 | Updates attributes like acceptance status, role, or impersonation settings for an existing team membership within an organization |
| `update-user-profile-details` | `cal.updateUserProfileDetails()` | — | 8 | Updates the profile information and preferences for the authenticated user, affecting only the fields provided in the request |
| `update-user-schedule-in-organization` | `cal.updateUserScheduleInOrganization()` | `--orgId` `--scheduleId` `--userId` | 5 | 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 |
| `update-webhook-by-id` | `cal.updateWebhookById()` | `--webhookId` | 5 | Updates an existing Cal.com webhook by its `webhookId`, allowing partial modification of its attributes; only explicitly provided fields will be changed |
| `update-webhook-for-organization` | `cal.updateWebhookForOrganization()` | `--orgId` `--webhookId` | 5 | Updates an existing webhook for an organization |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
