# BookAppointmentRequest

Model ID: `BookAppointmentRequest`

Request body for POST /appointments/book.

Type: `object`

## Fields

| Field | Type | Required | Format | Allowed values | Default | Nullable | Description |
|---|---|---:|---|---|---|---:|---|
| `athena_appointment_id` | `string|null` | No |  |  |  | Yes | Athena Health appointment id of the slot being booked, taken from the `athena_appointment_id` of the chosen `appointments.listSlots` result. Required on an Athena-integrated tenant, where the booking is made in Athena against this id (the request is rejected without it); ignored on a FHIR-only tenant, which books against `slot_id`. |
| `patient_id` | `string` | Yes |  |  |  | No | FHIR Patient resource ID for whom the appointment is booked. |
| `slot_id` | `string` | Yes |  |  |  | No | FHIR Slot resource ID returned by `appointments.listSlots`. |
| `start` | `string|null` | No |  |  |  | Yes | ISO 8601 start of the chosen slot, taken from the `start` of the chosen `appointments.listSlots` result. Required on an OpenLoop- or SteadyMD-integrated tenant, neither of which books by a pre-existing slot id; ignored on an Athena-integrated or FHIR-only tenant, which book by `athena_appointment_id`/`slot_id` respectively. |
| `steadymd_clinician_guid` | `string|null` | No |  |  |  | Yes | SteadyMD clinician guid of the slot being booked, taken from the `steadymd_clinician_guid` of the chosen `appointments.listSlots` result. Required on a SteadyMD-integrated tenant, where SteadyMD's own availability has no per-slot id, only a clinician + timestamp. |

## Example

None declared in canonical OpenAPI.
