Skip to main content
POST /meetings//cancel Cancel a meeting and run all cancellation side effects. Works on any meeting belonging to your client. When cancelled, Nexor:
  • Cancels the lead’s and host’s pending reminders.
  • Notifies the host and sends the lead a cancellation email.
  • Deletes the external calendar event and frees the availability slot.
  • Logs a meeting_cancelled timeline activity.
  • Fires a meeting.cancelled outbound webhook and, when configured, triggers the re-engage agent.
Meetings owned by an external provider that Nexor doesn’t control (e.g. an inbound-only Calendly invitee) are not cancelled — the response returns "skipped": true.

Path parameters

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

Request Body

FieldTypeRequiredDescription
reasonstringNoStored as cancellation_reason; included in the lead/host notifications.

Idempotency

Cancelling a meeting that is already cancelled is a safe no-op ("idempotent": true).

Responses

200 — Cancelled

{
  "success": true,
  "meeting": {
    "id": "event-uuid",
    "lead_id": "lead-uuid",
    "status": "cancelled",
    "cancelled_at": "2026-06-25T20:59:26Z",
    "cancellation_reason": "client requested cancellation"
  }
}

200 — Skipped (provider-owned meeting)

{
  "success": true,
  "skipped": true,
  "reason": "managed_externally_inbound_only",
  "message": "Meeting is owned by an external provider and cannot be cancelled via the API"
}

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