> Revox API docs for developers and AI agents. Index: https://www.getrevox.com/docs/api/llms.txt · Everything in one file: https://www.getrevox.com/docs/api/llms-full.txt · OpenAPI 3.1: https://www.getrevox.com/openapi.json · MCP server: https://www.getrevox.com/api/mcp-servers/generic/mcp
> Base URL https://www.getrevox.com/api · Auth: `Authorization: Bearer $REVOX_API_KEY`

# List what a calendar can book on

`GET https://www.getrevox.com/api/assistants/{id}/calendars/{calendarId}/options`

The calendars (Google) or event types (Calendly, Cal.com) of the account connected to the calendar, to pick the one it books on with PUT .../selection. Returns 400 when no account is connected.

## Before you call

- Only an option with `bookable` true can be picked. A `notice` means the account's plan will stop bookings: tell the account owner.

## Request

```bash
curl -X GET "https://www.getrevox.com/api/assistants/3f6c2a1e-8b4d-4c7a-9e2f-5d1b7a9c0e34/calendars/b2d4f6a8-1c3e-4a5b-8d7f-9e0a1b2c3d4e/options" \
  -H "Authorization: Bearer $REVOX_API_KEY"
```

## Path parameters

- `id` (string, required): ID of the assistant, as returned by [`GET /assistants`](https://www.getrevox.com/docs/api/assistants/get-assistants.md).
- `calendarId` (string, required): ID of the calendar, from the assistant's `calendars` list or [`GET /assistants/{id}/calendars`](https://www.getrevox.com/docs/api/assistants/list-an-assistants-calendars.md).

## Body

No body: send the request without one.

## Response 200

```json
{
  "options": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "name": "Appointment reminder",
      "detail": "30 min",
      "bookable": false
    }
  ],
  "selected_option_id": "9b8a7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
  "notice": "calendly_free_plan"
}
```

- `options` (array of object): The calendars (Google) or event types (Calendly, Cal.com) of the connected account.
  - `options.id` (string): What to pass as option_id to PUT .../selection: a Google calendar ID, or a Calendly or Cal.com event type.
  - `options.name` (string): Name of the calendar or event type.
  - `options.detail` (string | null): What tells two similar options apart, e.g. '30 min' or a team name. Null when there is nothing to add. Example: `"30 min"`.
  - `options.bookable` (boolean): False for a Google calendar shared with the account read-only: listed so the user sees it, but meetings cannot be booked on it until its owner grants "Make changes to events".
- `selected_option_id` (string | null): The option the calendar books on now. Null until one is picked.
- `notice` ("calendly_free_plan" | "calendly_trial" | null): Something about the account that will stop bookings. Null when there is nothing to report.
  - `"calendly_free_plan"`: The Calendly account is on the free plan: Calendly only books through its API on a paid plan (Standard or above), so the agent will see the slots but cannot book them.
  - `"calendly_trial"`: The Calendly account is on a trial: Calendly only books through its API on a paid plan (Standard or above). Without one, the agent will see the slots but cannot book them.

## Errors

- `400` Invalid request: a field or parameter failed validation: `{"message":"Request validation failed","bodyErrors":{"issues":[{"path":["phone_number"],"message":"Invalid input: expected string, received undefined","code":"invalid_type"}]}}`
- `404` Not found in your organization: `{"error":"Not found"}`
- `500` Server error: `{"error":"Server error"}`
- Every status is explained under Errors in https://www.getrevox.com/docs/api.md#errors.