Skip to main content

API Changelog

A log of notable changes to the SavvyCal Appointments API.

March 5, 2026

March 2, 2026

  • New: -- Services now include an optional internal_name field for setting an internal admin label. When set, this name is displayed in the admin UI instead of the public name. See Service.

March 1, 2026

February 27, 2026

  • New: -- PublicAppointment now includes a urls field containing client-facing action URLs for rescheduling, canceling, adding to calendar, downloading ICS files, and adding to Google Calendar.

February 26, 2026

  • New: -- Error responses now include an optional code field containing a machine-readable error code (e.g. slot_unavailable, no_available_provider). See GenericErrorResponse and JsonErrorResponse.

February 25, 2026

  • Changed: -- The from and until query parameters on the List available time slots and List public time slots endpoints are now optional. from defaults to today if not provided. Either until or limit must be provided.
  • New: -- Added a limit query parameter to the List available time slots and List public time slots endpoints as an alternative to until for controlling the number of aggregated slots returned.
  • New: -- Added webhook events for booking intents: booking_intent.created, booking_intent.updated, booking_intent.completed, and booking_intent.abandoned. See Webhooks.
  • New: -- Booking intent endpoints now accept an auto_assign_provider flag. When true, an available provider is automatically assigned for the selected time slot if no provider_id is specified. Supported on create, update, and complete operations for both authenticated and public booking intents.

February 24, 2026

  • New: Booking Intents -- Added 6 authenticated endpoints under /v1/booking_intents and 5 public endpoints under /v1/public/booking_intents for managing multi-step booking flows with time slot holding. See Booking Intents and Public Booking Intents.
  • New: Hold Policy -- Services now include a hold field within booking_policy for configuring time slot holds during the booking flow. See HoldPolicy and BookingPolicy.
  • New: Booking Intent schemas -- Added BookingIntent, PublicBookingIntent, HoldPolicy, and related request/response types.