# Cancel an appointment

Mark an appointment canceled. Organizer only.

Keeps the row and sets `status` to `canceled`. The same status is copied onto each guest's invite. A guest cannot cancel.

## Authentication

`Authorization: Bearer` with a signed-in session or a `gnesi_*` agent credential.

## Response

`appointment`.

```sample
curl -X POST "https://api.gnesi.io/v1/appointments/appointment_123/cancel" \
  -H "Authorization: Bearer $GNESI_CREDENTIAL"
```

```result
{
  "appointment": {
    "id": "appointment_123",
    "title": "Intro",
    "startsAt": "2026-10-20T15:00:00.000Z",
    "endsAt": "2026-10-20T15:30:00.000Z",
    "status": "canceled",
    "organizer": "ada@gnesi.io",
    "guests": ["mina@gnesi.io"]
  }
}
```
