# RescheduleAppointmentRequest

Model ID: `RescheduleAppointmentRequest`

Request body for POST /appointments/{appointment_id}/reschedule.

Vendor-integrated tenants pick the new slot from `appointments.listSlots`
the same way they did for `appointments.book` — the per-vendor fields
carry the same meaning they do on `BookAppointmentRequest`, taken from
the chosen new slot's DTO.

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 NEW open slot being moved to, taken from the `athena_appointment_id` of the chosen `appointments.listSlots` result. Required when rescheduling on an Athena-integrated tenant; ignored otherwise. |
| `reason` | `string|null` | No |  |  |  | Yes | Optional free-text reason for the reschedule, recorded in logs and vendor notes where supported. |
| `slot_id` | `string` | Yes |  |  |  | No | FHIR Slot resource ID of the new free slot returned by `appointments.listSlots`. Always send the chosen slot's `slot_id`, matching `appointments.book`'s contract. It is only acted upon on a FHIR-only tenant; vendor-integrated tenants read the vendor fields below instead. |
| `start` | `string|null` | No | date-time |  |  | Yes | ISO 8601 start of the new slot, taken from the `start` of the chosen `appointments.listSlots` result. Required when rescheduling on an OpenLoop- or SteadyMD-integrated tenant; ignored otherwise. |
| `steadymd_clinician_guid` | `string|null` | No |  |  |  | Yes | SteadyMD clinician guid of the new slot, taken from the `steadymd_clinician_guid` of the chosen `appointments.listSlots` result. Required when rescheduling on a SteadyMD-integrated tenant; ignored otherwise. |

## Example

None declared in canonical OpenAPI.
