SavvyCalSavvyCal Appointments
SavvyCalSavvyCal Appointments
HomeAuthenticationRate LimitingIdempotency
PlatformsData ModelUsers and AccountsConnected AccountsBooking IntentsSlot AvailabilityWorking with DatesMetadata Filtering
Embedding
Components
Public Booking Form
WebhooksAPI Changelog
API Reference
AccountAccountEventAccountResponseAccountsResponseAccountUserAccountUserCreatedEventDataAccountUserDeletedEventDataAccountUserResponseAccountUsersResponseAccountUserUpdatedEventDataAdvanceNoticePolicyAggregatedSlotAppointmentAppointmentCanceledEventDataAppointmentClientDataInputAppointmentConfirmedEventDataAppointmentCreatedEventDataAppointmentDeletedEventDataAppointmentMeetingAppointmentMeetingCanceledEventDataAppointmentMeetingCancelFailedEventDataAppointmentMeetingCreatedEventDataAppointmentMeetingCreateFailedEventDataAppointmentMeetingReplacedEventDataAppointmentMeetingReplaceFailedEventDataAppointmentMeetingUpdatedEventDataAppointmentMeetingUpdateFailedEventDataAppointmentProviderAppointmentRescheduledEventDataAppointmentResponseAppointmentsResponseAttachServiceFormRequestBlockBlockCreatedEventDataBlockDeletedEventDataBlockResponseBlocksResponseBlockUpdatedEventDataBookingIntentBookingIntentAbandonedEventDataBookingIntentBookingPolicyBookingIntentCompletedEventDataBookingIntentCreatedEventDataBookingIntentRequirementsBookingIntentResponseBookingIntentsResponseBookingIntentUpdatedEventDataBookingIntentWorkflowBookingLinkBookingLinkActivatedEventDataBookingLinkCreatedEventDataBookingLinkDeactivatedEventDataBookingLinkDeletedEventDataBookingLinkResponseBookingLinksResponseBookingLinkUpdatedEventDataBookingPolicyBufferPolicyByEmailByExternalUserIdCancelAppointmentRequestCancellationEventCancellationPolicyCancellationReasonCancellationReasonResponseCancellationReasonsResponseCancelPublicAppointmentRequestClientClientCreatedEventDataClientDataInputClientDeletedEventDataClientFieldClientFieldChoiceClientFieldOptionsClientFieldResponseClientFieldsResponseClientResponseClientsResponseClientUpdatedEventDataCompleteBookingIntentRequestCompletePublicBookingIntentRequestConfirmAppointmentRequestConfirmationEventConflictResponseConnectedAccountConnectedAccountCreatedEventDataConnectedAccountDeletedEventDataConnectedAccountReconnectedEventDataConnectedAccountRefreshFailedEventDataConnectedAccountResponseConnectedAccountsResponseCreateAccountRequestCreateAccountUserRequestCreateAppointmentRequestCreateBlockRequestCreateBookingIntentRequestCreateBookingLinkRequestCreateCancellationReasonRequestCreateClientFieldRequestCreateClientRequestCreateDashboardSessionRequestCreateFormRequestCreateOpeningRequestCreateProviderRequestCreateProviderScheduleRequestCreatePublicAppointmentRequestCreatePublicBookingIntentRequestCreateScheduleGroupRequestCreateServiceProviderRequestCreateServiceRequestDashboardSessionDashboardSessionResponseEmptyResponseExternalUserExternalUsersResponseFieldChoiceFieldChoiceInputFieldOptionsFieldOptionsInputForbiddenResponseFormFormDetailFormFieldFormFieldInputFormResponseFormsResponseGenericErrorResponseHoldPolicyInitialProviderScheduleIntentSubmissionInputJsonErrorJsonErrorResponseMaximizeUtilizationPolicyNotFoundResponseOpeningOpeningCreatedEventDataOpeningDeletedEventDataOpeningResponseOpeningsResponseOpeningUpdatedEventDataPaginationMetaPlatformPlatformResponseProviderProviderCreatedEventDataProviderDeactivatedEventDataProviderNotificationConfigProviderNotificationTypeProviderReactivatedEventDataProviderResponseProviderScheduleProviderScheduleCreatedEventDataProviderScheduleDeletedEventDataProviderScheduleResponseProviderSchedulesResponseProviderScheduleUpdatedEventDataProvidersResponseProviderUpdatedEventDataPublicAppointmentPublicAppointmentResponsePublicBookingIntentPublicBookingIntentResponsePublicCancellationReasonPublicCancellationReasonsResponsePublicServiceEarliestSlotResponseRecurrenceRuleRescheduleAppointmentRequestRescheduleEventReschedulePublicAppointmentRequestReschedulingPolicyRoleRoleResponseRolesResponseScheduleGroupScheduleGroupResponseScheduleGroupsResponseServiceServiceConferencingResponseServiceConferencingResultServiceCreatedEventDataServiceDeletedEventDataServiceFormServiceFormResponseServiceFormsResponseServiceProviderServiceProviderConferencingServiceProviderConferencingResponseServiceProviderCreatedEventDataServiceProviderDeletedEventDataServiceProviderResponseServiceProvidersResponseServiceResponseServiceSlotResponseServicesResponseServiceUpdatedEventDataSetServiceConferencingRequestSetServiceProviderConferencingRequestSetUserMappingRequestSlotSlotListResponseSlotRuleSortServiceFormsRequestSubmissionRequirementSyncExternalUsersResponseUnauthorizedResponseUpdateAccountRequestUpdateAccountUserRequestUpdateBlockRequestUpdateBookingIntentRequestUpdateBookingLinkRequestUpdateCancellationReasonRequestUpdateClientFieldRequestUpdateClientRequestUpdateConnectedAccountRequestUpdateFormRequestUpdateOpeningRequestUpdateProviderRequestUpdateProviderScheduleRequestUpdatePublicBookingIntentRequestUpdateRoleRequestUpdateScheduleGroupRequestUpdateServiceRequestUserUserMappingUserMappingResponseUserMappingsResponseWeeklyRuleZonedDateTime
API ReferenceSchemas

CreateBookingIntentRequest

Request schema for creating a booking intent

Request schema for creating a booking intent

Example

{  "booking_policy": {    "hold": {      "duration": "PT10M",      "enabled": true    }  },  "metadata": {    "source": "web"  },  "service_id": "srv_1234567890"}

CreateBlockRequest

Request schema for creating a block.

CreateBookingLinkRequest

Request schema for creating a booking link

auto_assign_provider?|

When true, automatically assigns an available provider for the selected time slot if no provider_id is specified.

booking_policy?|

Policy overrides for this booking intent. When omitted, falls back to the service's policies.

client_data?

Progressive client data to collect during the booking flow.

client_id?|

The ID of an existing client to link.

end_at?|

The end time of the slot as an ISO-8601 datetime string with a timezone offset.

Formatdate-time
locked_fields?array<>|

Fields to lock from public API updates.

metadata?|

Custom metadata key-value pairs.

provider_id?|

The ID of the provider to assign.

secondary_providers?array<>|

Secondary providers to include in the appointment.

service_id?|

The ID of the service for this booking intent.

slot_prevalidated?boolean

Whether the slot has been prevalidated. When true, public completion skips slot validation.

Defaultfalse
start_at?|

The start time of the slot as an ISO-8601 datetime string with a timezone offset.

Formatdate-time
submissions?array<>|

Form submissions to attach to this booking intent. Each entry contains a form_id and responses map.

time_zone?|

The local time zone for the slot (IANA format).