API Reference
Appointment Templates

Appointment Templates

Appointment templates define the types of appointments your organisation offers — their names, durations, pricing, and configuration. Templates are configuration objects that change rarely.

Endpoints

MethodEndpointDescription
GET/appointment-templatesList templates
GET/appointment-templates/{id}Retrieve a template
POST/appointment-templatesCreate a template
PATCH/appointment-templates/{id}Update a template
⚠️

Templates that have appointments booked against them cannot be modified. Create a new version instead.

The Template Object

{
  "id": "tmpl_123e4567-e89b-12d3-a456-426614174000",
  "name": "Standard GP Consultation",
  "description": "30-minute consultation with a GP",
  "duration": 30,
  "price": 8500,
  "pricing_type": "stripe",
  "is_active": true,
  "status": "draft",
  "version": 1,
  "allow_online_booking": true,
  "buffer_before_minutes": 5,
  "buffer_after_minutes": 5,
  "created_at": "2025-01-01T00:00:00Z",
  "updated_at": "2025-01-01T00:00:00Z"
}

List Templates

GET /appointment-templates

Query Parameters

ParameterTypeDescription
limit / offsetintegerPagination (default 20)
statusstringFilter by status
status_instringFilter by multiple statuses (comma-separated)
is_activestringFilter by active/inactive
created_at_gte / created_at_ltestringDate range filter

Create a Template

POST /appointment-templates

Required Fields

FieldTypeDescription
namestringTemplate name

Optional Fields

FieldTypeValidation
durationintegerDuration in minutes
priceintegerPrice in smallest currency unit (pence)
pricing_typestringfree, stripe, or xero

Templates are created with version: 1 and status: "draft" automatically.


Related Resources