POST
/meetings//no-show
Mark the outcome of a meeting as no-show (the lead didn’t attend). Works on any meeting belonging to your client — booked by the agent, by Calendly/Diio, manually, or via POST /meetings — so the API caller acts as just another meeting provider.
The status change cascades the same side effects the native providers trigger:
- A
meeting.no_show outbound webhook fires, so the outcome reaches any subscribed endpoint or CRM.
- A timeline activity (
meeting_no_show) is logged on the lead.
- If the client has the re-engage agent active with a matching recontact rule, the agent reaches out to the lead (e.g. to reschedule).
Path parameters
| Param | Type | Description |
|---|
id | string (uuid) | The meeting ID — from the POST /meetings response or GET /leads/{id}/meetings. |
Request Body
| Field | Type | Required | Description |
|---|
reason | string | No | Stored as no_show_reason (defaults to api_marked). |
notes | string | No | Free-text outcome notes. |
Idempotency
Re-marking a meeting that is already no_show is a safe no-op — the response carries "idempotent": true and no duplicate activity or webhook is emitted.
Responses
200 — Outcome applied
{
"success": true,
"meeting": {
"id": "event-uuid",
"lead_id": "lead-uuid",
"status": "no_show",
"no_show_reason": "lead_did_not_join",
"outcome_at": "2026-06-25T20:59:26Z",
"outcome_notes": null
}
}
200 — Already marked (idempotent)
{
"success": true,
"meeting": { "id": "event-uuid", "lead_id": "lead-uuid", "status": "no_show", "idempotent": true }
}
401 — Authentication error — see Authentication
403 — API key missing the meetings:write scope (MCP keys only; REST keys are full-access)
404 — Meeting not found or not owned by your account
500 — Internal server error
Last modified on June 25, 2026