Practitioners

Update a practitioner appointment restriction

Replaces an existing PractitionerAppointmentRestriction. The server validates the same shape as on create, so type and applies_to_type are required and the conditional fields (appointment_type_ids, category_ids, max_duration) must be sent based on those values.

Requires the SETTINGS_MANAGE permission on the practitioner's site.

put/shop/practitioners/{practitionerId}/appointment-restrictions/{appointmentRestrictionId}

Request body

type'cannot_offer' | 'max_duration' required

The kind of restriction. See create for semantics.

applies_to_type'specific' | 'categories' required

How the restriction picks which appointment types it applies to.

appointment_type_idsstring[]

Required when applies_to_type is specific; prohibited when it is categories.

category_idsstring[]

Required when applies_to_type is categories; prohibited when it is specific.

date_fromstring date nullable

First date the restriction takes effect (inclusive). null clears the start date.

date_tostring date nullable

Last date the restriction takes effect (inclusive). null clears the end date.

max_durationinteger

Required when type is max_duration.

Example request

{
  "type": "max_duration",
  "applies_to_type": "categories",
  "category_ids": [
    "5e932c0901d210625e3a8766"
  ],
  "date_from": "2026-06-01",
  "date_to": "2026-08-31",
  "max_duration": 90
}

Response

A single PractitionerAppointmentRestriction.

Example response

{
  "data": {
    "type": "cannot_offer",
    "applies_to_type": "specific",
    "appointment_types": [
      {
        "name": "Deep Tissue Massage"
      }
    ],
    "categories": [
      {
        "name": "Massages"
      }
    ],
    "date_from": "2026-06-01",
    "date_to": "2026-08-31",
    "max_duration": 60,
    "occupied_mins": 30
  }
}

Changes

No recorded changes to this endpoint across all 1 revision of this API.