# Docs - Developers: API, embeds, and webhooks - [SavvyCal Appointments Developer Docs](/): Developer documentation for the SavvyCal Appointments API, embeds, and components. - [Authentication](/authentication) - [Rate Limiting](/rate-limiting) - [Idempotency](/idempotency) - Concepts - [Platforms](/platforms) - [Data Model](/data-model) - [Users and Accounts](/users-and-accounts) - [Connected Accounts](/connected-accounts) - [Booking Intents](/booking-intents) - [Slot Availability](/slot-availability) - [Working with Dates](/dates) - [Metadata Filtering](/metadata-filtering) - Embedding - [Booking Embed](/embedding/booking-embed) - Components - [Components](/components) - [Public Booking Form](/components/public-booking-form): A basic public booking form component. - [Webhooks](/webhooks) - [API Changelog](/changelog) - API Reference - [API Reference](/api): Browse REST endpoints by resource. - Account users - [Create account user](/api/account-users/createAccountUser): Create a new user in the specified account. - [Get current account user](/api/account-users/getCurrentAccountUser): Get information about the current user in the context of the current account. - [List account users](/api/account-users/listAccountUsers): List all users that belong to the specified account. - [Update account user](/api/account-users/updateAccountUser): Update a user's settings in the specified account. - Accounts - [Create account](/api/accounts/createAccount): Create a new account (requires a platform token). - [Get account by ID](/api/accounts/getAccountById): Get the account by ID. - [Get current account](/api/accounts/getCurrentAccount): Get the account that owns the current token. - [List accounts](/api/accounts/listAccounts): List all accounts associated with the current platform (requires a platform token). - [Update account](/api/accounts/updateAccount): Update an existing account. - Appointments - [Cancel appointment](/api/appointments/cancelAppointment): Cancel an existing appointment. - [Confirm appointment](/api/appointments/confirmAppointment): Confirm an existing appointment. - [Create appointment](/api/appointments/createAppointment): Create a new appointment. - [Get appointment](/api/appointments/getAppointment): Get an existing appointment. - [List appointments](/api/appointments/listAppointments): List all appointments that belong to the account. - [Reschedule appointment](/api/appointments/rescheduleAppointment): Reschedule an existing appointment. - Blocks - [Create block](/api/blocks/createBlock): Create a new block. - [Delete block](/api/blocks/deleteBlock): Delete an existing block. - [Get block](/api/blocks/getBlock): Get a block by ID. - [List blocks](/api/blocks/listBlocks): List all blocks account-wide or attached to a specific resource type. - [Update block](/api/blocks/updateBlock): Update an existing block. - Booking intents - [Abandon booking intent](/api/booking-intents/abandonBookingIntent): Transition a non-terminal booking intent to `abandoned`. - [Complete booking intent](/api/booking-intents/completeBookingIntent): Complete a booking intent by creating an appointment from the accumulated intent data. - [Create booking intent](/api/booking-intents/createBookingIntent): Create a new booking intent. - [Get booking intent](/api/booking-intents/getBookingIntent): Get an existing booking intent. - [List booking intents](/api/booking-intents/listBookingIntents): List all booking intents that belong to the account. - [Update booking intent](/api/booking-intents/updateBookingIntent): Update an existing booking intent. - Booking links - [Create a booking link](/api/booking-links/createBookingLink): Create a booking link for a service. - [Delete a booking link](/api/booking-links/deleteBookingLink): Delete a booking link by ID. - [Get a booking link](/api/booking-links/getBookingLink): Retrieve a single booking link by ID. - [List booking links](/api/booking-links/listBookingLinks): List all booking links for an account. - [Update a booking link](/api/booking-links/updateBookingLink): Update a booking link by ID. - Cancellation reasons - [Create cancellation reason](/api/cancellation-reasons/createCancellationReason): Create a new cancellation reason in the account. - [Delete cancellation reason](/api/cancellation-reasons/deleteCancellationReason): Delete an existing cancellation reason. - [Get cancellation reason](/api/cancellation-reasons/getCancellationReason): Get a single cancellation reason by ID. - [List cancellation reasons](/api/cancellation-reasons/listCancellationReasons): List all cancellation reasons for an account - [Update cancellation reason](/api/cancellation-reasons/updateCancellationReason): Update an existing cancellation reason. - Client fields - [Create client field](/api/client-fields/createClientField): Create a new client field in the account. - [Delete client field](/api/client-fields/deleteClientField): Delete an existing client field. - [Get client field](/api/client-fields/getClientField): Get a single client field by ID. - [List client fields](/api/client-fields/listClientFields): List all client fields for an account - [Update client field](/api/client-fields/updateClientField): Update an existing client field. - Clients - [Create client](/api/clients/createClient): Create a new client in the account. - [Delete client](/api/clients/deleteClient): Deletes an existing client. - [Get client](/api/clients/getClient): Get a single client by ID. - [List clients](/api/clients/listClients): List all clients that belong to the account. - [Update client](/api/clients/updateClient): Update an existing client. - Connected accounts - [Delete connected account](/api/connected-accounts/deleteConnectedAccount): Deletes (disconnects) an existing connected account. - [Delete user mapping](/api/connected-accounts/deleteUserMapping): Remove the default user mapping between a provider and an external user on a connected account. - [Get connected account](/api/connected-accounts/getConnectedAccount): Get a single connected account by ID. - [Get user mapping](/api/connected-accounts/getUserMapping): Get the default user mapping between a provider and an external user on a connected account. - [List external users](/api/connected-accounts/listConnectedAccountExternalUsers): List the external users synced from a connected account (e.g., the users on a connected Zoom account). - [List connected accounts](/api/connected-accounts/listConnectedAccounts): List all connected accounts accessible to the current actor. - [List user mappings](/api/connected-accounts/listUserMappings): List the default user mappings between providers and external users for a connected account. - [Set user mapping](/api/connected-accounts/setUserMapping): Set the default user mapping between a provider and an external user on a connected account. - [Sync external users](/api/connected-accounts/syncConnectedAccountExternalUsers): Refresh the external users for a connected account by syncing them from the provider (e.g., pulling the current list of users from a connected Zoom account). - [Update connected account](/api/connected-accounts/updateConnectedAccount): Update an existing connected account. - Dashboard sessions - [Create dashboard session](/api/dashboard-sessions/createDashboardSession): The Dashboard Sessions API allows you to generate a short-lived session link that grants an account member access to the dashboard without requiring login credentials. - Forms - [Create form](/api/forms/createForm): Create a new form in the account. - [Delete form](/api/forms/deleteForm): Delete an existing form. - [Get form](/api/forms/getForm): Get a single form by ID. - [List forms](/api/forms/listForms): List all forms for an account. - [Update form](/api/forms/updateForm): Update an existing form. - Openings - [Create opening](/api/openings/createOpening): Create a new opening. - [Delete opening](/api/openings/deleteOpening): Delete an existing opening. - [Get opening](/api/openings/getOpening): Get an opening by ID. - [List openings](/api/openings/listOpenings): List all openings account-wide or for a specific provider. - [Update opening](/api/openings/updateOpening): Update an existing opening. - Platforms - [Get current platform](/api/platforms/getCurrentPlatform): Get the platform that owns the current token (requires a platform token). - Provider schedules - [Create provider schedule](/api/provider-schedules/createProviderSchedule): Create a new provider schedule. - [Delete provider schedule](/api/provider-schedules/deleteProviderSchedule): Delete an existing provider schedule. - [Get provider schedule](/api/provider-schedules/getProviderSchedule): Get a provider schedule by ID. - [List provider schedules](/api/provider-schedules/listProviderSchedules): List all provider schedules account-wide or for a specific provider. - [Update provider schedule](/api/provider-schedules/updateProviderSchedule): Update an existing provider schedule. - Providers - [Create provider](/api/providers/createProvider): Create a new provider in the account. - [Deactivate provider](/api/providers/deactivateProvider): Deactivates an existing provider. - [Get provider](/api/providers/getProvider): Get a single provider by ID. - [List providers](/api/providers/listProviders): List all providers that belong to the account. - [Update provider](/api/providers/updateProvider): Update an existing provider. - Public booking - [Abandon booking intent](/api/public-booking/abandonPublicBookingIntent): Transition a non-terminal booking intent to `abandoned` via a public interface (no authentication required). - [Cancel appointment](/api/public-booking/cancelPublicAppointment): Cancel an existing appointment via a public interface (no authentication required). - [Complete booking intent](/api/public-booking/completePublicBookingIntent): Complete a booking intent by creating an appointment from the accumulated intent data via a public interface (no authentication required). - [Create appointment](/api/public-booking/createPublicAppointment): Create a new appointment via a public interface (no authentication required). - [Create booking intent](/api/public-booking/createPublicBookingIntent): Create a new booking intent via a public interface (no authentication required). - [Get earliest available slot](/api/public-booking/getEarliestPublicServiceSlot): Get the earliest available time slot for a service, useful for displaying next available appointment. - [Get appointment](/api/public-booking/getPublicAppointment): Get an existing appointment via a public interface (no authentication required). - [Get booking intent](/api/public-booking/getPublicBookingIntent): Get an existing booking intent via a public interface (no authentication required). - [List available slots for a booking intent](/api/public-booking/listPublicBookingIntentSlots): Returns time slots available for this booking intent's configuration via a public interface (no authentication required). - [List cancellation reasons](/api/public-booking/listPublicCancellationReasons): List all active cancellation reasons that can be used when canceling the specified appointment. - [List available time slots](/api/public-booking/listPublicServiceSlots): List all available time slots for a service in a specific time range, for use on public booking interfaces. - [Reschedule appointment](/api/public-booking/reschedulePublicAppointment): Reschedule an existing appointment via a public interface (no authentication required). - [Update booking intent](/api/public-booking/updatePublicBookingIntent): Update an existing booking intent via a public interface (no authentication required). - Roles - [Get role](/api/roles/getRole): Retrieve a role by ID. - [List roles](/api/roles/listRoles): List all roles that belong to the specified account. - [Update role](/api/roles/updateRole): Update a role. - Schedule groups - [Create schedule group](/api/schedule-groups/createScheduleGroup): Create a new schedule group in the account. - [Delete schedule group](/api/schedule-groups/deleteScheduleGroup): Delete an existing schedule group. - [Get schedule group](/api/schedule-groups/getScheduleGroup): Get a single schedule group by ID. - [List schedule groups](/api/schedule-groups/listScheduleGroups): List all schedule groups for an account. - [Update schedule group](/api/schedule-groups/updateScheduleGroup): Rename an existing schedule group. - Services - [Attach form to service](/api/services/attachServiceForm): Attach an existing form to a service. - [Clear service conferencing](/api/services/clearServiceConferencing): Clear a service's default conferencing and remove conferencing from all of its providers. - [Clear service provider conferencing](/api/services/clearServiceProviderConferencing): Remove the conferencing configuration for a service provider. - [Create service](/api/services/createService): Create a new service in the account. - [Add provider to service](/api/services/createServiceProvider): Add a provider to the rotation for a specific service. - [Delete service](/api/services/deleteService): Delete an existing service. - [Remove service provider](/api/services/deleteServiceProvider): Remove a provider from the rotation for a service. - [Detach form from service](/api/services/detachServiceForm): Detach a form from a service. - [Get service](/api/services/getService): Get a single service by ID. - [Get service provider conferencing](/api/services/getServiceProviderConferencing): Get the conferencing configuration for a service provider. - [List service forms](/api/services/listServiceForms): List all forms attached to a service. - [List service providers](/api/services/listServiceProviders): List all providers associated with a service. - [List services](/api/services/listServices): List all services for an account - [Set service conferencing](/api/services/setServiceConferencing): Set a service's default conferencing and configure every provider on the service from their default user mappings on the connected account. - [Set service provider conferencing](/api/services/setServiceProviderConferencing): Set the conferencing configuration for a service provider. - [Sort service forms](/api/services/sortServiceForms): Reorder forms attached to a service. - [Sync service conferencing](/api/services/syncServiceConferencing): Re-apply the service's default conferencing to all of its providers, in alignment with the current default user mappings on the connected account. - [Update service](/api/services/updateService): Update an existing service. - Time slots - [List available slots for a booking intent](/api/time-slots/listBookingIntentSlots): Returns time slots available for this booking intent's configuration. - [List available time slots](/api/time-slots/listServiceSlots): List all available time slots for a service in a specific time range. - Schemas - [Account](/api/schemas/account): This is an object representing an account in the app. - [AccountEvent](/api/schemas/accountevent): This is an object representing an account event in the app. - [AccountResponse](/api/schemas/accountresponse): Response schema for a single account - [AccountsResponse](/api/schemas/accountsresponse): Response schema for a list of accounts - [AccountUser](/api/schemas/accountuser): This is an object representing a user in an account. - [AccountUserCreatedEventData](/api/schemas/accountusercreatedeventdata): This is an object representing data for the account user created event. - [AccountUserDeletedEventData](/api/schemas/accountuserdeletedeventdata): This is an object representing data for the account user deleted event. - [AccountUserResponse](/api/schemas/accountuserresponse): Response schema for a single account user - [AccountUsersResponse](/api/schemas/accountusersresponse): Response schema for multiple account users - [AccountUserUpdatedEventData](/api/schemas/accountuserupdatedeventdata): This is an object representing data for the account user updated event. - [AdvanceNoticePolicy](/api/schemas/advancenoticepolicy): A policy for requiring minimum advance notice. - [AggregatedSlot](/api/schemas/aggregatedslot): An aggregated time slot with start, end times and count - [Appointment](/api/schemas/appointment): An appointment represents a booking that a client has made with a provider for a service. - [AppointmentCanceledEventData](/api/schemas/appointmentcanceledeventdata): This is an object representing data for the appointment canceled event. - [AppointmentClientDataInput](/api/schemas/appointmentclientdatainput): Information about the client booking the appointment. - [AppointmentConfirmedEventData](/api/schemas/appointmentconfirmedeventdata): This is an object representing data for the appointment confirmed event. - [AppointmentCreatedEventData](/api/schemas/appointmentcreatedeventdata): This is an object representing data for the appointment created event. - [AppointmentDeletedEventData](/api/schemas/appointmentdeletedeventdata): This is an object representing data for the appointment deleted event. - [AppointmentMeeting](/api/schemas/appointmentmeeting): An appointment meeting represents the conferencing details for an appointment. - [AppointmentMeetingCanceledEventData](/api/schemas/appointmentmeetingcanceledeventdata): Emitted asynchronously after a meeting was successfully canceled with the conferencing provider, following an appointment cancellation. - [AppointmentMeetingCancelFailedEventData](/api/schemas/appointmentmeetingcancelfailedeventdata): Emitted when meeting cancellation with the conferencing provider terminally fails. - [AppointmentMeetingCreatedEventData](/api/schemas/appointmentmeetingcreatedeventdata): Emitted asynchronously after a meeting was successfully created with the conferencing provider. - [AppointmentMeetingCreateFailedEventData](/api/schemas/appointmentmeetingcreatefailedeventdata): Emitted when *initial* meeting creation with the conferencing provider terminally fails. - [AppointmentMeetingReplacedEventData](/api/schemas/appointmentmeetingreplacedeventdata): Emitted when the meeting attached to an appointment is replaced by a brand-new meeting at the conferencing provider — typically because a reschedule changed the primary provider and the new provider's conferencing maps to a different connected user/account. - [AppointmentMeetingReplaceFailedEventData](/api/schemas/appointmentmeetingreplacefailedeventdata): Emitted when the *replacement* meeting created during a meeting replace (typically following a reschedule that changed the primary provider) terminally fails at the conferencing provider. - [AppointmentMeetingUpdatedEventData](/api/schemas/appointmentmeetingupdatedeventdata): Emitted asynchronously after a meeting was successfully updated with the conferencing provider, typically following an appointment reschedule. - [AppointmentMeetingUpdateFailedEventData](/api/schemas/appointmentmeetingupdatefailedeventdata): Emitted when an update to an existing meeting with the conferencing provider terminally fails — including when the provider reports the meeting was deleted out-of-band. - [AppointmentProvider](/api/schemas/appointmentprovider): A provider associated with an appointment, along with their role. - [AppointmentRescheduledEventData](/api/schemas/appointmentrescheduledeventdata): This is an object representing data for the appointment rescheduled event. - [AppointmentResponse](/api/schemas/appointmentresponse): Response schema for a single appointment - [AppointmentsResponse](/api/schemas/appointmentsresponse): Response schema for multiple appointments - [AttachServiceFormRequest](/api/schemas/attachserviceformrequest): Request schema for attaching a form to a service. - [Block](/api/schemas/block): This is an object representing a range of blocked time for a provider, service, service provider, or location. - [BlockCreatedEventData](/api/schemas/blockcreatedeventdata): This is an object representing data for the block created event. - [BlockDeletedEventData](/api/schemas/blockdeletedeventdata): This is an object representing data for the block deleted event. - [BlockResponse](/api/schemas/blockresponse): Response schema for a block - [BlocksResponse](/api/schemas/blocksresponse): Response schema for a list of blocks - [BlockUpdatedEventData](/api/schemas/blockupdatedeventdata): This is an object representing data for the block updated event. - [BookingIntent](/api/schemas/bookingintent): A booking intent that tracks the lifecycle of a booking attempt. - [BookingIntentAbandonedEventData](/api/schemas/bookingintentabandonedeventdata): This is an object representing data for the booking intent abandoned event. - [BookingIntentBookingPolicy](/api/schemas/bookingintentbookingpolicy): Policy overrides applied to this booking intent. - [BookingIntentCompletedEventData](/api/schemas/bookingintentcompletedeventdata): This is an object representing data for the booking intent completed event. - [BookingIntentCreatedEventData](/api/schemas/bookingintentcreatedeventdata): This is an object representing data for the booking intent created event. - [BookingIntentRequirements](/api/schemas/bookingintentrequirements): Per-section completeness status for a booking intent. - [BookingIntentResponse](/api/schemas/bookingintentresponse): Response schema for a single booking intent - [BookingIntentsResponse](/api/schemas/bookingintentsresponse): Response schema for multiple booking intents - [BookingIntentUpdatedEventData](/api/schemas/bookingintentupdatedeventdata): This is an object representing data for the booking intent updated event. - [BookingIntentWorkflow](/api/schemas/bookingintentworkflow): Server-computed workflow state for a booking intent. - [BookingLink](/api/schemas/bookinglink): A reusable, shareable configuration for booking a service. - [BookingLinkActivatedEventData](/api/schemas/bookinglinkactivatedeventdata): This is an object representing data for the booking link activated event. - [BookingLinkCreatedEventData](/api/schemas/bookinglinkcreatedeventdata): This is an object representing data for the booking link created event. - [BookingLinkDeactivatedEventData](/api/schemas/bookinglinkdeactivatedeventdata): This is an object representing data for the booking link deactivated event. - [BookingLinkDeletedEventData](/api/schemas/bookinglinkdeletedeventdata): This is an object representing data for the booking link deleted event. - [BookingLinkResponse](/api/schemas/bookinglinkresponse): Response schema for a single booking link - [BookingLinksResponse](/api/schemas/bookinglinksresponse): Response schema for a list of booking links - [BookingLinkUpdatedEventData](/api/schemas/bookinglinkupdatedeventdata): This is an object representing data for the booking link updated event. - [BookingPolicy](/api/schemas/bookingpolicy): A booking policy defines the rules for booking a service from public booking interfaces. - [BufferPolicy](/api/schemas/bufferpolicy): A policy for keeping time before and/or after appointments free of other bookings and busy external calendar events (e.g. - [ByEmail](/api/schemas/byemail) - [ByExternalUserId](/api/schemas/byexternaluserid) - [CancelAppointmentRequest](/api/schemas/cancelappointmentrequest): Request schema for canceling an appointment - [CancellationEvent](/api/schemas/cancellationevent): This is an object representing when an appointment was canceled. - [CancellationPolicy](/api/schemas/cancellationpolicy): A cancellation policy defines the rules for canceling a service from public booking interfaces. - [CancellationReason](/api/schemas/cancellationreason): This is an object representing a cancellation reason. - [CancellationReasonResponse](/api/schemas/cancellationreasonresponse): Response schema for a single cancellation reason - [CancellationReasonsResponse](/api/schemas/cancellationreasonsresponse): Response schema for multiple cancellation reasons - [CancelPublicAppointmentRequest](/api/schemas/cancelpublicappointmentrequest): Request schema for canceling a public appointment - [Client](/api/schemas/client): This is an object representing a client. - [ClientCreatedEventData](/api/schemas/clientcreatedeventdata): This is an object representing data for the client created event. - [ClientDataInput](/api/schemas/clientdatainput): Progressive client data for a booking intent. - [ClientDeletedEventData](/api/schemas/clientdeletedeventdata): This is an object representing data for the client deleted event. - [ClientField](/api/schemas/clientfield): This is an object representing a client field. - [ClientFieldChoice](/api/schemas/clientfieldchoice): A single choice option within a client field. - [ClientFieldOptions](/api/schemas/clientfieldoptions): Options for choice-type client fields. - [ClientFieldResponse](/api/schemas/clientfieldresponse): Response schema for a single client field - [ClientFieldsResponse](/api/schemas/clientfieldsresponse): Response schema for multiple client fields - [ClientResponse](/api/schemas/clientresponse): Response schema for a single client - [ClientsResponse](/api/schemas/clientsresponse): Response schema for multiple clients - [ClientUpdatedEventData](/api/schemas/clientupdatedeventdata): This is an object representing data for the client updated event. - [CompleteBookingIntentRequest](/api/schemas/completebookingintentrequest): Request schema for completing a booking intent. - [CompletePublicBookingIntentRequest](/api/schemas/completepublicbookingintentrequest): Request schema for completing a booking intent via a public interface. - [ConfirmAppointmentRequest](/api/schemas/confirmappointmentrequest): Request schema for confirming an appointment - [ConfirmationEvent](/api/schemas/confirmationevent): This is an object representing when an appointment was confirmed. - [ConflictResponse](/api/schemas/conflictresponse): Response schema for conflict requests - [ConnectedAccount](/api/schemas/connectedaccount): This is an object representing a connected external account (e.g., a Google Calendar or Microsoft 365 integration). - [ConnectedAccountCreatedEventData](/api/schemas/connectedaccountcreatedeventdata): This is an object representing data for the connected account created event. - [ConnectedAccountDeletedEventData](/api/schemas/connectedaccountdeletedeventdata): This is an object representing data for the connected account deleted event. - [ConnectedAccountReconnectedEventData](/api/schemas/connectedaccountreconnectedeventdata): This is an object representing data for the connected account reconnected event. - [ConnectedAccountRefreshFailedEventData](/api/schemas/connectedaccountrefreshfailedeventdata): This is an object representing data for the connected account refresh failed event. - [ConnectedAccountResponse](/api/schemas/connectedaccountresponse): Response schema for a single connected account - [ConnectedAccountsResponse](/api/schemas/connectedaccountsresponse): Response schema for multiple connected accounts - [CreateAccountRequest](/api/schemas/createaccountrequest): Request schema for creating an account - [CreateAccountUserRequest](/api/schemas/createaccountuserrequest): Request schema for creating a user in an account - [CreateAppointmentRequest](/api/schemas/createappointmentrequest): Request schema for creating an appointment - [CreateBlockRequest](/api/schemas/createblockrequest): Request schema for creating a block. - [CreateBookingIntentRequest](/api/schemas/createbookingintentrequest): Request schema for creating a booking intent - [CreateBookingLinkRequest](/api/schemas/createbookinglinkrequest): Request schema for creating a booking link - [CreateCancellationReasonRequest](/api/schemas/createcancellationreasonrequest): Request schema for creating a cancellation reason - [CreateClientFieldRequest](/api/schemas/createclientfieldrequest): Request schema for creating a client field - [CreateClientRequest](/api/schemas/createclientrequest): Request schema for creating a client - [CreateDashboardSessionRequest](/api/schemas/createdashboardsessionrequest): Request schema for creating a dashboard session - [CreateFormRequest](/api/schemas/createformrequest): Request schema for creating a form. - [CreateOpeningRequest](/api/schemas/createopeningrequest): Request schema for creating an opening. - [CreateProviderRequest](/api/schemas/createproviderrequest): Request schema for creating a provider - [CreateProviderScheduleRequest](/api/schemas/createproviderschedulerequest): Request schema for creating a provider schedule. - [CreatePublicAppointmentRequest](/api/schemas/createpublicappointmentrequest): Request schema for creating an appointment via a public interface. - [CreatePublicBookingIntentRequest](/api/schemas/createpublicbookingintentrequest): Request schema for creating a booking intent via a public interface. - [CreateScheduleGroupRequest](/api/schemas/createschedulegrouprequest): Request schema for creating a schedule group - [CreateServiceProviderRequest](/api/schemas/createserviceproviderrequest): Request schema for creating a service provider - [CreateServiceRequest](/api/schemas/createservicerequest): Request schema for creating a service. - [DashboardSession](/api/schemas/dashboardsession): This is an object representing a dashboard session in the app. - [DashboardSessionResponse](/api/schemas/dashboardsessionresponse): Response schema for a dashboard session - [EmptyResponse](/api/schemas/emptyresponse): Empty response with no content - [ExternalUser](/api/schemas/externaluser): This is an object representing a user synced from a connected external account (e.g., a Zoom user). - [ExternalUsersResponse](/api/schemas/externalusersresponse): Response schema for multiple external users - [FieldChoice](/api/schemas/fieldchoice): A choice option for a select, radio, or checkbox field. - [FieldChoiceInput](/api/schemas/fieldchoiceinput): A choice option for a select, radio, or checkbox field. - [FieldOptions](/api/schemas/fieldoptions): Options for choice-type fields (select, radio, checkbox). - [FieldOptionsInput](/api/schemas/fieldoptionsinput): Options for choice-type fields (select, radio, checkbox). - [ForbiddenResponse](/api/schemas/forbiddenresponse): Response schema for forbidden requests - [Form](/api/schemas/form): A form represents an intake form with typed fields. - [FormDetail](/api/schemas/formdetail): A form with full field details. - [FormField](/api/schemas/formfield): A field within a form. - [FormFieldInput](/api/schemas/formfieldinput): A field within a form. - [FormResponse](/api/schemas/formresponse): Response schema for a single form - [FormsResponse](/api/schemas/formsresponse): Response schema for a list of forms - [GenericErrorResponse](/api/schemas/genericerrorresponse): Response schema for generic error messages - [HoldPolicy](/api/schemas/holdpolicy): A policy for temporarily reserving a slot during the multi-step booking flow. - [InitialProviderSchedule](/api/schemas/initialproviderschedule): The provider's initial schedule, created atomically with the provider when a brand-new provider row is created (ignored on reactivation or affiliation of an existing provider). - [IntentSubmissionInput](/api/schemas/intentsubmissioninput): A form submission entry containing a form ID and response data. - [JsonError](/api/schemas/jsonerror): A single validation error in JSON:API format. - [JsonErrorResponse](/api/schemas/jsonerrorresponse): Response schema for validation errors - [MaximizeUtilizationPolicy](/api/schemas/maximizeutilizationpolicy): Avoid presenting overlapping time slots for service providers to eliminate gaps in the schedule. - [NotFoundResponse](/api/schemas/notfoundresponse): Response schema for not found requests - [Opening](/api/schemas/opening): An opening is a one-off range of available time for a provider, sitting alongside their recurring schedules. - [OpeningCreatedEventData](/api/schemas/openingcreatedeventdata): This is an object representing data for the opening created event. - [OpeningDeletedEventData](/api/schemas/openingdeletedeventdata): This is an object representing data for the opening deleted event. - [OpeningResponse](/api/schemas/openingresponse): Response schema for a single opening - [OpeningsResponse](/api/schemas/openingsresponse): Response schema for a list of openings - [OpeningUpdatedEventData](/api/schemas/openingupdatedeventdata): This is an object representing data for the opening updated event. - [PaginationMeta](/api/schemas/paginationmeta): Metadata for paginated responses - [Platform](/api/schemas/platform): This is an object representing a platform in the app. - [PlatformResponse](/api/schemas/platformresponse): Response schema for a single platform - [Provider](/api/schemas/provider): A provider represents a staff member who can provide services to clients. - [ProviderCreatedEventData](/api/schemas/providercreatedeventdata): This is an object representing data for the provider created event. - [ProviderDeactivatedEventData](/api/schemas/providerdeactivatedeventdata): This is an object representing data for the provider deactivated event. - [ProviderNotificationConfig](/api/schemas/providernotificationconfig): Configuration for staff notification emails on a service, including which notification types are enabled and who receives them. - [ProviderNotificationType](/api/schemas/providernotificationtype): An enabled staff notification type on a service. - [ProviderReactivatedEventData](/api/schemas/providerreactivatedeventdata): This is an object representing data for the provider reactivated event. - [ProviderResponse](/api/schemas/providerresponse): Response schema for a single provider - [ProviderSchedule](/api/schemas/providerschedule): A provider schedule represents a schedule for a provider at a location. - [ProviderScheduleCreatedEventData](/api/schemas/providerschedulecreatedeventdata): This is an object representing data for the provider schedule created event. - [ProviderScheduleDeletedEventData](/api/schemas/providerscheduledeletedeventdata): This is an object representing data for the provider schedule deleted event. - [ProviderScheduleResponse](/api/schemas/providerscheduleresponse): Response schema for a single provider schedule - [ProviderSchedulesResponse](/api/schemas/providerschedulesresponse): Response schema for a list of provider schedules - [ProviderScheduleUpdatedEventData](/api/schemas/providerscheduleupdatedeventdata): This is an object representing data for the provider schedule updated event. - [ProvidersResponse](/api/schemas/providersresponse): Response schema for multiple providers - [ProviderUpdatedEventData](/api/schemas/providerupdatedeventdata): This is an object representing data for the provider updated event. - [PublicAppointment](/api/schemas/publicappointment): A public appointment represents a booking that a client has made with a provider for a service. - [PublicAppointmentResponse](/api/schemas/publicappointmentresponse): Response schema for a single appointment created via a public interface. - [PublicBookingIntent](/api/schemas/publicbookingintent): A public booking intent that tracks the lifecycle of a booking attempt. - [PublicBookingIntentResponse](/api/schemas/publicbookingintentresponse): Response schema for a single booking intent via a public interface. - [PublicCancellationReason](/api/schemas/publiccancellationreason): A cancellation reason that can be used when canceling an appointment. - [PublicCancellationReasonsResponse](/api/schemas/publiccancellationreasonsresponse): Response schema for listing public cancellation reasons - [PublicServiceEarliestSlotResponse](/api/schemas/publicserviceearliestslotresponse): Response schema for the earliest available service slot via the public API - [RecurrenceRule](/api/schemas/recurrencerule): A recurrence rule describes a repeating pattern of times. - [RescheduleAppointmentRequest](/api/schemas/rescheduleappointmentrequest): Request schema for rescheduling an appointment - [RescheduleEvent](/api/schemas/rescheduleevent): This is an object representing when an appointment was rescheduled. - [ReschedulePublicAppointmentRequest](/api/schemas/reschedulepublicappointmentrequest): Request schema for rescheduling a public appointment - [ReschedulingPolicy](/api/schemas/reschedulingpolicy): A rescheduling policy defines the rules for rescheduling a service from public booking interfaces. - [Role](/api/schemas/role): This is an object representing a role in the system. - [RoleResponse](/api/schemas/roleresponse): Response schema for a single role - [RolesResponse](/api/schemas/rolesresponse): Response schema for multiple roles - [ScheduleGroup](/api/schemas/schedulegroup): A named schedule lineage at the account level (for example, Orientations). - [ScheduleGroupResponse](/api/schemas/schedulegroupresponse): Response schema for a single schedule group - [ScheduleGroupsResponse](/api/schemas/schedulegroupsresponse): Response schema for multiple schedule groups - [Service](/api/schemas/service): A service represents a type of appointment. - [ServiceConferencingResponse](/api/schemas/serviceconferencingresponse): Response schema for configuring a service's conferencing across all providers - [ServiceConferencingResult](/api/schemas/serviceconferencingresult): The outcome of configuring a service's conferencing across all of its providers, listing which providers were configured and which were skipped. - [ServiceCreatedEventData](/api/schemas/servicecreatedeventdata): This is an object representing data for the service created event. - [ServiceDeletedEventData](/api/schemas/servicedeletedeventdata): This is an object representing data for the service deleted event. - [ServiceForm](/api/schemas/serviceform): A service form represents the attachment of a form to a service. - [ServiceFormResponse](/api/schemas/serviceformresponse): Response schema for a single service form - [ServiceFormsResponse](/api/schemas/serviceformsresponse): Response schema for a list of service forms - [ServiceProvider](/api/schemas/serviceprovider): A service provider - [ServiceProviderConferencing](/api/schemas/serviceproviderconferencing): This is an object representing the conferencing configuration for a service provider (e.g., the Zoom user whose account hosts meetings for this provider on this service). - [ServiceProviderConferencingResponse](/api/schemas/serviceproviderconferencingresponse): Response schema for a single service provider conferencing configuration - [ServiceProviderCreatedEventData](/api/schemas/serviceprovidercreatedeventdata): This is an object representing data for the service provider created event. - [ServiceProviderDeletedEventData](/api/schemas/serviceproviderdeletedeventdata): This is an object representing data for the service provider deleted event. - [ServiceProviderResponse](/api/schemas/serviceproviderresponse): Response schema for a service - [ServiceProvidersResponse](/api/schemas/serviceprovidersresponse): Response schema for a list of service providers - [ServiceResponse](/api/schemas/serviceresponse): Response schema for a service - [ServiceSlotResponse](/api/schemas/serviceslotresponse): Response schema for service slots - [ServicesResponse](/api/schemas/servicesresponse): Response schema for a list of services - [ServiceUpdatedEventData](/api/schemas/serviceupdatedeventdata): This is an object representing data for the service updated event. - [SetServiceConferencingRequest](/api/schemas/setserviceconferencingrequest): Request schema for setting a service's default conferencing. - [SetServiceProviderConferencingRequest](/api/schemas/setserviceproviderconferencingrequest): Request schema for setting a service provider's conferencing configuration. - [SetUserMappingRequest](/api/schemas/setusermappingrequest): Request schema for setting a user mapping. - [Slot](/api/schemas/slot): A time slot with start and end times - [SlotListResponse](/api/schemas/slotlistresponse): A flat list of slots. - [SlotRule](/api/schemas/slotrule): A slot rule defines the recurring time slots available for a service. - [SortServiceFormsRequest](/api/schemas/sortserviceformsrequest): Request schema for reordering service forms. - [SubmissionRequirement](/api/schemas/submissionrequirement): Completeness status for a single form submission. - [SyncExternalUsersResponse](/api/schemas/syncexternalusersresponse): Response schema for the external users synced from a connected account - [UnauthorizedResponse](/api/schemas/unauthorizedresponse): Response schema for unauthorized requests - [UpdateAccountRequest](/api/schemas/updateaccountrequest): Request schema for updating an account - [UpdateAccountUserRequest](/api/schemas/updateaccountuserrequest): Request schema for updating a user in an account - [UpdateBlockRequest](/api/schemas/updateblockrequest): Request schema for updating a block. - [UpdateBookingIntentRequest](/api/schemas/updatebookingintentrequest): Request schema for updating a booking intent - [UpdateBookingLinkRequest](/api/schemas/updatebookinglinkrequest): Request schema for updating a booking link - [UpdateCancellationReasonRequest](/api/schemas/updatecancellationreasonrequest): Request schema for updating a cancellation reason - [UpdateClientFieldRequest](/api/schemas/updateclientfieldrequest): Request schema for updating a client field - [UpdateClientRequest](/api/schemas/updateclientrequest): Request schema for updating a client - [UpdateConnectedAccountRequest](/api/schemas/updateconnectedaccountrequest): Request schema for updating a connected account - [UpdateFormRequest](/api/schemas/updateformrequest): Request schema for updating a form. - [UpdateOpeningRequest](/api/schemas/updateopeningrequest): Request schema for updating an opening. - [UpdateProviderRequest](/api/schemas/updateproviderrequest): Request body for updating a provider - [UpdateProviderScheduleRequest](/api/schemas/updateproviderschedulerequest): Request schema for updating a provider schedule. - [UpdatePublicBookingIntentRequest](/api/schemas/updatepublicbookingintentrequest): Request schema for updating a booking intent via a public interface. - [UpdateRoleRequest](/api/schemas/updaterolerequest): Request schema for updating a role - [UpdateScheduleGroupRequest](/api/schemas/updateschedulegrouprequest): Request schema for updating a schedule group - [UpdateServiceRequest](/api/schemas/updateservicerequest): Request schema for updating a service. - [User](/api/schemas/user): This is an object representing a user of the app. - [UserMapping](/api/schemas/usermapping): This is an object representing a default mapping between a provider and an external user on a connected account (e.g., the Zoom user whose account is used to host meetings for a provider). - [UserMappingResponse](/api/schemas/usermappingresponse): Response schema for a single user mapping - [UserMappingsResponse](/api/schemas/usermappingsresponse): Response schema for multiple user mappings - [WeeklyRule](/api/schemas/weeklyrule): Weekly rule for a provider schedule. - [ZonedDateTime](/api/schemas/zoneddatetime): An object describing a date/time in local time and in UTC. - Help: Using SavvyCal Appointments - [Help](/help): How to use SavvyCal Appointments. - [User roles](/help/user-roles): Predefined roles you can assign when adding people to a SavvyCal Appointments account. - [Integrating with Zoom](/help/integrating-with-zoom): Automatically create a scheduled Zoom meeting when someone books an appointment. ## Optional - [API Specification](https://api.savvycal.app/v1/spec): Complete OpenAPI spec for the SavvyCal Appointments REST API