AccountEvent
This is an object representing an account event in the app.
The event creation time.
data objectrequired
The event data.
The event data.
Possible values: [appointment.canceled, appointment.confirmed, appointment.created, appointment.deleted, appointment.rescheduled, block.created, block.deleted, block.updated, connected_account.created, connected_account.deleted, connected_account.reconnected, connected_account.refresh_failed]
- appointment.canceled
- appointment.confirmed
- appointment.created
- appointment.deleted
- appointment.rescheduled
- block.created
- block.deleted
- block.updated
- connected_account.created
- connected_account.deleted
- connected_account.reconnected
- connected_account.refresh_failed
object objectrequired
An appointment represents a booking that a client has made with a provider for a service.
The type of appointment.
Possible values: [in_person, virtual]
cancellation_events object[]required
The actor that initiated the cancellation (user ID or bearer token ID).
cancellation_reason objectnullablerequired
This is an object representing a cancellation reason.
Unique identifier for the object.
Possible values: Value must match regular expression ^cr_\w{12}$
The name of the cancellation reason.
String representing the object's type.
Possible values: [cancellation_reason]
The sort order of the cancellation reason.
Custom reason text for the cancellation.
The entity that initiated the cancellation.
Possible values: [user, client]
Possible values: [cancellation_event]
The time at which the cancellation occurred (ISO-8601 format).
The source of the cancellation event.
Possible values: [client_ui, dashboard, api]
client objectrequired
This is an object representing a client.
Time at which the object was created.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^clnt_\w{12}$
The client's last name. This field is only included if include_sensitive is true.
The locale of the client.
en-USString representing the object's type.
Possible values: [client]
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
External reference identifier for the client.
The client's time zone (IANA format).
America/ChicagoTime at which the object was last updated.
client_data objectrequired
Client data provided while creating the appointment. Some fields are only included if include_sensitive is true.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The locale of the client booking the appointment.
en-USThe client's phone number (E.164 format). This field is only included if include_sensitive is true.
The client's external reference identifier.
The client's time zone (IANA format).
America/ChicagoUse client_data.locale instead.
en-USUse client_data.reference_id instead.
Use client_data.time_zone instead.
America/Chicagoconfirmation_events object[]required
The actor that initiated the confirmation (user ID or bearer token ID).
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe entity that initiated the confirmation.
Possible values: [user, client]
Possible values: [confirmation_event]
The time at which the confirmation occurred (ISO-8601 format).
The source of the confirmation event.
Possible values: [client_ui, dashboard, api]
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZTime at which the object was confirmed.
Time at which the object was created.
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zfields objectrequireddeprecated
Use client_data instead.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^appt_\w{12}$
String representing the object's type.
Possible values: [appointment]
provider objectrequired
Time at which the object was created.
The provider's display name.
The provider's first name.
Unique identifier for the object.
Possible values: Value must match regular expression ^prov_\w{12}$
The provider's last name.
Set of key-value pairs attached to this provider. Maximum size is 16 KB.
String representing the object's type.
Possible values: [provider]
Time at which the object was last updated.
reschedule_events object[]required
Possible values: [user, client]
new_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Znew_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [reschedule_event]
The time at which the reschedule occurred (ISO-8601 format).
previous_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zprevious_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [client_ui, dashboard, api]
service objectrequired
The type of appointment.
Possible values: [in_person, virtual]
booking_policy objectrequired
A booking policy defines the rules for booking a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public booking is allowed for the service.
The message to display when public booking is disabled.
maximize_utilization objectrequired
Avoid presenting overlapping time slots for service providers to eliminate gaps in the schedule.
Whether maximize utilization is enabled for the service.
cancellation_policy objectrequired
A cancellation policy defines the rules for canceling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public cancellation is allowed for the service.
The message to display when public cancellation is disabled.
Displayed to clients in follow-up communication. Use this to explain any important rules about cancellations or rescheduling.
Appointments within 48 hours cannot be canceled or rescheduled online. Please call our office.When the service was created.
The duration of time slots in ISO-8601 duration format.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
`PT30M`Unique identifier for the object.
Possible values: Value must match regular expression ^srv_\w{12}$
The name of the service.
String representing the object's type.
Possible values: [service]
rescheduling_policy objectrequired
A rescheduling policy defines the rules for rescheduling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public rescheduling is allowed for the service.
The message to display when public rescheduling is disabled.
slot_rules object[]required
Array of slot rules for the service.
recurrence_rule objectrequired
A recurrence rule describes a repeating pattern of times. Recurrences rules in SavvyCal are modeled after the conventions of iCalendar recurrence rules (RRULE), but are a subset of the full specification.
The days of the week on which the recurrence occurs.
Possible values: Value must match regular expression (mo|tu|we|th|fr|sa|su)$
["mo","we","fr"]Number of occurrences at which to end the recurrence.
Possible values: >= 1
The frequency of the recurrence.
Possible values: [daily, weekly]
How often the recurrence rule repeats.
Possible values: >= 1
2Date at which to end the recurrence (in ISO-8601 format).
2024-01-02Array of start times for slots.
Possible values: Value must match regular expression ^\d{2}:\d{2}$
When the service was last updated.
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe status of the appointment.
Possible values: [scheduled, canceled]
Time at which the object was last updated.
urls object
URLs for this appointment.
URLs for the client to use to add this appointment to their calendar.
URLs for the client to use to add this appointment to Google Calendar.
URLs for the client to use to cancel this appointment.
URLs for the client to use to confirm this appointment.
URLs for the client to use to download an iCal file for this appointment.
URLs for the client to use to reschedule this appointment.
object objectrequired
An appointment represents a booking that a client has made with a provider for a service.
The type of appointment.
Possible values: [in_person, virtual]
cancellation_events object[]required
The actor that initiated the cancellation (user ID or bearer token ID).
cancellation_reason objectnullablerequired
This is an object representing a cancellation reason.
Unique identifier for the object.
Possible values: Value must match regular expression ^cr_\w{12}$
The name of the cancellation reason.
String representing the object's type.
Possible values: [cancellation_reason]
The sort order of the cancellation reason.
Custom reason text for the cancellation.
The entity that initiated the cancellation.
Possible values: [user, client]
Possible values: [cancellation_event]
The time at which the cancellation occurred (ISO-8601 format).
The source of the cancellation event.
Possible values: [client_ui, dashboard, api]
client objectrequired
This is an object representing a client.
Time at which the object was created.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^clnt_\w{12}$
The client's last name. This field is only included if include_sensitive is true.
The locale of the client.
en-USString representing the object's type.
Possible values: [client]
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
External reference identifier for the client.
The client's time zone (IANA format).
America/ChicagoTime at which the object was last updated.
client_data objectrequired
Client data provided while creating the appointment. Some fields are only included if include_sensitive is true.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The locale of the client booking the appointment.
en-USThe client's phone number (E.164 format). This field is only included if include_sensitive is true.
The client's external reference identifier.
The client's time zone (IANA format).
America/ChicagoUse client_data.locale instead.
en-USUse client_data.reference_id instead.
Use client_data.time_zone instead.
America/Chicagoconfirmation_events object[]required
The actor that initiated the confirmation (user ID or bearer token ID).
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe entity that initiated the confirmation.
Possible values: [user, client]
Possible values: [confirmation_event]
The time at which the confirmation occurred (ISO-8601 format).
The source of the confirmation event.
Possible values: [client_ui, dashboard, api]
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZTime at which the object was confirmed.
Time at which the object was created.
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zfields objectrequireddeprecated
Use client_data instead.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^appt_\w{12}$
String representing the object's type.
Possible values: [appointment]
provider objectrequired
Time at which the object was created.
The provider's display name.
The provider's first name.
Unique identifier for the object.
Possible values: Value must match regular expression ^prov_\w{12}$
The provider's last name.
Set of key-value pairs attached to this provider. Maximum size is 16 KB.
String representing the object's type.
Possible values: [provider]
Time at which the object was last updated.
reschedule_events object[]required
Possible values: [user, client]
new_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Znew_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [reschedule_event]
The time at which the reschedule occurred (ISO-8601 format).
previous_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zprevious_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [client_ui, dashboard, api]
service objectrequired
The type of appointment.
Possible values: [in_person, virtual]
booking_policy objectrequired
A booking policy defines the rules for booking a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public booking is allowed for the service.
The message to display when public booking is disabled.
maximize_utilization objectrequired
Avoid presenting overlapping time slots for service providers to eliminate gaps in the schedule.
Whether maximize utilization is enabled for the service.
cancellation_policy objectrequired
A cancellation policy defines the rules for canceling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public cancellation is allowed for the service.
The message to display when public cancellation is disabled.
Displayed to clients in follow-up communication. Use this to explain any important rules about cancellations or rescheduling.
Appointments within 48 hours cannot be canceled or rescheduled online. Please call our office.When the service was created.
The duration of time slots in ISO-8601 duration format.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
`PT30M`Unique identifier for the object.
Possible values: Value must match regular expression ^srv_\w{12}$
The name of the service.
String representing the object's type.
Possible values: [service]
rescheduling_policy objectrequired
A rescheduling policy defines the rules for rescheduling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public rescheduling is allowed for the service.
The message to display when public rescheduling is disabled.
slot_rules object[]required
Array of slot rules for the service.
recurrence_rule objectrequired
A recurrence rule describes a repeating pattern of times. Recurrences rules in SavvyCal are modeled after the conventions of iCalendar recurrence rules (RRULE), but are a subset of the full specification.
The days of the week on which the recurrence occurs.
Possible values: Value must match regular expression (mo|tu|we|th|fr|sa|su)$
["mo","we","fr"]Number of occurrences at which to end the recurrence.
Possible values: >= 1
The frequency of the recurrence.
Possible values: [daily, weekly]
How often the recurrence rule repeats.
Possible values: >= 1
2Date at which to end the recurrence (in ISO-8601 format).
2024-01-02Array of start times for slots.
Possible values: Value must match regular expression ^\d{2}:\d{2}$
When the service was last updated.
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe status of the appointment.
Possible values: [scheduled, canceled]
Time at which the object was last updated.
urls object
URLs for this appointment.
URLs for the client to use to add this appointment to their calendar.
URLs for the client to use to add this appointment to Google Calendar.
URLs for the client to use to cancel this appointment.
URLs for the client to use to confirm this appointment.
URLs for the client to use to download an iCal file for this appointment.
URLs for the client to use to reschedule this appointment.
object objectrequired
An appointment represents a booking that a client has made with a provider for a service.
The type of appointment.
Possible values: [in_person, virtual]
cancellation_events object[]required
The actor that initiated the cancellation (user ID or bearer token ID).
cancellation_reason objectnullablerequired
This is an object representing a cancellation reason.
Unique identifier for the object.
Possible values: Value must match regular expression ^cr_\w{12}$
The name of the cancellation reason.
String representing the object's type.
Possible values: [cancellation_reason]
The sort order of the cancellation reason.
Custom reason text for the cancellation.
The entity that initiated the cancellation.
Possible values: [user, client]
Possible values: [cancellation_event]
The time at which the cancellation occurred (ISO-8601 format).
The source of the cancellation event.
Possible values: [client_ui, dashboard, api]
client objectrequired
This is an object representing a client.
Time at which the object was created.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^clnt_\w{12}$
The client's last name. This field is only included if include_sensitive is true.
The locale of the client.
en-USString representing the object's type.
Possible values: [client]
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
External reference identifier for the client.
The client's time zone (IANA format).
America/ChicagoTime at which the object was last updated.
client_data objectrequired
Client data provided while creating the appointment. Some fields are only included if include_sensitive is true.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The locale of the client booking the appointment.
en-USThe client's phone number (E.164 format). This field is only included if include_sensitive is true.
The client's external reference identifier.
The client's time zone (IANA format).
America/ChicagoUse client_data.locale instead.
en-USUse client_data.reference_id instead.
Use client_data.time_zone instead.
America/Chicagoconfirmation_events object[]required
The actor that initiated the confirmation (user ID or bearer token ID).
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe entity that initiated the confirmation.
Possible values: [user, client]
Possible values: [confirmation_event]
The time at which the confirmation occurred (ISO-8601 format).
The source of the confirmation event.
Possible values: [client_ui, dashboard, api]
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZTime at which the object was confirmed.
Time at which the object was created.
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zfields objectrequireddeprecated
Use client_data instead.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^appt_\w{12}$
String representing the object's type.
Possible values: [appointment]
provider objectrequired
Time at which the object was created.
The provider's display name.
The provider's first name.
Unique identifier for the object.
Possible values: Value must match regular expression ^prov_\w{12}$
The provider's last name.
Set of key-value pairs attached to this provider. Maximum size is 16 KB.
String representing the object's type.
Possible values: [provider]
Time at which the object was last updated.
reschedule_events object[]required
Possible values: [user, client]
new_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Znew_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [reschedule_event]
The time at which the reschedule occurred (ISO-8601 format).
previous_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zprevious_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [client_ui, dashboard, api]
service objectrequired
The type of appointment.
Possible values: [in_person, virtual]
booking_policy objectrequired
A booking policy defines the rules for booking a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public booking is allowed for the service.
The message to display when public booking is disabled.
maximize_utilization objectrequired
Avoid presenting overlapping time slots for service providers to eliminate gaps in the schedule.
Whether maximize utilization is enabled for the service.
cancellation_policy objectrequired
A cancellation policy defines the rules for canceling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public cancellation is allowed for the service.
The message to display when public cancellation is disabled.
Displayed to clients in follow-up communication. Use this to explain any important rules about cancellations or rescheduling.
Appointments within 48 hours cannot be canceled or rescheduled online. Please call our office.When the service was created.
The duration of time slots in ISO-8601 duration format.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
`PT30M`Unique identifier for the object.
Possible values: Value must match regular expression ^srv_\w{12}$
The name of the service.
String representing the object's type.
Possible values: [service]
rescheduling_policy objectrequired
A rescheduling policy defines the rules for rescheduling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public rescheduling is allowed for the service.
The message to display when public rescheduling is disabled.
slot_rules object[]required
Array of slot rules for the service.
recurrence_rule objectrequired
A recurrence rule describes a repeating pattern of times. Recurrences rules in SavvyCal are modeled after the conventions of iCalendar recurrence rules (RRULE), but are a subset of the full specification.
The days of the week on which the recurrence occurs.
Possible values: Value must match regular expression (mo|tu|we|th|fr|sa|su)$
["mo","we","fr"]Number of occurrences at which to end the recurrence.
Possible values: >= 1
The frequency of the recurrence.
Possible values: [daily, weekly]
How often the recurrence rule repeats.
Possible values: >= 1
2Date at which to end the recurrence (in ISO-8601 format).
2024-01-02Array of start times for slots.
Possible values: Value must match regular expression ^\d{2}:\d{2}$
When the service was last updated.
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe status of the appointment.
Possible values: [scheduled, canceled]
Time at which the object was last updated.
urls object
URLs for this appointment.
URLs for the client to use to add this appointment to their calendar.
URLs for the client to use to add this appointment to Google Calendar.
URLs for the client to use to cancel this appointment.
URLs for the client to use to confirm this appointment.
URLs for the client to use to download an iCal file for this appointment.
URLs for the client to use to reschedule this appointment.
object objectrequired
An appointment represents a booking that a client has made with a provider for a service.
The type of appointment.
Possible values: [in_person, virtual]
cancellation_events object[]required
The actor that initiated the cancellation (user ID or bearer token ID).
cancellation_reason objectnullablerequired
This is an object representing a cancellation reason.
Unique identifier for the object.
Possible values: Value must match regular expression ^cr_\w{12}$
The name of the cancellation reason.
String representing the object's type.
Possible values: [cancellation_reason]
The sort order of the cancellation reason.
Custom reason text for the cancellation.
The entity that initiated the cancellation.
Possible values: [user, client]
Possible values: [cancellation_event]
The time at which the cancellation occurred (ISO-8601 format).
The source of the cancellation event.
Possible values: [client_ui, dashboard, api]
client objectrequired
This is an object representing a client.
Time at which the object was created.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^clnt_\w{12}$
The client's last name. This field is only included if include_sensitive is true.
The locale of the client.
en-USString representing the object's type.
Possible values: [client]
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
External reference identifier for the client.
The client's time zone (IANA format).
America/ChicagoTime at which the object was last updated.
client_data objectrequired
Client data provided while creating the appointment. Some fields are only included if include_sensitive is true.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The locale of the client booking the appointment.
en-USThe client's phone number (E.164 format). This field is only included if include_sensitive is true.
The client's external reference identifier.
The client's time zone (IANA format).
America/ChicagoUse client_data.locale instead.
en-USUse client_data.reference_id instead.
Use client_data.time_zone instead.
America/Chicagoconfirmation_events object[]required
The actor that initiated the confirmation (user ID or bearer token ID).
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe entity that initiated the confirmation.
Possible values: [user, client]
Possible values: [confirmation_event]
The time at which the confirmation occurred (ISO-8601 format).
The source of the confirmation event.
Possible values: [client_ui, dashboard, api]
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZTime at which the object was confirmed.
Time at which the object was created.
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zfields objectrequireddeprecated
Use client_data instead.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^appt_\w{12}$
String representing the object's type.
Possible values: [appointment]
provider objectrequired
Time at which the object was created.
The provider's display name.
The provider's first name.
Unique identifier for the object.
Possible values: Value must match regular expression ^prov_\w{12}$
The provider's last name.
Set of key-value pairs attached to this provider. Maximum size is 16 KB.
String representing the object's type.
Possible values: [provider]
Time at which the object was last updated.
reschedule_events object[]required
Possible values: [user, client]
new_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Znew_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [reschedule_event]
The time at which the reschedule occurred (ISO-8601 format).
previous_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zprevious_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [client_ui, dashboard, api]
service objectrequired
The type of appointment.
Possible values: [in_person, virtual]
booking_policy objectrequired
A booking policy defines the rules for booking a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public booking is allowed for the service.
The message to display when public booking is disabled.
maximize_utilization objectrequired
Avoid presenting overlapping time slots for service providers to eliminate gaps in the schedule.
Whether maximize utilization is enabled for the service.
cancellation_policy objectrequired
A cancellation policy defines the rules for canceling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public cancellation is allowed for the service.
The message to display when public cancellation is disabled.
Displayed to clients in follow-up communication. Use this to explain any important rules about cancellations or rescheduling.
Appointments within 48 hours cannot be canceled or rescheduled online. Please call our office.When the service was created.
The duration of time slots in ISO-8601 duration format.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
`PT30M`Unique identifier for the object.
Possible values: Value must match regular expression ^srv_\w{12}$
The name of the service.
String representing the object's type.
Possible values: [service]
rescheduling_policy objectrequired
A rescheduling policy defines the rules for rescheduling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public rescheduling is allowed for the service.
The message to display when public rescheduling is disabled.
slot_rules object[]required
Array of slot rules for the service.
recurrence_rule objectrequired
A recurrence rule describes a repeating pattern of times. Recurrences rules in SavvyCal are modeled after the conventions of iCalendar recurrence rules (RRULE), but are a subset of the full specification.
The days of the week on which the recurrence occurs.
Possible values: Value must match regular expression (mo|tu|we|th|fr|sa|su)$
["mo","we","fr"]Number of occurrences at which to end the recurrence.
Possible values: >= 1
The frequency of the recurrence.
Possible values: [daily, weekly]
How often the recurrence rule repeats.
Possible values: >= 1
2Date at which to end the recurrence (in ISO-8601 format).
2024-01-02Array of start times for slots.
Possible values: Value must match regular expression ^\d{2}:\d{2}$
When the service was last updated.
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe status of the appointment.
Possible values: [scheduled, canceled]
Time at which the object was last updated.
urls object
URLs for this appointment.
URLs for the client to use to add this appointment to their calendar.
URLs for the client to use to add this appointment to Google Calendar.
URLs for the client to use to cancel this appointment.
URLs for the client to use to confirm this appointment.
URLs for the client to use to download an iCal file for this appointment.
URLs for the client to use to reschedule this appointment.
object objectrequired
An appointment represents a booking that a client has made with a provider for a service.
The type of appointment.
Possible values: [in_person, virtual]
cancellation_events object[]required
The actor that initiated the cancellation (user ID or bearer token ID).
cancellation_reason objectnullablerequired
This is an object representing a cancellation reason.
Unique identifier for the object.
Possible values: Value must match regular expression ^cr_\w{12}$
The name of the cancellation reason.
String representing the object's type.
Possible values: [cancellation_reason]
The sort order of the cancellation reason.
Custom reason text for the cancellation.
The entity that initiated the cancellation.
Possible values: [user, client]
Possible values: [cancellation_event]
The time at which the cancellation occurred (ISO-8601 format).
The source of the cancellation event.
Possible values: [client_ui, dashboard, api]
client objectrequired
This is an object representing a client.
Time at which the object was created.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^clnt_\w{12}$
The client's last name. This field is only included if include_sensitive is true.
The locale of the client.
en-USString representing the object's type.
Possible values: [client]
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
External reference identifier for the client.
The client's time zone (IANA format).
America/ChicagoTime at which the object was last updated.
client_data objectrequired
Client data provided while creating the appointment. Some fields are only included if include_sensitive is true.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The locale of the client booking the appointment.
en-USThe client's phone number (E.164 format). This field is only included if include_sensitive is true.
The client's external reference identifier.
The client's time zone (IANA format).
America/ChicagoUse client_data.locale instead.
en-USUse client_data.reference_id instead.
Use client_data.time_zone instead.
America/Chicagoconfirmation_events object[]required
The actor that initiated the confirmation (user ID or bearer token ID).
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe entity that initiated the confirmation.
Possible values: [user, client]
Possible values: [confirmation_event]
The time at which the confirmation occurred (ISO-8601 format).
The source of the confirmation event.
Possible values: [client_ui, dashboard, api]
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZTime at which the object was confirmed.
Time at which the object was created.
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zfields objectrequireddeprecated
Use client_data instead.
The client's email address. This field is only included if include_sensitive is true.
The client's first name. This field is only included if include_sensitive is true.
The client's last name. This field is only included if include_sensitive is true.
The client's phone number (E.164 format). This field is only included if include_sensitive is true.
Unique identifier for the object.
Possible values: Value must match regular expression ^appt_\w{12}$
String representing the object's type.
Possible values: [appointment]
provider objectrequired
Time at which the object was created.
The provider's display name.
The provider's first name.
Unique identifier for the object.
Possible values: Value must match regular expression ^prov_\w{12}$
The provider's last name.
Set of key-value pairs attached to this provider. Maximum size is 16 KB.
String representing the object's type.
Possible values: [provider]
Time at which the object was last updated.
reschedule_events object[]required
Possible values: [user, client]
new_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Znew_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [reschedule_event]
The time at which the reschedule occurred (ISO-8601 format).
previous_end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zprevious_start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZPossible values: [client_ui, dashboard, api]
service objectrequired
The type of appointment.
Possible values: [in_person, virtual]
booking_policy objectrequired
A booking policy defines the rules for booking a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public booking is allowed for the service.
The message to display when public booking is disabled.
maximize_utilization objectrequired
Avoid presenting overlapping time slots for service providers to eliminate gaps in the schedule.
Whether maximize utilization is enabled for the service.
cancellation_policy objectrequired
A cancellation policy defines the rules for canceling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public cancellation is allowed for the service.
The message to display when public cancellation is disabled.
Displayed to clients in follow-up communication. Use this to explain any important rules about cancellations or rescheduling.
Appointments within 48 hours cannot be canceled or rescheduled online. Please call our office.When the service was created.
The duration of time slots in ISO-8601 duration format.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
`PT30M`Unique identifier for the object.
Possible values: Value must match regular expression ^srv_\w{12}$
The name of the service.
String representing the object's type.
Possible values: [service]
rescheduling_policy objectrequired
A rescheduling policy defines the rules for rescheduling a service from public booking interfaces.
advance_notice objectrequired
A policy for requiring minimum advance notice.
Whether advance notice is enabled.
The minimum duration of advance notice.
Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$
Whether public rescheduling is allowed for the service.
The message to display when public rescheduling is disabled.
slot_rules object[]required
Array of slot rules for the service.
recurrence_rule objectrequired
A recurrence rule describes a repeating pattern of times. Recurrences rules in SavvyCal are modeled after the conventions of iCalendar recurrence rules (RRULE), but are a subset of the full specification.
The days of the week on which the recurrence occurs.
Possible values: Value must match regular expression (mo|tu|we|th|fr|sa|su)$
["mo","we","fr"]Number of occurrences at which to end the recurrence.
Possible values: >= 1
The frequency of the recurrence.
Possible values: [daily, weekly]
How often the recurrence rule repeats.
Possible values: >= 1
2Date at which to end the recurrence (in ISO-8601 format).
2024-01-02Array of start times for slots.
Possible values: Value must match regular expression ^\d{2}:\d{2}$
When the service was last updated.
start_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00ZThe status of the appointment.
Possible values: [scheduled, canceled]
Time at which the object was last updated.
urls object
URLs for this appointment.
URLs for the client to use to add this appointment to their calendar.
URLs for the client to use to add this appointment to Google Calendar.
URLs for the client to use to cancel this appointment.
URLs for the client to use to confirm this appointment.
URLs for the client to use to download an iCal file for this appointment.
URLs for the client to use to reschedule this appointment.
previous_attributes objectrequired
end_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zstart_at objectrequired
An object describing a date/time in local time (naive) and in UTC.
The local date/time in ISO-8601 format (without time zone information).
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
2025-03-01T10:00:00String representing the object's type.
Possible values: [zoned_date_time]
The time zone of the local time (IANA format).
America/New_YorkThe UTC date/time in Unix timestamp format (seconds).
1736461200The UTC date/time in ISO-8601 format (with time zone information).
2025-03-01T03:00:00Zobject objectrequired
This is an object representing a range of blocked time for a provider, service, service provider, or location.
Whether the block is all day.
The type of attachment for the block.
Possible values: [location, service, provider, service_provider]
The resources to which this block is attached. These can be service IDs (to block availabilty for all providers on a service), provider IDs (to block availability for a specific provider), or location IDs (to block availability for a specific location).
Time at which the object was created.
The end date of the block.
The end time of the block.
Possible values: Value must match regular expression ^(?:[01]\d|2[0-3]):[0-5]\d$
The exception dates for the block.
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
Unique identifier for the object.
Possible values: Value must match regular expression ^blk_\w{12}$
String representing the object's type.
Possible values: [block]
recurrence_rule objectnullable
The recurrence rule for the block (or null if there is no recurrence).
The days of the week on which the recurrence occurs.
Possible values: Value must match regular expression (mo|tu|we|th|fr|sa|su)$
["mo","we","fr"]Number of occurrences at which to end the recurrence.
Possible values: >= 1
The frequency of the recurrence.
Possible values: [daily, weekly]
How often the recurrence rule repeats.
Possible values: >= 1
2Date at which to end the recurrence (in ISO-8601 format).
2024-01-02The ID of the service for the block. Required when attachment_type is service_provider.
The start date of the block.
The start time of the block.
Possible values: Value must match regular expression ^(?:[01]\d|2[0-3]):[0-5]\d$
The time zone of the block.
The title of the block.
Time at which the object was last updated.
object objectrequired
This is an object representing a range of blocked time for a provider, service, service provider, or location.
Whether the block is all day.
The type of attachment for the block.
Possible values: [location, service, provider, service_provider]
The resources to which this block is attached. These can be service IDs (to block availabilty for all providers on a service), provider IDs (to block availability for a specific provider), or location IDs (to block availability for a specific location).
Time at which the object was created.
The end date of the block.
The end time of the block.
Possible values: Value must match regular expression ^(?:[01]\d|2[0-3]):[0-5]\d$
The exception dates for the block.
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
Unique identifier for the object.
Possible values: Value must match regular expression ^blk_\w{12}$
String representing the object's type.
Possible values: [block]
recurrence_rule objectnullable
The recurrence rule for the block (or null if there is no recurrence).
The days of the week on which the recurrence occurs.
Possible values: Value must match regular expression (mo|tu|we|th|fr|sa|su)$
["mo","we","fr"]Number of occurrences at which to end the recurrence.
Possible values: >= 1
The frequency of the recurrence.
Possible values: [daily, weekly]
How often the recurrence rule repeats.
Possible values: >= 1
2Date at which to end the recurrence (in ISO-8601 format).
2024-01-02The ID of the service for the block. Required when attachment_type is service_provider.
The start date of the block.
The start time of the block.
Possible values: Value must match regular expression ^(?:[01]\d|2[0-3]):[0-5]\d$
The time zone of the block.
The title of the block.
Time at which the object was last updated.
object objectrequired
This is an object representing a range of blocked time for a provider, service, service provider, or location.
Whether the block is all day.
The type of attachment for the block.
Possible values: [location, service, provider, service_provider]
The resources to which this block is attached. These can be service IDs (to block availabilty for all providers on a service), provider IDs (to block availability for a specific provider), or location IDs (to block availability for a specific location).
Time at which the object was created.
The end date of the block.
The end time of the block.
Possible values: Value must match regular expression ^(?:[01]\d|2[0-3]):[0-5]\d$
The exception dates for the block.
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
Unique identifier for the object.
Possible values: Value must match regular expression ^blk_\w{12}$
String representing the object's type.
Possible values: [block]
recurrence_rule objectnullable
The recurrence rule for the block (or null if there is no recurrence).
The days of the week on which the recurrence occurs.
Possible values: Value must match regular expression (mo|tu|we|th|fr|sa|su)$
["mo","we","fr"]Number of occurrences at which to end the recurrence.
Possible values: >= 1
The frequency of the recurrence.
Possible values: [daily, weekly]
How often the recurrence rule repeats.
Possible values: >= 1
2Date at which to end the recurrence (in ISO-8601 format).
2024-01-02The ID of the service for the block. Required when attachment_type is service_provider.
The start date of the block.
The start time of the block.
Possible values: Value must match regular expression ^(?:[01]\d|2[0-3]):[0-5]\d$
The time zone of the block.
The title of the block.
Time at which the object was last updated.
object objectrequired
This is an object representing a connected calendar account (e.g., a Google Calendar integration).
The scope of this connection. 'user' means owned by a specific user, 'account' means shared across the account.
Possible values: [user, account]
Time at which the object was created.
The display name from the provider.
The email address associated with this connected account.
The unique identifier for this account at the provider.
Unique identifier for the object.
Possible values: Value must match regular expression ^cact_\w{12}$
String representing the object's type.
Possible values: [connected_account]
The calendar provider for this connected account.
Possible values: [google]
The current status of the connection. 'active' means the connection is working, 'reconnect_required' means the OAuth token has failed and needs reauthorization, 'insufficient_permissions' means the user did not grant all required OAuth scopes.
Possible values: [active, reconnect_required, insufficient_permissions]
Time at which the object was last updated.
The ID of the user who owns this connected account.
object objectrequired
This is an object representing a connected calendar account (e.g., a Google Calendar integration).
The scope of this connection. 'user' means owned by a specific user, 'account' means shared across the account.
Possible values: [user, account]
Time at which the object was created.
The display name from the provider.
The email address associated with this connected account.
The unique identifier for this account at the provider.
Unique identifier for the object.
Possible values: Value must match regular expression ^cact_\w{12}$
String representing the object's type.
Possible values: [connected_account]
The calendar provider for this connected account.
Possible values: [google]
The current status of the connection. 'active' means the connection is working, 'reconnect_required' means the OAuth token has failed and needs reauthorization, 'insufficient_permissions' means the user did not grant all required OAuth scopes.
Possible values: [active, reconnect_required, insufficient_permissions]
Time at which the object was last updated.
The ID of the user who owns this connected account.
object objectrequired
This is an object representing a connected calendar account (e.g., a Google Calendar integration).
The scope of this connection. 'user' means owned by a specific user, 'account' means shared across the account.
Possible values: [user, account]
Time at which the object was created.
The display name from the provider.
The email address associated with this connected account.
The unique identifier for this account at the provider.
Unique identifier for the object.
Possible values: Value must match regular expression ^cact_\w{12}$
String representing the object's type.
Possible values: [connected_account]
The calendar provider for this connected account.
Possible values: [google]
The current status of the connection. 'active' means the connection is working, 'reconnect_required' means the OAuth token has failed and needs reauthorization, 'insufficient_permissions' means the user did not grant all required OAuth scopes.
Possible values: [active, reconnect_required, insufficient_permissions]
Time at which the object was last updated.
The ID of the user who owns this connected account.
object objectrequired
This is an object representing a connected calendar account (e.g., a Google Calendar integration).
The scope of this connection. 'user' means owned by a specific user, 'account' means shared across the account.
Possible values: [user, account]
Time at which the object was created.
The display name from the provider.
The email address associated with this connected account.
The unique identifier for this account at the provider.
Unique identifier for the object.
Possible values: Value must match regular expression ^cact_\w{12}$
String representing the object's type.
Possible values: [connected_account]
The calendar provider for this connected account.
Possible values: [google]
The current status of the connection. 'active' means the connection is working, 'reconnect_required' means the OAuth token has failed and needs reauthorization, 'insufficient_permissions' means the user did not grant all required OAuth scopes.
Possible values: [active, reconnect_required, insufficient_permissions]
Time at which the object was last updated.
The ID of the user who owns this connected account.
Unique identifier for the object.
String representing the object's type.
Possible values: [account_event]
The event version.
{
"created_at": "2025-03-12T12:34:55Z",
"data": {
"object": {
"appointment_type": "in_person",
"cancellation_events": [
{
"actor": null,
"cancellation_reason": {
"id": "cr_a1b2c3d4e5f6",
"name": "Distance too far",
"object": "cancellation_reason",
"sort_order": 1
},
"custom_reason_text": "I'm sick",
"initiated_by": "client",
"object": "cancellation_event",
"occurred_at": "2023-01-01T03:00:00Z",
"source": "client_ui"
}
],
"client": {
"created_at": "2025-01-15T14:30:00Z",
"email": "jane.smith@example.com",
"first_name": "Jane",
"id": "clnt_a1b2c3d4e5f6",
"last_name": "Smith",
"locale": "en-US",
"object": "client",
"phone": "+15551234567",
"reference_id": "ext_12345",
"time_zone": "America/Chicago",
"updated_at": "2025-03-10T09:45:00Z"
},
"client_data": {
"email": "jane.smith@example.com",
"first_name": "Jane",
"last_name": "Smith",
"locale": "en-US",
"phone": "+15551234567",
"reference_id": "ext_12345",
"time_zone": "America/Chicago"
},
"client_locale": "en-US",
"client_reference_id": "ext_12345",
"client_time_zone": "America/Chicago",
"confirmation_events": [
{
"actor": null,
"end_at": {
"local": "2023-01-01T01:00:00",
"object": "zoned_date_time",
"time_zone": "America/New_York",
"unix_ts": 1736464800,
"utc": "2023-01-01T04:00:00Z"
},
"initiated_by": "client",
"object": "confirmation_event",
"occurred_at": "2023-01-01T03:00:00Z",
"source": "client_ui",
"start_at": {
"local": "2023-01-01T00:00:00",
"object": "zoned_date_time",
"time_zone": "America/New_York",
"unix_ts": 1736461200,
"utc": "2023-01-01T03:00:00Z"
}
}
],
"confirmed_at": "2025-03-10T15:30:00Z",
"created_at": "2025-03-10T14:30:00Z",
"end_at": {
"local": "2025-03-01T11:00:00",
"object": "zoned_date_time",
"time_zone": "America/New_York",
"unix_ts": 1736464800,
"utc": "2025-03-01T04:00:00Z"
},
"fields": {
"email": "jane.smith@example.com",
"first_name": "Jane",
"last_name": "Smith",
"phone": "+15551234567"
},
"id": "appt_a1b2c3d4e5f6",
"object": "appointment",
"provider": {
"created_at": "2017-09-12T12:34:55Z",
"display_name": "John Smith",
"first_name": "John",
"id": "prov_d025a96ac0c6",
"last_name": "Smith",
"metadata": {
"external_id": "123"
},
"object": "provider",
"updated_at": "2017-09-13T10:11:12Z"
},
"reschedule_events": [
{
"actor": null,
"initiated_by": "client",
"new_end_at": {
"local": "2023-01-01T01:00:00",
"object": "zoned_date_time",
"time_zone": "America/New_York",
"unix_ts": 1736464800,
"utc": "2023-01-01T04:00:00Z"
},
"new_start_at": {
"local": "2023-01-01T00:00:00",
"object": "zoned_date_time",
"time_zone": "America/New_York",
"unix_ts": 1736461200,
"utc": "2023-01-01T03:00:00Z"
},
"object": "reschedule_event",
"occurred_at": "2023-01-01T03:00:00Z",
"previous_end_at": {
"local": "2023-01-01T01:00:00",
"object": "zoned_date_time",
"time_zone": "America/New_York",
"unix_ts": 1736464800,
"utc": "2023-01-01T04:00:00Z"
},
"previous_start_at": {
"local": "2023-01-01T00:00:00",
"object": "zoned_date_time",
"time_zone": "America/New_York",
"unix_ts": 1736461200,
"utc": "2023-01-01T03:00:00Z"
},
"source": "client_ui"
}
],
"service": {
"appointment_type": "in_person",
"booking_policy": {
"advance_notice": {
"enabled": true,
"minimum_duration": "PT1H"
},
"allow_booking": true,
"disabled_message": "Booking is disabled for this service.",
"maximize_utilization": {
"enabled": true
}
},
"cancellation_policy": {
"advance_notice": {
"enabled": true,
"minimum_duration": "PT1H"
},
"allow_cancellation": true,
"disabled_message": "Cancellation is disabled for this service."
},
"change_policy_text": "Appointments within 48 hours cannot be canceled or rescheduled online. Please call our office.",
"created_at": "2025-02-17T17:49:19Z",
"duration": "PT1H30M",
"id": "srv_d025a96ac0c6",
"name": "Initial Consult",
"object": "service",
"rescheduling_policy": {
"advance_notice": {
"enabled": true,
"minimum_duration": "PT1H"
},
"allow_rescheduling": true,
"disabled_message": "Rescheduling is disabled for this service."
},
"slot_rules": [
{
"recurrence_rule": {
"byday": [
"mo",
"we",
"fr"
],
"freq": "weekly"
},
"start_times": [
"09:00",
"10:00"
]
}
],
"updated_at": "2025-02-17T17:49:19Z"
},
"start_at": {
"local": "2025-03-01T10:00:00",
"object": "zoned_date_time",
"time_zone": "America/New_York",
"unix_ts": 1736461200,
"utc": "2025-03-01T03:00:00Z"
},
"status": "scheduled",
"updated_at": "2025-03-10T14:30:00Z",
"urls": {
"add_to_google_calendar": [
"https://savvycal.app/c/appointments/appt_a1b2c3d4e5f6/add_to_google_calendar"
],
"cancel": [
"https://savvycal.app/c/appointments/appt_a1b2c3d4e5f6/cancel"
],
"confirm": [
"https://savvycal.app/c/appointments/appt_a1b2c3d4e5f6/confirm"
],
"ics": [
"https://savvycal.app/c/appointments/appt_a1b2c3d4e5f6/ics"
],
"reschedule": [
"https://savvycal.app/c/appointments/appt_a1b2c3d4e5f6/reschedule"
]
}
},
"type": "appointment.created"
},
"id": "evt_d025a96ac0c6",
"object": "account_event",
"version": "1.0"
}