- Update (reschedule) an appointment
Edits or reschedules an appointment with a merge-patch body: start time, Team Member, services, duration, comment. The appointment status is not editable here — use the status command. Cancellation is a separate cancel command.
If-Match is required: appointments are the most contended resource (a human and an agent often edit the same one), and a stale version fails with 412 stale_version instead of silently overwriting someone's change.
- Mock serverhttps://developer.alteg.io/_mock/en/b2b-v3/openapi/locations/{location_id}/appointments/{appointment_id}
- Preview resource API contract - endpoint surface is not live yethttps://api.alteg.io/api/v3/locations/{location_id}/appointments/{appointment_id}
- OAuth2
- RestrictedKey
curl -i -X PATCH \
'https://developer.alteg.io/_mock/en/b2b-v3/openapi/locations/{location_id}/appointments/{appointment_id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/merge-patch+json' \
-H 'If-Match: string' \
-d '{
"starts_at": "2026-07-24T15:00:00+01:00",
"team_member_id": 322
}'The updated appointment.
Requests left in the most constrained policy window that applies to this request.
On 429, seconds until the most constrained policy frees up; it equals Retry-After there. On a successful response it reports the length of that policy's window rather than the time left in the current one, so treat it as the window size, not as a countdown — the counter to pace against is RateLimit-Remaining.
Most constrained policy applied to the request, as <limit>;w=<window in seconds>.
Version tag of the returned resource. Send it back in If-Match on the next PATCH or DELETE.
Status of an appointment. waiting — scheduled, not yet confirmed; confirmed — confirmed by the client; arrived — the client attended (terminal "done" state); no_show — the client did not attend; cancelled — cancelled via the cancel command (never set through the status command).
{ "id": 12345, "object": "appointment", "location_id": 4321, "client_id": 789, "visit_id": 5001, "team_member_id": 321, "service_ids": [ 100 ], "resource_instance_ids": [], "status": "waiting", "starts_at": "2026-07-24T11:30:00+01:00", "ends_at": "2026-07-24T12:30:00+01:00", "duration_seconds": 3600, "is_paid": false, "comment": null, "cancelled_at": null, "cancellation_reason": null, "created_at": "2026-07-20T09:57:15Z", "updated_at": "2026-07-20T09:57:15Z" }