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

# GET /widget/{token}/availability — Monthly Calendar

> Check which dates in a given month have open slots for a party size using GET /api/v1/widget/{publicToken}/availability. Powers the booking calendar UI.

The availability endpoint returns a list of every date in a given month and whether each date has at least one bookable slot for the requested party size. Use this to power your booking calendar: highlight available dates in green and grey out unavailable ones before the guest picks a day.

## Endpoint

```
GET https://api.lakreme.fr/api/v1/widget/{publicToken}/availability
```

No authentication is required.

## Path parameters

<ParamField path="publicToken" type="string" required>
  The public token for the restaurant.
</ParamField>

## Query parameters

<ParamField query="month" type="string" required placeholder="YYYY-MM">
  The month to check, in `YYYY-MM` format. For example, `2025-05` for May 2025.
</ParamField>

<ParamField query="guests" type="number" required>
  The number of guests in the party. A date is only marked `available: true` if there is at least one open slot with enough remaining capacity for this party size.
</ParamField>

## Response fields

<ResponseField name="month" type="string" required>
  The month that was queried, echoed back in `YYYY-MM` format.
</ResponseField>

<ResponseField name="guests" type="number" required>
  The party size that was queried, echoed back.
</ResponseField>

<ResponseField name="dates" type="object[]" required>
  Array of date availability objects, one per calendar day in the requested month.

  <Expandable title="dates properties">
    <ResponseField name="date" type="string" required>
      The calendar date in `YYYY-MM-DD` format.
    </ResponseField>

    <ResponseField name="available" type="boolean" required>
      `true` if the restaurant has at least one open time slot for the given party size on this date. `false` if the date is fully booked, falls outside the `advance_booking_days` window, or has no active service.
    </ResponseField>
  </Expandable>
</ResponseField>

<Note>
  A date is marked `available: true` only when there is at least one slot with `remaining_capacity` greater than or equal to the requested `guests` value. Use [GET Time Slots](/api/widget/slots) to fetch the individual slots for a specific date.
</Note>

## Example

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.lakreme.fr/api/v1/widget/tok_abc123/availability?month=2025-05&guests=2"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "month": "2025-05",
    "guests": 2,
    "dates": [
      { "date": "2025-05-01", "available": false },
      { "date": "2025-05-02", "available": true },
      { "date": "2025-05-03", "available": true },
      { "date": "2025-05-04", "available": false },
      { "date": "2025-05-05", "available": true },
      { "date": "2025-05-06", "available": true },
      { "date": "2025-05-07", "available": true },
      { "date": "2025-05-08", "available": false },
      { "date": "2025-05-09", "available": false }
    ]
  }
  ```
</ResponseExample>
