Appointments
Calendar and appointments
GET/api/appointments
List the team's appointments
Required scope: appointments.read
| Parameter | In | Required |
|---|---|---|
page | query | no |
limit | query | no |
aiAgentId | query | no |
status | query | no |
source | query | no |
dateFrom | query | no |
dateTo | query | no |
search | query | no |
sort | query | no |
overlap | query | no |
bash
curl "https://api.zapyflow.com.br/api/appointments" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Responses
200— OK400— Malformed request
POST/api/appointments
Create an appointment (from the dashboard or the AI). Returns 409 when the slot is taken; resend with allowOverlap to book anyway.
Required scope: appointments.write
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
aiAgentId | string | yes | min 1 |
title | string | yes | min 1, max 255 |
startTime | string | yes | — |
endTime | string | yes | — |
status | "PENDING" | "CONFIRMED" | "CANCELLED" | "COMPLETED" | no | — |
notes | string | no | max 500 |
source | "BOT" | "DASHBOARD" | no | — |
leadId | string | no | — |
clientName | string | no | max 255 |
clientPhone | string | no | — |
clientEmail | string | no | — |
allowOverlap | boolean | no | — |
bash
curl -X POST "https://api.zapyflow.com.br/api/appointments" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Responses
201— Created400— Malformed request409— Conflict with the current state
PATCH/api/appointments/{id}
Update an appointment
Required scope: appointments.write
| Parameter | In | Required |
|---|---|---|
id | path | yes |
Request body
| Field | Type | Required | Constraints |
|---|---|---|---|
title | string | no | min 1, max 255 |
startTime | string | no | — |
endTime | string | no | — |
status | "PENDING" | "CONFIRMED" | "CANCELLED" | "COMPLETED" | no | — |
notes | string | null | no | — |
notifyClient | boolean | no | — |
allowOverlap | boolean | no | — |
bash
curl -X PATCH "https://api.zapyflow.com.br/api/appointments/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Responses
200— OK400— Malformed request404— Not found — also returned when the resource belongs to another workspace409— Conflict with the current state
DELETE/api/appointments/{id}
Delete an appointment
Required scope: appointments.write
| Parameter | In | Required |
|---|---|---|
id | path | yes |
bash
curl -X DELETE "https://api.zapyflow.com.br/api/appointments/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Responses
200— OK404— Not found — also returned when the resource belongs to another workspace