---
title: "PATCH /api/appointments/{id}"
method: PATCH
path: "/api/appointments/{id}"
tags: ["Clinical"]
---

# PATCH /api/appointments/{id}

`PATCH /api/appointments/{id}`

## Request

- Base URL: `https://app.drchrono.com`
- URL: `https://app.drchrono.com/api/appointments/{id}`
- Auth: OAuth 2
  - Authorization code: `https://app.drchrono.com/o/authorize/`
  - Token URL: `https://app.drchrono.com/o/token/` scopes: `calendar:read`, `calendar:write`, `clinical:read`, `clinical:write`

Update an existing appointment or break

## Path parameters

- `id` string, required

## Request body

- Appointment
  - `status` '' | 'Arrived' | 'Checked In' | 'Checked In Online' | 'In Room' | 'In Session' | 'Complete' | 'Confirmed' | 'Not Confirmed' | 'Rescheduled' | 'Cancelled' | 'No Show': One of ``, `Arrived`, `Checked In`, `In Room`, `Cancelled`, `Complete`, `Confirmed`, `In Session`, `No Show`, `Not Confirmed`, or `Rescheduled`. Or one of the custom statuses.
  - `icd9_codes` string[]
  - `office` integer, required: Office ID
  - `base_recurring_appointment` string: ID of base appointment of a recurring series
  - `color` string
  - `vitals` object: Clinical vitals associated with the appointment
    - `height_units` string
    - `weight_units` string
    - `pain` string: 0-10 pain scale.
    - `temperature` number
    - `weight` number
    - `smoking_status` 'blank' | '449868002' | '428041000124106' | '8517006' | '266919005' | '77176002' | '266927001' | '428071000124103' | '428061000124105'
    - `head_circumference` number
    - `bmi` string
    - `head_circumference_units` string
    - `blood_pressure_2` integer
    - `blood_pressure_1` integer
    - `height` number
    - `pulse` integer: Beats per minute.
    - `oxygen_saturation` number
    - `respiratory_rate` integer: Breathes per minute.
    - `temperature_units` string
  - `first_billed_date` string
  - `last_billed_date` string
  - `billing_status` string: Should be one of `Auto Accident Claim`, `Balance Due`, `Bill Insurance`, `Bill Secondary Insurance`, `Durable Medical Equipment Claim`, `Internal Review`, `Paid In Full`, `Settled`, `Worker's Comp Claim` or one of the custom billing status
  - `primary_insurer_payer_id` string
  - `duration` integer: Length of the appointment in minutes. Optional if `profile` is provided.
  - `is_membership_appointment` boolean: Whether the appointment is a membership plan charge rather than a real visit. DrChrono creates one future dated placeholder appointment per billing cycle of a patient's membership plan so the charge has something to attach to. They are hidden from the DrChrono calendar and never trigger DrChrono reminders, so appointment reminder integrations should skip them, or pass `exclude_membership=true` to leave them out of the response.
  - `appt_is_break` boolean
  - `id` string: Unique identifier. Usually numeric, but not always
  - `custom_fields` object[]: Custom appointment fields
    - `field_type` integer
    - `created_at` string
    - `updated_at` string
    - `field_value` string
  - `scheduled_time` string, required: The starting time of the appointment
  - `secondary_insurer_name` string
  - `doctor` integer, required: Doctor ID
  - `recur_start_date` string: For recurring appointments, the start date of the recurring series
  - `primary_insurance_id_number` string
  - `created_by` string
  - `ins2_status` '' | 'Incomplete Information' | 'In Process Emdeon' | 'Rejected Emdeon' | 'Rejected EPS' | 'Rejected Jopari' | 'In Process Payor' | 'Rejected Waystar Professional' | 'Rejected Waystar Institutional' | 'In Process Payer' | 'Payer Acknowledged' | 'Rejected Payor' | 'Rejected Payer' | 'Paid in Full' | 'Partially Paid' | 'Coordination of Benefits' | 'ERA Received' | 'ERA Denied' | 'HCFA Form Faxed': Billing status of secondary insurer
  - `first_edi_date` string
  - `billing_notes` object[]: Billing notes of the appointment. For writing, check `/api/claim_billing_notes`
    - `text` string: Content of the note
    - `created_at` string
    - `appointment` integer
    - `id` integer: ID of the billing note
    - `created_by` string
  - `is_walk_in` boolean: Whether the appointment is a walk-in appointment
  - `billing_provider` string
  - `reminder_profile` string: Write-only. ID of an `/api/reminder_profiles` instance. Set this to apply a reminder profile to the appointment. Cannot be applied to an appointment with reminders.
  - `primary_insurer_name` string
  - `profile` integer: ID of an `/api/appointment_profiles` instance. The profile sets default values for `color`, `duration`, and `reason` on creation, which can be overriden by setting these values explicitly.
  - `resubmit_claim_original_id` integer: ID of this claim id.
  - `patient` integer, required: ID of this appointment's patient. Breaks have a null patient field.
  - `recurrence_instance_key` string, nullable: A stable identifier for a recurring appointment instance, in the format `{rootSeriesId}_{YYYYMMDD}` where `YYYYMMDD` is the original occurrence date, not the current scheduled date. This value remains consistent across materialization, series splits, and rescheduling, so it should be treated as an opaque identifier rather than a source for display dates. Returns null for non-recurring appointments. Only present when the `consistent_recurrence_id` feature flag is enabled.
  - `cloned_from` integer: ID of the original appointment which this appointment cloned from. Will be null if the appointment is not cloned.
  - `extended_updated_at` string: The most recent update time among appointment itself, its vitals and its custom vitals
  - `exam_room` integer, required: Index of the exam room that this appointment occurs in. See `/api/offices`
  - `updated_at` string
  - `reason` string: Default to `""`
  - `last_edi_date` string
  - `secondary_insurer_payer_id` string
  - `allow_overlapping` boolean: Bypass overlap check.
  - `payment_profile` string: Appointment Payment Profile
  - `secondary_insurance_id_number` string
  - `clinical_note` object: Associated clinical note object
    - `pdf` string
    - `locked` boolean
    - `updated_at` string
  - `custom_vitals` object[]: Custom vitals associated with this appointment.
    - `value` string
    - `vital_type` integer
  - `is_virtual_base` boolean
  - `recurring_appointment` boolean: Whether the appointment is a recurring appointment or not
  - `supervising_provider` string: Supervising provider of appointment if set.
  - `recurring_days` unknown[]: For recurring appointments, the days of the week on which the appointment recurs. Can include Monday, Tuesday, Wednesday, Thursday, Friday, Saturday or Sunday
    - unknown
  - `status_transitions` object[]
    - `appointment` string
    - `to_status` string
    - `from_status` string
    - `datetime` string
  - `created_at` string
  - `reminders` object[]: Scheduled reminders of the appointment
    - `scheduled_time` string
    - `type` 'email' | 'sms' | 'phone' | 'auto_call'
    - `id` integer
  - `ins1_status` '' | 'Incomplete Information' | 'In Process Emdeon' | 'Rejected Emdeon' | 'Rejected EPS' | 'Rejected Jopari' | 'In Process Payor' | 'Rejected Waystar Professional' | 'Rejected Waystar Institutional' | 'In Process Payer' | 'Payer Acknowledged' | 'Rejected Payor' | 'Rejected Payer' | 'Paid in Full' | 'Partially Paid' | 'Coordination of Benefits' | 'ERA Received' | 'ERA Denied' | 'HCFA Form Faxed': Billing status of primary insurer
  - `custom_status` string: AppointmentStatus Name
  - `recur_end_date` string: For recurring appointments, the end date of the recurring series
  - `icd10_codes` string[]
  - `deleted_flag` boolean: Whether the appointment is deleted.
  - `notes` string
  - `recurs_every` integer: For recurring appointments, the number of weeks between recurrences. For example, if this is 2, the appointment recurs every other week.

## Response `204`

No Content

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Permission Denied
- `404`: Not Found
- `409`: Scheduled time overlaps with an existing appointment
- `500`: Internal Server Error

---

[API](https://skmtc.dev/drchrono/apis/drchrono-api.md) - [All operations](https://skmtc.dev/drchrono/apis/drchrono-api/llms.txt) - [OpenAPI document](https://skmtc.dev/drchrono/apis/drchrono-api/revisions/98cabe79d150?raw)
