Appointments
Update Appointment
Update an appointment you own by its ID
POST
Overview
Updates an existing appointment. Access is owner-only: the appointment’sdoctor_id must match the caller, otherwise a 403 Forbidden is returned.
Ownership cannot be changed — any doctor_id sent in the body is ignored.
Most fields use a fallback assignment (
value || existing), so sending an
empty or falsy value does not overwrite the current value — for example
notes cannot be cleared with "". Only room, error_reason and
doctor_note can be explicitly cleared.Authentication
Bearer token for authenticated access.
Path Parameters
Appointment ObjectId to update. Owner-only.
Body Parameters
New title. A falsy value is ignored.
New date. Blocked with
409 on externally-synced appointments.New time. Blocked with
409 on externally-synced appointments.Duration in minutes,
5–480; otherwise 400. Blocked with 409 on
externally-synced appointments.Recording lifecycle status. Status transitions are timestamped internally.
Failure reason. Unlike most fields, this can be explicitly cleared to
null
or an empty string.Recording id. A falsy value is ignored.
Recording URL. A falsy value is ignored.
Recording storage key. A falsy value is ignored.
Private clinical notes. A falsy value is ignored (cannot be cleared with
"").Language code. A falsy value is ignored.
Notes template key. A falsy value is ignored.
Appointment type. A falsy value is ignored.
Room / location label. An empty string clears it to
null. Independent of the
external-readonly guard.Patient-facing note. Only applied when the appointment already has a booking.
Response
Whether the request succeeded.
The updated appointment object (same shape as
Get Appointment).
Additional fields may appear on the appointment object. Treat any field not
documented here as opaque.
Example Request
Example Response
Error Responses
EXTERNAL_APPOINTMENT_READONLY is returned when the appointment was
synced from an external booking system and the request tries to change its
date, time or duration_minutes. 403 Forbidden is returned when the
appointment is owned by a different doctor. A missing or invalid Bearer token
returns 401 with a message key.