> ## 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.

# Bookings

> Read the bookings made against your calendar widgets.

A **booking** is a scheduled slot captured by a calendar widget. Bookings are
read-only in v1.

## The booking object

```json theme={null}
{
  "id": 555,
  "calendarWidgetId": 44,
  "inviteeName": "Jane Doe",
  "inviteeEmail": "jane@example.com",
  "slotIso": "2026-06-01T10:00:00Z",
  "slotDisplay": "Jun 1, 2026, 10:00 AM",
  "inviteeTimezone": "America/New_York",
  "status": "scheduled",
  "customFields": {},
  "videoCallUrl": "https://meet.example.com/abc",
  "createdAt": "2026-05-20T09:30:00.000Z"
}
```

`status` is one of `scheduled`, `cancelled`, `no_show`, `completed`, or
`failed`. Internal fields (cancellation tokens, provider event IDs, assigned
host) are never exposed.

## List a calendar's bookings

`GET /v1/calendar-widgets/{id}/bookings` — scope `read:bookings`. Paginated
(`page`, `limit`), newest first.

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

  ```typescript TypeScript theme={null}
  const result = await formitto.bookings.listCalendarBookings({ id: 44 });
  ```
</CodeGroup>

## Get a booking

`GET /v1/bookings/{id}` — scope `read:bookings`.

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

  ```typescript TypeScript theme={null}
  const booking = await formitto.bookings.getBooking({ id: 555 });
  ```
</CodeGroup>
