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

UpdateBookingIntentRequest

Request schema for updating a booking intent

Request schema for updating a booking intent

Example

{  "client_data": {    "email": "jane@example.com",    "first_name": "Jane"  },  "end_at": "2026-02-23T10:30:00-05:00",  "provider_id": "prov_1234567890",  "start_at": "2026-02-23T10:00:00-05:00",  "time_zone": "America/New_York"}

UpdateBlockRequest

Request schema for updating a block.

UpdateBookingLinkRequest

Request schema for updating 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 if service is changing.

client_data?

Progressive client data. Provided fields are merged with existing values.

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. Replaces existing locked_fields entirely.

metadata?|

Custom metadata key-value pairs. Replaces existing metadata entirely.

provider_id?|

The ID of the provider to assign.

secondary_providers?array<>|

Secondary providers to include in the appointment. Send an empty array to clear.

service_id?|

The ID of the service.

slot_prevalidated?|

Whether the slot has been prevalidated. Automatically reset to false when slot-relevant fields (service_id, provider_id, start_at, end_at, time_zone) change, unless explicitly set to true in the same request.

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 upsert by form_id. Provided entries are merged with existing submissions; omitted form_ids are left unchanged. Send an empty array to clear all.

time_zone?|

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