Skip to main content

AppointmentMeetingReplaceFailedEventData

Emitted when the replacement meeting created during a meeting replace (typically following a reschedule that changed the primary provider) terminally fails at the conferencing provider. Distinct from appointment.meeting.create_failed (initial-creation failure): the appointment previously had a working meeting (now superseded), and the replacement attempt failed. The object.meeting.error_message field carries the failure reason.

object objectrequired

An appointment represents a booking that a client has made with a provider for a service.

add_to_calendar_urlurirequired

Canonical URL for the client to add this appointment to their calendar. Resolves to the account's active custom domain when configured, otherwise the canonical app host. The host portion may change if the account changes its custom-domain configuration.

appointment_typestringrequired

The type of appointment.

Possible values: [in_person, virtual]

cancel_urlurirequired

Canonical URL for the client to cancel this appointment. Resolves to the account's active custom domain when configured, otherwise the canonical app host. The host portion may change if the account changes its custom-domain configuration.

cancellation_events object[]required
  • Array [
  • actorstringnullablerequired

    The actor that initiated the cancellation (user ID or bearer token ID).

    cancellation_reason objectnullablerequired

    The cancellation reason.

    anyOf
    idstringrequired

    Unique identifier for the object.

    Possible values: Value must match regular expression ^cr_\w{12}$

    namestringrequired

    The name of the cancellation reason.

    objectstringrequired

    String representing the object's type.

    Possible values: [cancellation_reason]

    sort_orderintegerrequired

    The sort order of the cancellation reason.

    custom_reason_textstringnullablerequired

    Custom reason text for the cancellation.

    initiated_bystringrequired

    The entity that initiated the cancellation.

    Possible values: [user, client]

    objectstringrequired

    Possible values: [cancellation_event]

    occurred_atdatetimerequired

    The time at which the cancellation occurred (ISO-8601 format).

    sourcestringrequired

    The source of the cancellation event.

    Possible values: [client_ui, dashboard, api, public_api]

  • ]
  • client objectrequired

    This is an object representing a client.

    created_atdate-timerequired

    Time at which the object was created.

    emailemailnullable

    The client's email address. This field will be null unless include_sensitive is true.

    fields objectnullable

    Custom field values for this client as a map of field key to value. Sensitive field values will be null unless include_sensitive is true.

    property name*anynullable

    Custom field values for this client as a map of field key to value. Sensitive field values will be null unless include_sensitive is true.

    first_namestringnullable

    The client's first name. This field will be null unless include_sensitive is true.

    idstringrequired

    Unique identifier for the object.

    Possible values: Value must match regular expression ^clnt_\w{12}$

    last_namestringnullable

    The client's last name. This field will be null unless include_sensitive is true.

    localestringrequired

    The locale of the client.

    Example: en-US
    metadata object

    Set of key-value pairs attached to this client. Maximum size is 16 KB.

    property name*any

    Set of key-value pairs attached to this client. Maximum size is 16 KB.

    objectstringrequired

    String representing the object's type.

    Possible values: [client]

    phonestringnullable

    The client's phone number (E.164 format). This field will be null unless include_sensitive is true.

    reference_idstringnullablerequired

    External reference identifier for the client.

    time_zonestringrequired

    The client's time zone (IANA format).

    Example: America/Chicago
    updated_atdate-timerequired

    Time at which the object was last updated.

    client_data objectrequired

    Client data provided while creating the appointment. Some fields will be null unless include_sensitive is true.

    emailemailnullable

    The client's email address. This field will be null unless include_sensitive is true.

    fields objectrequired

    A map of custom field values set on the client, keyed by field slug. Values for fields marked as sensitive will be null unless include_sensitive is true.

    property name*any

    A map of custom field values set on the client, keyed by field slug. Values for fields marked as sensitive will be null unless include_sensitive is true.

    first_namestringnullable

    The client's first name. This field will be null unless include_sensitive is true.

    last_namestringnullable

    The client's last name. This field will be null unless include_sensitive is true.

    localestringnullablerequired

    The locale of the client booking the appointment.

    Example: en-US
    phonestringnullable

    The client's phone number (E.164 format). This field will be null unless include_sensitive is true.

    reference_idstringnullablerequired

    The client's external reference identifier.

    time_zonestringrequired

    The client's time zone (IANA format).

    Example: America/Chicago
    confirm_urlurirequired

    Canonical URL for the client to confirm this appointment. Resolves to the account's active custom domain when configured, otherwise the canonical app host. The host portion may change if the account changes its custom-domain configuration.

    confirmation_events object[]required
  • Array [
  • actorstringnullablerequired

    The actor that initiated the confirmation (user ID or bearer token ID).

    end_at objectrequired

    An object describing a date/time in local time and in UTC.

    localdate-timerequired

    The local date/time in ISO-8601 format, including the UTC offset (e.g., 2025-03-01T10:00:00-05:00).

    Example: 2025-03-01T10:00:00-05:00
    objectstringrequired

    String representing the object's type.

    Possible values: [zoned_date_time]

    time_zonestringrequired

    The time zone of the local time (IANA format).

    Example: America/New_York
    unix_tsintegerrequired

    The UTC date/time in Unix timestamp format (seconds).

    Example: 1736461200
    utcdate-timerequired

    The UTC date/time in ISO-8601 format (with time zone information).

    Example: 2025-03-01T03:00:00Z
    initiated_bystringrequired

    The entity that initiated the confirmation.

    Possible values: [user, client]

    objectstringrequired

    Possible values: [confirmation_event]

    occurred_atdatetimerequired

    The time at which the confirmation occurred (ISO-8601 format).

    sourcestringrequired

    The source of the confirmation event.

    Possible values: [client_ui, dashboard, api, public_api]

    start_at objectrequired

    An object describing a date/time in local time and in UTC.

    localdate-timerequired

    The local date/time in ISO-8601 format, including the UTC offset (e.g., 2025-03-01T10:00:00-05:00).

    Example: 2025-03-01T10:00:00-05:00
    objectstringrequired

    String representing the object's type.

    Possible values: [zoned_date_time]

    time_zonestringrequired

    The time zone of the local time (IANA format).

    Example: America/New_York
    unix_tsintegerrequired

    The UTC date/time in Unix timestamp format (seconds).

    Example: 1736461200
    utcdate-timerequired

    The UTC date/time in ISO-8601 format (with time zone information).

    Example: 2025-03-01T03:00:00Z
  • ]
  • confirmed_atdate-timenullablerequired

    Time at which the object was confirmed.

    created_atdate-timerequired

    Time at which the object was created.

    end_at objectrequired

    An object describing a date/time in local time and in UTC.

    localdate-timerequired

    The local date/time in ISO-8601 format, including the UTC offset (e.g., 2025-03-01T10:00:00-05:00).

    Example: 2025-03-01T10:00:00-05:00
    objectstringrequired

    String representing the object's type.

    Possible values: [zoned_date_time]

    time_zonestringrequired

    The time zone of the local time (IANA format).

    Example: America/New_York
    unix_tsintegerrequired

    The UTC date/time in Unix timestamp format (seconds).

    Example: 1736461200
    utcdate-timerequired

    The UTC date/time in ISO-8601 format (with time zone information).

    Example: 2025-03-01T03:00:00Z
    ics_urlurirequired

    Canonical URL for the client to download an iCal file for this appointment. Resolves to the account's active custom domain when configured, otherwise the canonical app host. The host portion may change if the account changes its custom-domain configuration.

    idstringrequired

    Unique identifier for the object.

    Possible values: Value must match regular expression ^appt_\w{12}$

    join_urlurirequired

    Canonical URL for the client to join this appointment. Resolves to the account's active custom domain when configured, otherwise the canonical app host. The host portion may change if the account changes its custom-domain configuration.

    meeting objectnullablerequired

    Conferencing meeting details. Null when no conferencing was configured for this appointment.

    anyOf
    conferencing_providerstringnullablerequired

    The conferencing provider for the meeting.

    Example: zoom_admin
    error_messagestringnullablerequired

    The most-recent failure reason, if the meeting is in a failed state.

    external_meeting_idstringnullablerequired

    The provider's identifier for the meeting.

    Example: 82912345678
    host_urlurinullablerequired

    Proxy URL the host follows to start the meeting. Treat as a credential — anyone with this URL can start the meeting as host. Valid through the appointment's end time + 24h grace window, then returns 410 Gone. Generally stable, but may change across appointment.meeting.updated events (e.g., if SavvyCal rotates the token) and always changes when the meeting is replaced (appointment.meeting.replaced). Null when the meeting is not created or when the conferencing provider has no distinct host start URL.

    idstringrequired

    Unique identifier for the object.

    Possible values: Value must match regular expression ^amtg_\w{12}$

    join_urlurinullablerequired

    The URL attendees use to join the meeting.

    objectstringrequired

    String representing the object's type.

    Possible values: [appointment_meeting]

    passwordstringnullablerequired

    The meeting password, if any.

    statusstringrequired

    The current state of the meeting. Lifecycle:

    • pending — meeting creation has not yet been attempted
    • created — meeting was successfully created with the conferencing provider
    • failed — most-recent attempt failed; see error_message for details
    • skipped — meeting creation was skipped (no conferencing configured)
    • update_pending — meeting update is pending after a reschedule
    • cancel_pending — meeting cancellation is pending after appointment cancel
    • canceled — meeting was successfully canceled with the conferencing provider

    Possible values: [pending, created, failed, skipped, update_pending, cancel_pending, canceled]

    objectstringrequired

    String representing the object's type.

    Possible values: [appointment]

    provider objectrequired

    A provider represents a staff member who can provide services to clients.

    created_atdate-timerequired

    Time at which the object was created.

    display_namestringrequired

    The provider's display name.

    first_namestringrequired

    The provider's first name.

    idstringrequired

    Unique identifier for the object.

    Possible values: Value must match regular expression ^prov_\w{12}$

    last_namestringrequired

    The provider's last name.

    metadata object

    Set of key-value pairs attached to this provider. Maximum size is 16 KB.

    property name*any

    Set of key-value pairs attached to this provider. Maximum size is 16 KB.

    objectstringrequired

    String representing the object's type.

    Possible values: [provider]

    time_zonestringrequired

    The provider's preferred IANA time zone, used as the default when authoring schedules.

    updated_atdate-timerequired

    Time at which the object was last updated.

    providers object[]required

    All providers on this appointment. The primary provider is always listed first.

  • Array [
  • created_atdate-timerequired

    Time at which the object was created.

    display_namestringrequired

    The provider's display name.

    first_namestringrequired

    The provider's first name.

    idstringrequired

    Unique identifier for the object.

    Possible values: Value must match regular expression ^prov_\w{12}$

    last_namestringrequired

    The provider's last name.

    metadata object

    Set of key-value pairs attached to this provider. Maximum size is 16 KB.

    property name*any

    Set of key-value pairs attached to this provider. Maximum size is 16 KB.

    objectstringrequired

    String representing the object's type.

    Possible values: [provider]

    rolestringrequired

    The provider's role on the appointment. The primary provider is the anchor whose infrastructure drives conferencing, calendar sync, and notifications.

    Possible values: [primary, secondary]

    time_zonestringrequired

    The provider's preferred IANA time zone, used as the default when authoring schedules.

    updated_atdate-timerequired

    Time at which the object was last updated.

  • ]
  • reschedule_events object[]required
  • Array [
  • actorstringnullablerequired
    initiated_bystringrequired

    Possible values: [user, client]

    new_end_at objectrequired

    An object describing a date/time in local time and in UTC.

    localdate-timerequired

    The local date/time in ISO-8601 format, including the UTC offset (e.g., 2025-03-01T10:00:00-05:00).

    Example: 2025-03-01T10:00:00-05:00
    objectstringrequired

    String representing the object's type.

    Possible values: [zoned_date_time]

    time_zonestringrequired

    The time zone of the local time (IANA format).

    Example: America/New_York
    unix_tsintegerrequired

    The UTC date/time in Unix timestamp format (seconds).

    Example: 1736461200
    utcdate-timerequired

    The UTC date/time in ISO-8601 format (with time zone information).

    Example: 2025-03-01T03:00:00Z
    new_start_at objectrequired

    An object describing a date/time in local time and in UTC.

    localdate-timerequired

    The local date/time in ISO-8601 format, including the UTC offset (e.g., 2025-03-01T10:00:00-05:00).

    Example: 2025-03-01T10:00:00-05:00
    objectstringrequired

    String representing the object's type.

    Possible values: [zoned_date_time]

    time_zonestringrequired

    The time zone of the local time (IANA format).

    Example: America/New_York
    unix_tsintegerrequired

    The UTC date/time in Unix timestamp format (seconds).

    Example: 1736461200
    utcdate-timerequired

    The UTC date/time in ISO-8601 format (with time zone information).

    Example: 2025-03-01T03:00:00Z
    objectstringrequired

    Possible values: [reschedule_event]

    occurred_atdatetimerequired

    The time at which the reschedule occurred (ISO-8601 format).

    previous_end_at objectrequired

    An object describing a date/time in local time and in UTC.

    localdate-timerequired

    The local date/time in ISO-8601 format, including the UTC offset (e.g., 2025-03-01T10:00:00-05:00).

    Example: 2025-03-01T10:00:00-05:00
    objectstringrequired

    String representing the object's type.

    Possible values: [zoned_date_time]

    time_zonestringrequired

    The time zone of the local time (IANA format).

    Example: America/New_York
    unix_tsintegerrequired

    The UTC date/time in Unix timestamp format (seconds).

    Example: 1736461200
    utcdate-timerequired

    The UTC date/time in ISO-8601 format (with time zone information).

    Example: 2025-03-01T03:00:00Z
    previous_start_at objectrequired

    An object describing a date/time in local time and in UTC.

    localdate-timerequired

    The local date/time in ISO-8601 format, including the UTC offset (e.g., 2025-03-01T10:00:00-05:00).

    Example: 2025-03-01T10:00:00-05:00
    objectstringrequired

    String representing the object's type.

    Possible values: [zoned_date_time]

    time_zonestringrequired

    The time zone of the local time (IANA format).

    Example: America/New_York
    unix_tsintegerrequired

    The UTC date/time in Unix timestamp format (seconds).

    Example: 1736461200
    utcdate-timerequired

    The UTC date/time in ISO-8601 format (with time zone information).

    Example: 2025-03-01T03:00:00Z
    sourcestringrequired

    Possible values: [client_ui, dashboard, api, public_api]

  • ]
  • reschedule_urlurirequired

    Canonical URL for the client to reschedule this appointment. Resolves to the account's active custom domain when configured, otherwise the canonical app host. The host portion may change if the account changes its custom-domain configuration.

    service objectrequired

    A service represents a type of appointment.

    appointment_typestringrequired

    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.

    enabledbooleanrequired

    Whether advance notice is enabled.

    minimum_durationstringnullablerequired

    The minimum duration of advance notice.

    Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$

    allow_bookingbooleanrequired

    Whether public booking is allowed for the service.

    disabled_messagestringnullablerequired

    The message to display when public booking is disabled.

    hold objectrequired

    A policy for temporarily reserving a slot during the multi-step booking flow.

    durationstringnullablerequired

    The duration of the hold.

    Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$

    enabledbooleanrequired

    Whether slot holds are enabled for the service.

    maximize_utilization objectrequired

    Avoid presenting overlapping time slots for service providers to eliminate gaps in the schedule.

    enabledbooleanrequired

    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.

    enabledbooleanrequired

    Whether advance notice is enabled.

    minimum_durationstringnullablerequired

    The minimum duration of advance notice.

    Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$

    allow_cancellationbooleanrequired

    Whether public cancellation is allowed for the service.

    disabled_messagestringnullablerequired

    The message to display when public cancellation is disabled.

    change_policy_textstringrequired

    Displayed to clients in follow-up communication. Use this to explain any important rules about cancellations or rescheduling.

    Example: Appointments within 48 hours cannot be canceled or rescheduled online. Please call our office.
    created_atdatetimerequired

    When the service was created.

    durationstringrequired

    The duration of time slots in ISO-8601 duration format.

    Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$

    Example: `PT30M`
    forms object[]nullable

    Forms attached to this service.

  • Array [
  • created_atdatetimerequired

    When the service form was created.

    form_idstringrequired

    The ID of the attached form.

    Possible values: Value must match regular expression ^frm_\w{12}$

    form_namestringrequired

    The name of the attached form.

    idstringrequired

    Unique identifier for the service form.

    Possible values: Value must match regular expression ^sf_\w{12}$

    objectstringrequired

    String representing the object's type.

    Possible values: [service_form]

    sort_orderintegerrequired

    Display order of the form within the service.

    updated_atdatetimerequired

    When the service form was last updated.

  • ]
  • idstringrequired

    Unique identifier for the object.

    Possible values: Value must match regular expression ^srv_\w{12}$

    internal_namestringnullable

    An optional internal label for admin use. When set, this is displayed in the admin UI instead of the public name.

    metadata objectrequired

    Set of key-value pairs attached to this service. Maximum size is 16 KB.

    property name*any

    Set of key-value pairs attached to this service. Maximum size is 16 KB.

    namestringrequired

    The name of the service.

    objectstringrequired

    String representing the object's type.

    Possible values: [service]

    provider_notifications objectrequired

    Configuration for staff notification emails on a service, including which notification types are enabled and who receives them.

    additional_recipientsemail[]required

    Additional email addresses that receive staff notification emails for this service.

    notify_providerbooleanrequired

    Whether the assigned provider receives notification emails for this service.

    types object[]required

    Array of enabled staff notification types for the service.

  • Array [
  • typestringrequired

    The notification type.

    Possible values: [new_appointment, rescheduled, canceled]

  • ]
  • 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.

    enabledbooleanrequired

    Whether advance notice is enabled.

    minimum_durationstringnullablerequired

    The minimum duration of advance notice.

    Possible values: Value must match regular expression ^PT(?:(\d+)H)?(?:(\d+)M)?$

    allow_reschedulingbooleanrequired

    Whether public rescheduling is allowed for the service.

    disabled_messagestringnullablerequired

    The message to display when public rescheduling is disabled.

    slot_rules object[]required

    Array of slot rules for the service.

  • Array [
  • 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.

    bydaystring[]

    The days of the week on which the recurrence occurs.

    Possible values: Value must match regular expression (mo|tu|we|th|fr|sa|su)$

    Example: ["mo","we","fr"]
    countintegernullable

    Number of occurrences at which to end the recurrence.

    Possible values: >= 1

    freqstringrequired

    The frequency of the recurrence.

    Possible values: [daily, weekly]

    intervalinteger

    How often the recurrence rule repeats.

    Possible values: >= 1

    Example: 2
    untildatenullable

    Date at which to end the recurrence (in ISO-8601 format).

    Example: 2024-01-02
    start_timesstring[]required

    Array of start times for slots.

    Possible values: Value must match regular expression ^\d{2}:\d{2}$

  • ]
  • updated_atdatetimerequired

    When the service was last updated.

    start_at objectrequired

    An object describing a date/time in local time and in UTC.

    localdate-timerequired

    The local date/time in ISO-8601 format, including the UTC offset (e.g., 2025-03-01T10:00:00-05:00).

    Example: 2025-03-01T10:00:00-05:00
    objectstringrequired

    String representing the object's type.

    Possible values: [zoned_date_time]

    time_zonestringrequired

    The time zone of the local time (IANA format).

    Example: America/New_York
    unix_tsintegerrequired

    The UTC date/time in Unix timestamp format (seconds).

    Example: 1736461200
    utcdate-timerequired

    The UTC date/time in ISO-8601 format (with time zone information).

    Example: 2025-03-01T03:00:00Z
    statusstringrequired

    The status of the appointment.

    Possible values: [scheduled, canceled]

    updated_atdate-time

    Time at which the object was last updated.

    urls objectrequireddeprecated

    Deprecated nested URL collections for this appointment. Use the flat *_url fields instead.

    add_to_calendaruri[]required
    add_to_google_calendaruri[]required
    canceluri[]required
    confirmuri[]required
    icsuri[]required
    joinuri[]required
    rescheduleuri[]required
    typestringrequired

    The event type.

    Possible values: [appointment.meeting.replace_failed]

    AppointmentMeetingReplaceFailedEventData
    {
    "object": {
    "add_to_calendar_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/add_to_calendar",
    "appointment_type": "in_person",
    "cancel_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/cancel",
    "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",
    "metadata": {
    "external_id": "123"
    },
    "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",
    "fields": {
    "age": 30
    },
    "first_name": "Jane",
    "last_name": "Smith",
    "locale": "en-US",
    "phone": "+15551234567",
    "reference_id": "ext_12345",
    "time_zone": "America/Chicago"
    },
    "confirm_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/confirm",
    "confirmation_events": [
    {
    "actor": null,
    "end_at": {
    "local": "2023-01-01T01:00:00-05: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-05: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-05:00",
    "object": "zoned_date_time",
    "time_zone": "America/New_York",
    "unix_ts": 1736464800,
    "utc": "2025-03-01T04:00:00Z"
    },
    "ics_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/ics",
    "id": "appt_a1b2c3d4e5f6",
    "join_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/join",
    "meeting": {
    "conferencing_provider": "zoom_admin",
    "error_message": null,
    "external_meeting_id": "82912345678",
    "host_url": "https://book.acme.com/p/appointments/appt_a1b2c3d4e5f6/host?token=An5thqO6Li9Dy9WXe3IsJQYDEXGjS70GjQIdNntKZgw",
    "id": "amtg_a1b2c3d4e5f6",
    "join_url": "https://zoom.us/j/82912345678",
    "object": "appointment_meeting",
    "password": "abc123",
    "status": "created"
    },
    "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",
    "time_zone": "America/New_York",
    "updated_at": "2017-09-13T10:11:12Z"
    },
    "providers": [
    {
    "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",
    "role": "primary",
    "time_zone": "America/New_York",
    "updated_at": "2017-09-13T10:11:12Z"
    }
    ],
    "reschedule_events": [
    {
    "actor": null,
    "initiated_by": "client",
    "new_end_at": {
    "local": "2023-01-01T01:00:00-05: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-05: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-05: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-05:00",
    "object": "zoned_date_time",
    "time_zone": "America/New_York",
    "unix_ts": 1736461200,
    "utc": "2023-01-01T03:00:00Z"
    },
    "source": "client_ui"
    }
    ],
    "reschedule_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/reschedule",
    "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.",
    "hold": {
    "duration": "PT10M",
    "enabled": true
    },
    "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",
    "forms": [
    {
    "created_at": "2025-02-17T17:49:19Z",
    "form_id": "frm_d025a96ac0c6",
    "form_name": "Intake Form",
    "id": "sf_d025a96ac0c6",
    "object": "service_form",
    "sort_order": 1,
    "updated_at": "2025-02-17T17:49:19Z"
    }
    ],
    "id": "srv_d025a96ac0c6",
    "internal_name": null,
    "metadata": {
    "external_id": "123"
    },
    "name": "Initial Consult",
    "object": "service",
    "provider_notifications": {
    "additional_recipients": [
    "admin@example.com"
    ],
    "notify_provider": true,
    "types": [
    {
    "type": "new_appointment"
    }
    ]
    },
    "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-05: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_calendar": [
    "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/add_to_calendar"
    ],
    "add_to_google_calendar": [
    "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/add_to_google_calendar"
    ],
    "cancel": [
    "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/cancel"
    ],
    "confirm": [
    "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/confirm"
    ],
    "ics": [
    "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/ics"
    ],
    "join": [
    "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/join"
    ],
    "reschedule": [
    "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/reschedule"
    ]
    }
    },
    "type": "appointment.meeting.replace_failed"
    }