Strict-partial update. Lifecycle-aware webhook emission: time changes emit booking.rescheduled; status → cancelled emits booking.cancelled; status → completed emits booking.completed. The FK fields and google_calendar_event_id are NOT updatable (delete + re-create to rebind). Time validation runs against the merged-with-existing window so a partial PATCH cannot create an inverted window.
Documentation Index
Fetch the complete documentation index at: https://docs.vorel.ai/llms.txt
Use this file to discover all available pages before exploring further.
Tenant-issued API key. Format: vapk_live_<48 hex chars> (60 chars total). Issue + manage at /settings/integrations/api-keys in the Vorel dashboard. Each key has a scope set (read, leads:write, appointments:write, offerings:write); endpoints requiring a write scope reject keys without it with a 403 envelope.
UUID of the appointment to update.
Partial-update body for PATCH /api/v1/appointments/{id}. Must include at least one updatable field. Setting a nullable field to null clears it. The FK fields (conversation_id, lead_id, offering_id), google_calendar_event_id, and operator-internal notes / assigned_user_id are NOT updatable. Lifecycle-aware webhook emission server-side: changing scheduled_start/scheduled_end emits booking.rescheduled; status → cancelled emits booking.cancelled; status → completed emits booking.completed. Time validation (end > start) runs both in-body AND merged-against-existing so a partial PATCH cannot create an inverted window.
1 - 2005 - 32500confirmed, cancelled, completed, rescheduled, no_show Appointment updated.
confirmed, cancelled, completed, rescheduled, no_show