Skip to main content
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

ParamTypeDescription
idstring (uuid)The meeting ID — from the POST /meetings response or GET /leads/{id}/meetings.

Request Body

FieldTypeRequiredDescription
reasonstringNoStored as no_show_reason (defaults to api_marked).
notesstringNoFree-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