# Respond to an appointment

Accept or decline an invite. Guest only.

The caller is the guest, answering the invite on their own calendar. Accept sets `status` to `confirmed`. Decline sets `status` to `declined`. The guest cannot change the time. The organizer uses [Update an appointment](/api/appointments/update) and [Cancel an appointment](/api/appointments/cancel).

## Authentication

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

## Body

`decision` is `accept` or `decline`.

## Response

`appointment` is the guest's invite. It includes `title`, `startsAt`, `endsAt`, `organizer`, and `status`.

```sample
curl -X POST "https://api.gnesi.io/v1/appointments/appointment_456/respond" \
  -H "Authorization: Bearer $GNESI_CREDENTIAL" \
  -H "Content-Type: application/json" \
  -d '{"decision":"accept"}'
```

```payload
{"decision":"accept"}
```

```result
{
  "appointment": {
    "id": "appointment_456",
    "title": "Intro",
    "startsAt": "2026-10-20T15:00:00.000Z",
    "endsAt": "2026-10-20T15:30:00.000Z",
    "status": "confirmed",
    "organizer": "ada@gnesi.io"
  }
}
```
