Skip to main content

Service

A service represents a service offering that clients can book with a provider.

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.

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_atstring<datetime>required

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`
idstringrequired

Unique identifier for the object.

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

namestringrequired

The name of the service.

objectstringrequired

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.

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_atstring<datetime>required

    When the service was last updated.

    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"
    }