Skip to main content
PATCH
Update an appointment
Use the Cobalt id in the URL path. The {id} parameter should be the Cobalt appointment ID returned from API responses or GET endpoints, not the EHR ID.
The update process differs based on the current status of the appointment:

1. Updating Pending or Failed Appointments

For appointments with a status of ‘pending’ or ‘failed’, you can update any attribute of the appointment.

2. Updating Scheduled Appointments

For appointments with a status of ‘scheduled’, you can update the status, note, or visit type.
Rescheduling (changing date/time): a Scheduled appointment’s date/time cannot be edited in place. To reschedule, follow the standard flow clinics use to keep cancellations tracked: PATCH the existing appointment’s status to a cancelled status (from GET /visit-statuses), then create a new appointment at the new time with POST /v1/appointments.

Example Request for Updating a Pending/Failed Appointment

Example Response

Authorizations

client_id
string
header
required
client_secret
string
header
required
access_token
string
header
required

Path Parameters

id
string
required

Cobalt appointment ID (UUID, with or without dashes).

Example:

"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

Body

application/json
status
string

New appointment status. Validated against the account's visit statuses.

Example:

"cancelled"

note
string

Replacement appointment note.

Example:

"Purpose of visit: Annual checkup"

cancellation_reason
string

Reason for a cancel / no-show / reschedule. Must accompany a status change to Cancelled, Rescheduled, or No Show, and must match one of the practice's configured reasons (eClinicalWorks only).

Example:

"Patient Illness"

confirmation_method
string

Confirmation method code, passed through to PracticeFusion as-is. Must accompany a status change to Confirmed (PracticeFusion only).

Example:

"LPV"

type
string

New visit type code. On a scheduled appointment, eClinicalWorks only.

Example:

"NP"

duration

New duration in minutes. On a scheduled appointment, updatable only together with type (eClinicalWorks only).

Example:

"30"

skip_visit_type_validation
enum<string>

Skip visit-type validation on a type update (eClinicalWorks only).

Available options:
true,
false
Example:

"false"

skip_confidential_charts
enum<string>

Fail the update instead of applying it when the patient chart is confidential (restricted) for the connected user. Must accompany another update field (eClinicalWorks only).

Available options:
true,
false
Example:

"false"

provider
string

New rendering provider EMR ID. On a scheduled appointment, eClinicalWorks only.

Example:

"provider-123"

secondary_provider
string

New secondary provider / resource EMR ID. On a scheduled appointment, eClinicalWorks only.

Example:

"provider-456"

practice_id

eClinicalWorks practice ID.

Example:

"practice-1"

mrn
string

Patient MRN (retry of a failed appointment only).

Example:

"12345"

datetime
string<date-time>

New appointment datetime, ISO 8601 (retry of a failed appointment only).

Example:

"2026-06-15T14:30:00-07:00"

callback_urls

URL(s) to receive the completion webhook for this update.

Example:
expires_at
string<date-time> | null

Optional ISO 8601 timestamp with an explicit timezone offset, in the future when submitted. Cobalt starts no new operation attempt after this deadline and reports reasons[].code EXPIRED. An attempt already in progress, including write reconciliation, may finish after it.

Example:

"2027-06-15T14:30:00Z"

Response

Appointment update queued

success
boolean
required
Example:

true

message
string
required
Example:

"Appointment update queued"

appointment_id
string
required
Example:

"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

job_id
integer
Example:

12345