> ## Documentation Index
> Fetch the complete documentation index at: https://docs.formitto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Calendars

> Read your calendar (booking) widgets.

A **calendar widget** is an embeddable booking widget bound to a verified
domain. Calendars are read-only in v1.

## The calendar widget object

```json theme={null}
{
  "id": 44,
  "name": "Discovery call",
  "domain": { "id": 5, "domain": "example.com" },
  "bookingCount": 12,
  "settings": { "slotDuration": 30 },
  "appearance": {},
  "behavior": {},
  "createdAt": "2026-05-01T12:00:00.000Z",
  "updatedAt": "2026-05-18T08:00:00.000Z"
}
```

List responses include `bookingCount`; the single-widget view adds `settings`,
`appearance`, and `behavior`. Any webhook URL inside `settings` is stripped
from API responses.

## List calendar widgets

`GET /v1/calendar-widgets` — scope `read:calendars`. Supports `page`, `limit`,
and `domainId`.

<CodeGroup>
  ```bash curl theme={null}
  curl https://formitto.com/v1/calendar-widgets \
    -H "Authorization: Bearer fmt_live_xxxxxxxx"
  ```

  ```typescript TypeScript theme={null}
  const result = await formitto.calendars.listCalendarWidgets({});
  ```
</CodeGroup>

## Get a calendar widget

`GET /v1/calendar-widgets/{id}` — scope `read:calendars`.

<CodeGroup>
  ```bash curl theme={null}
  curl https://formitto.com/v1/calendar-widgets/44 \
    -H "Authorization: Bearer fmt_live_xxxxxxxx"
  ```

  ```typescript TypeScript theme={null}
  const widget = await formitto.calendars.getCalendarWidget({ id: 44 });
  ```
</CodeGroup>

To read a calendar's bookings, see [Bookings](/resources/bookings).
