Update Appointment
PATCH
/public/v1/appointments/{appointment_id}
const url = 'https://api.aymaragents.com/public/v1/appointments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = { method: 'PATCH', headers: {'X-API-Key': '<X-API-Key>', 'Content-Type': 'application/json'}, body: '{"status":"scheduled","startsAt":"2026-04-15T12:00:00Z","endsAt":"2026-04-15T12:00:00Z","notes":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://api.aymaragents.com/public/v1/appointments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <X-API-Key>' \ --data '{ "status": "scheduled", "startsAt": "2026-04-15T12:00:00Z", "endsAt": "2026-04-15T12:00:00Z", "notes": "example" }'Partially update an appointment – reschedule/cancel/complete/mark-no-show/notes (SPEC_API_PUBLICA.md §2.4).
Unknown/foreign appointmentId -> 404, zero changes. A reschedule that overlaps ->
409 APPOINTMENT_OVERLAP.
Permiso necesario: tenant:appointments.manage
Authorizations
Sección titulada «Authorizations»Parameters
Sección titulada «Parameters»Path Parameters
Sección titulada «Path Parameters»appointment_id
required
Appointment Id
string format: uuid
Request Bodyrequired
Sección titulada «Request Bodyrequired»Media typeapplication/json
Responses
Sección titulada «Responses»Successful Response
Media typeapplication/json
PublicAppointmentOut
A single appointment, curated subset of the internal AppointmentOut.
Drops googleEventId (CAL-11 internal Google Calendar mirror id, meaningless to a third
party) and createdBy (the internal actor id – Platform-only attribution; a public caller
already knows who acted, it was its own key).
object
id
required
Id
string
assignedUserId
required
Assigneduserid
string
title
required
Title
string
appointmentType
required
Appointmenttype
string
startsAt
required
Startsat
string
endsAt
required
Endsat
string
status
required
Status
string
source
required
Source
string
createdAt
required
Createdat
string
updatedAt
required
Updatedat
string
Examplegenerated
{ "id": "example", "assignedUserId": "example", "customerId": "example", "conversationId": "example", "leadId": "example", "title": "example", "appointmentType": "example", "startsAt": "example", "endsAt": "example", "status": "example", "source": "example", "notes": "example", "createdAt": "example", "updatedAt": "example"}Validation Error
Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationErrorobject
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}