Fires when an appointment is scheduled for an order (via the appointment-scheduling integration). targetEntity is the Order. The eventType is order_appointment_scheduled.
Field Guarantee eventData.orderId, appointmentType, startDateTime, duration⚠️ Conditional — only emitted by the appointment-scheduling integration; participants may be empty Appointment fields in v2 ⛔ Not delivered — only order_id maps to the allowlist
🚧
JSON
{
"_id": "event::a1b2c3d4-xxxx-xxxx-xxxx-e5f6a7b8c9d0",
"ownerEntity": "pat::117eb3b9-xxxx-xxxx-xxxx-9424274b5425",
"ownerEntityModel": "Patient",
"targetEntity": "order::e5576e92-xxxx-xxxx-xxxx-3c3173a3fb82",
"targetEntityModel": "Order",
"eventTitle": "Appointment scheduled for the order.",
"eventType": "order_appointment_scheduled",
"eventData": {
"orderId": "order::e5576e92-xxxx-xxxx-xxxx-3c3173a3fb82",
"appointmentType": "synchronous_visit",
"startDateTime": "2026-06-02T15:30:00.000Z",
"duration": 30,
"participants": ["usr::154300b9-xxxx-xxxx-xxxx-c09f9be9f8d7"]
},
"deleted": false,
"createdAt": { "$date": "2026-01-01T12:00:00.000Z" },
"updatedAt": { "$date": "2026-01-01T12:00:00.000Z" },
"__v": 0
}
eventData fieldType Always? Notes orderIdstring ⚠️ Present when the integration fires the event appointmentTypestring ⚠️ e.g. synchronous_visit startDateTimedate ⚠️ Appointment start durationnumber ⚠️ Minutes participantsstring[] ⚠️ May be empty
Sanitized envelope. orderId aliases to order_id; the other appointment fields are not on the ORDER allowlist and are dropped.
JSON
{
"event_type": "order_appointment_scheduled",
"event_id": "event::a1b2c3d4-xxxx-xxxx-xxxx-e5f6a7b8c9d0",
"api_version": "2026-08-09",
"timestamp": "2026-05-30T14:00:00.000Z",
"affiliate_id": "aff::xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"patient_id": "pat::117eb3b9-xxxx-xxxx-xxxx-9424274b5425",
"patient_external_id": "ext-patient-123",
"patient_marketing_consent": false,
"is_returning_patient": false,
"order_id": "order::e5576e92-xxxx-xxxx-xxxx-3c3173a3fb82",
"order_status": "requires_provider_review"
}
Field Delivered in v2 Notes Envelope + patient identity ✅ order_id, order_status✅ Resolved from the target order appointmentType, startDateTime, duration, participants⛔ Not on the allowlist