Create Appointments
Creates a new appointment for a patient.
Provider and Location IDs
When creating appointments, use theehr_id values from your providers and locations:
provider: Use theehr_idfromGET /v1/providers(not theid)location: Use theehr_idfromGET /v1/locations(not theid)secondary_provider: Use theehr_idfromGET /v1/providers(not theid)
id here. The id field from GET responses is Cobalt’s internal UUID, used only for updating provider/location settings via PATCH endpoints.Date and Time Formats
You have two options for specifying the appointment date and time:Option 1: ISO 8601 Format (Recommended)
Use thedatetime parameter with full ISO 8601 timestamp including timezone:
YYYY-MM-DDTHH:mm:ss±HH:MM (24-hour time with timezone offset)
Option 2: Separate Date and Time
Usedate and time parameters separately. Important: When using this option, the time must be in 12-hour format with am or pm.
YYYY-MM-DD
Time Format: h:mm am/pm or hh:mm am/pm (12-hour format, must include am/pm)
Preventing Double Bookings
Setprevent_double_booking to "true" to have Cobalt check the provider’s schedule for conflicts before submitting the appointment to your EHR. If the requested time slot overlaps with an existing patient visit or a schedule block, the appointment fails immediately with a descriptive error rather than being submitted.
appointment.failed webhook with the conflict_type and conflict_details fields populated (see Failure Examples below).
Complete Example Request
Example Response
Webhook Notifications
When the appointment processing is complete, we will send a webhook to your registered endpoint. Here are examples of what those webhook payloads will look like:Success
Failure Examples
Theappointment.failed webhook event includes a failure_reason and can contain additional fields in the data object depending on the cause of the failure.
Patient Not Found:
Authorizations
Body
Optional appointment duration in minutes, as a string of digits (e.g. "30"). Where the EHR supports it, this overrides the default visit-type duration.
true, false When set to "true", Cobalt checks the provider's schedule for conflicts before submitting the appointment to the EHR. If an overlap is detected with an existing patient visit or schedule block, the appointment fails immediately with a structured error rather than being submitted. Supported for eClinicalWorks and Practice Fusion; ignored for all other EHR systems. Defaults to no conflict check when omitted.
true, false eClinicalWorks only. The EHR department to book the appointment under, given as the ehr_id of a department from GET /v1/settings (the departments array; match the one whose location_ehr_id equals this appointment's location). Validated against the chosen location's departments; an invalid value is rejected with a 400. Ignored for other EHR systems.
eClinicalWorks only. When "true", the created encounter is marked non-billable (no claim required). Ignored for other EHR systems.
true, false