---
title: "Update Appointment"
method: PUT
path: "/api/2.0/appointments/{id}/"
tags: ["Appointments"]
---

# Update Appointment

`PUT /api/2.0/appointments/{id}/`

## Path parameters

- `id` integer, required

## Request body

- Appointment
  - `appointment_type_id` integer, nullable — The ID of an existing appointment type to assign to the appointment. Provide this instead of 'reason' to reference a specific appointment type rather than matching or creating one by name. If both 'reason' and 'appointment_type_id' are supplied, 'reason' takes precedence.
  - `billing_details` AppointmentBillingDetails
    - `billing_note` string, nullable
    - `prior_authorization` string, nullable
    - `referring_provider` string, nullable
    - `referring_provider_state` string, nullable
  - `created_date` string, date-time, nullable
  - `deleted_date` string, date-time, nullable
  - `description` string, nullable
  - `duration` integer — The duration of the appointment in minutes. If duration is not provided, the default duration will be used given a reason.
  - `id` integer
  - `instructions` string, nullable
  - `is_blocking` boolean
  - `last_modified_date` string, date-time
  - `metadata` object, nullable
    - `data` object
    - `object_id` string
    - `object_web_link` string
  - `mode` 'IN_PERSON' | 'VIDEO'
  - `patient` integer, nullable, required
  - `payment` Payment
    - `amount` string, decimal, required
    - `appointment` integer, nullable
    - `bill` integer, nullable
    - `create_date` string, date-time, nullable
    - `delete_date` string, date-time, nullable
    - `id` integer
    - `when_collected` string, date-time, required
  - `physician` integer, required
  - `practice` integer, required
  - `reason` string, nullable
  - `recurring_event_schedule` integer, nullable
  - `scheduled_date` string, date-time, required
  - `service_location` union — The ID of the service location where the appointment will occur.
    - object
      - `address_line1` string, nullable
      - `address_line2` string, nullable
      - `city` string, nullable
      - `created_date` string, date-time, nullable
      - `deleted_date` string, date-time, nullable
      - `id` integer
      - `is_primary` boolean
      - `name` string
      - `phone` string, nullable
      - `place_of_service` 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 31 | 32 | 33 | 34 | 41 | 42 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 60 | 61 | 62 | 65 | 66 | 71 | 72 | 81 | 99, nullable
      - `state` string, nullable
      - `zip` string, nullable
    - integer
  - `status` AppointmentStatus
    - `room` string, nullable
    - `status` 'Billed' | 'Cancelled' | 'Checked In' | 'Checked Out' | 'Confirmed' | 'In Room' | 'In Room - Vitals Taken' | 'Not Seen' | 'Scheduled' | 'With Doctor', required
    - `status_date` string, date-time, nullable
    - `status_detail` string, nullable
  - `telehealth_details` string, nullable
  - `time_slot_status` union
    - 'not_avail_for_self_schedule'
    - unknown
  - `time_slot_type` 'appointment' | 'appointment_slot' | 'event'
  - `transportation_details` TransportationDetails — Typed API shape for the ``transportation`` attribute, backed by the generic ``AppointmentAttribute`` store. Fields mirror ``TransportationAttr``; that Pydantic schema is the authoritative validator on write (length/format constraints live there, not here, to avoid drift).
    - `is_required` boolean
    - `notes` string, nullable

## Response `200`

- Appointment
  - `appointment_type_id` integer, nullable — The ID of an existing appointment type to assign to the appointment. Provide this instead of 'reason' to reference a specific appointment type rather than matching or creating one by name. If both 'reason' and 'appointment_type_id' are supplied, 'reason' takes precedence.
  - `billing_details` AppointmentBillingDetails
    - `billing_note` string, nullable
    - `prior_authorization` string, nullable
    - `referring_provider` string, nullable
    - `referring_provider_state` string, nullable
  - `created_date` string, date-time, nullable
  - `deleted_date` string, date-time, nullable
  - `description` string, nullable
  - `duration` integer — The duration of the appointment in minutes. If duration is not provided, the default duration will be used given a reason.
  - `id` integer
  - `instructions` string, nullable
  - `is_blocking` boolean
  - `last_modified_date` string, date-time
  - `metadata` object, nullable
    - `data` object
    - `object_id` string
    - `object_web_link` string
  - `mode` 'IN_PERSON' | 'VIDEO'
  - `patient` integer, nullable, required
  - `payment` Payment
    - `amount` string, decimal, required
    - `appointment` integer, nullable
    - `bill` integer, nullable
    - `create_date` string, date-time, nullable
    - `delete_date` string, date-time, nullable
    - `id` integer
    - `when_collected` string, date-time, required
  - `physician` integer, required
  - `practice` integer, required
  - `reason` string, nullable
  - `recurring_event_schedule` integer, nullable
  - `scheduled_date` string, date-time, required
  - `service_location` union — The ID of the service location where the appointment will occur.
    - object
      - `address_line1` string, nullable
      - `address_line2` string, nullable
      - `city` string, nullable
      - `created_date` string, date-time, nullable
      - `deleted_date` string, date-time, nullable
      - `id` integer
      - `is_primary` boolean
      - `name` string
      - `phone` string, nullable
      - `place_of_service` 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 31 | 32 | 33 | 34 | 41 | 42 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 60 | 61 | 62 | 65 | 66 | 71 | 72 | 81 | 99, nullable
      - `state` string, nullable
      - `zip` string, nullable
    - integer
  - `status` AppointmentStatus
    - `room` string, nullable
    - `status` 'Billed' | 'Cancelled' | 'Checked In' | 'Checked Out' | 'Confirmed' | 'In Room' | 'In Room - Vitals Taken' | 'Not Seen' | 'Scheduled' | 'With Doctor', required
    - `status_date` string, date-time, nullable
    - `status_detail` string, nullable
  - `telehealth_details` string, nullable
  - `time_slot_status` union
    - 'not_avail_for_self_schedule'
    - unknown
  - `time_slot_type` 'appointment' | 'appointment_slot' | 'event'
  - `transportation_details` TransportationDetails — Typed API shape for the ``transportation`` attribute, backed by the generic ``AppointmentAttribute`` store. Fields mirror ``TransportationAttr``; that Pydantic schema is the authoritative validator on write (length/format constraints live there, not here, to avoid drift).
    - `is_required` boolean
    - `notes` string, nullable

---

[API](https://skmtc.net/elationhealth/apis/api-authentication.md) · [All operations](https://skmtc.net/elationhealth/apis/api-authentication/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elationhealth/api-authentication/versions/c060f89d4de7/schema)
