Appointments

Get an Appointment

Changed on

Retrieve detailed appointment information using its unique identifier

get/api/2026-01-01/appointments/{appointment_id}

Request

  • Base URL
    https://jdpdocsdemo.jane.qa
  • URL
    https://jdpdocsdemo.jane.qa/api/2026-01-01/appointments/{appointment_id}
  • Auth
    OAuth 2
    Authorization code: https://login.id.janeapp.com/realms/jane_partner_sandbox/protocol/openid-connect/auth?response_type=code&resource=https://jdpdocsdemo.jane.qa&prompt=consent
    Token URL: https://login.id.janeapp.com/realms/jane_partner_sandbox/protocol/openid-connect/token scopes: appointments:read

Path parameters

appointment_idstring uuid required

The ID of the appointment

Query parameters

_includestring
Example:patient,treatment,participants,room

Comma-separated list of related resources to sideload alongside the appointment.

Note: this parameter is currently consumed only by Jane's internal Companion app and is not yet part of the stable public contract. The shape and supported values may change without a CalVer version bump while we iterate.

When provided, the response includes a top-level included array of deduplicated resources in a JSON:API-inspired { type, id, attributes } shape.

Supported values:

  • patient -- exposes first_name, last_name, preferred_name. Requires the patients:read scope.
  • treatment -- exposes name. Requires the treatments:read scope.
  • participants -- for a group/class booking, populates the appointment's inline participants array (patient_id, state, arrived_at, no_show_at, cancelled_at). Requires the appointments:read scope (no extra scope beyond the appointment itself). Unlike patient/treatment, participants render inline on the appointment rather than in the top-level included array, because they have no standalone identity.
  • room -- exposes name. Requires the rooms:read scope.

If the token lacks the required scope for a requested resource, the API returns 403 with a message naming the missing scope. (The parent payload already exposes the related resource's ID, so there is no existence-leak concern.) Unknown values return 400 with the list of allowed values.

Example: _include=patient,treatment,participants,room

Response

The appointment

idstring uuid required
start_atstring date-time
end_atstring date-time
staff_member_idstring uuid
patient_idstring uuid nullable

The billing/primary patient. Present for one-on-one and group bookings; null for class bookings (which have participants instead of a single patient).

location_idstring uuid
treatment_idstring uuid
room_idstring uuid nullable
first_visitboolean
cancelled_atstring date-time nullable
cancelled_reasonstring nullable

The reason the appointment was cancelled. Free-text reasons entered by staff are mapped to 'Other' to prevent exposure of potentially sensitive information; only predefined reasons are returned as-is.

booked_atstring date-time
no_show_atstring date-time nullable
arrived_atstring date-time nullable
archived_atstring date-time nullable
checked_in_atstring date-time nullable
state'reserved' | 'booked' | 'arrived' | 'no_show' | 'cancelled' | 'archived'

The current state of the appointment.

booking_type'one_on_one' | 'group' | 'class' | 'null' nullable

The kind of booking. one_on_one is a single-patient appointment; group and class are multi-participant bookings (see participants). May be null for reserved appointments that have no treatment yet.

capacityinteger

Maximum number of participants for the appointment's treatment. 1 for one-on-one bookings.

participant_countinteger

Current number of active (non-cancelled, non-archived) participants.

Changes

    • breaking

      the response's body type changed from object to no type for status

    • breaking

      removed the required property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • info

      added the new optional query request parameter _include

    • info

      added subschema #2 to the response body allOf list for the response status

    • info

      added the non-success response with the status