# List Event Availability

Get availability for events of an experience.

Use this when you need availability for many events at once — for example, when rendering a
calendar. For a single event, prefer GET /v1/event-availabilities/{eventId}. The response is paginated;
pass the returned next cursor on subsequent calls to continue.

Endpoint: GET /v1/event-availabilities
Security: OAuth2

## Query parameters:

  - `experienceId` (string, required)
    The unique identifier of the experience to query events for.

  - `from` (string)
    Filter events with a session starting on or after this local date-time (inclusive).
ISO 8601 date-time without timezone (e.g., 2025-10-09T08:00:00).
The value is matched against each session's local start time;
an event is returned when any of its sessions starts within the requested window.
    Example: "2025-10-09T08:00:00"

  - `to` (string)
    Filter events with a session starting before this local date-time (exclusive).
ISO 8601 date-time without timezone (e.g., 2025-10-10T18:00:00).
The value is matched against each session's local start time;
an event is returned when any of its sessions starts within the requested window.
    Example: "2025-10-10T18:00:00"

  - `cursor` (string)
    Pagination cursor for fetching the next page of results.
Omit or pass an empty string to start from the beginning of the list.

  - `limit` (integer)
    Maximum number of items to return per page.
Defaults to 50, maximum 100.

## Response 200 fields (application/json):

  - `items` (array, required)
    Availability information for events matching the query.

  - `items.event_id` (string, required)
    The unique identifier of the event whose availability is described.

  - `items.available` (boolean, required)
    Whether the event is currently bookable.
false if any constraint in constraints reports available: false.

  - `items.constraints` (array, required) — one of (discriminator: type):
    Every constraint that applies to this event, in no particular order.
Both passing (available: true) and failing constraints are included.
    - EVENT_STATE:
      - `type` (string, required)
        Discriminator value identifying this as the event-state constraint.
        Enum: "EVENT_STATE"
      - `available` (boolean, required)
        Whether this constraint allows booking right now.
      - `state` (string, required)
        The current lifecycle state of the event.
The values map 1:1 to Event.state in the Events API.
    - EVENT_SEATS_LIMIT:
      - `type` (string, required)
        Discriminator value identifying this as the event-seats-limit constraint.
        Enum: "EVENT_SEATS_LIMIT"
      - `available` (boolean, required)
        Whether this constraint allows booking right now.
      - `remaining` (integer, required)
        The number of seats still available for booking.
    - BOOKING_LIMIT:
      - `type` (string, required)
        Discriminator value identifying this as the booking-limit constraint.
        Enum: "BOOKING_LIMIT"
      - `available` (boolean, required)
        Whether this constraint allows booking right now.
      - `remaining` (integer, required)
        The largest number of seats a single new booking may still request.
    - BOOKING_CUTOFF_TIME:
      - `type` (string, required)
        Discriminator value identifying this as the booking-cutoff-time constraint.
        Enum: "BOOKING_CUTOFF_TIME"
      - `available` (boolean, required)
        Whether this constraint allows booking right now.
      - `cutoff_time` (string, required)
        The instant (UTC) at which booking closes for this event.
Bookings created after this time will be rejected.
    - TICKET_LIMIT:
      - `type` (string, required)
        Discriminator value identifying this as the ticket-limit constraint.
        Enum: "TICKET_LIMIT"
      - `available` (boolean, required)
        Whether this constraint allows booking right now.
      - `remaining` (integer, required)
        The smallest remaining count across all ticket variants tied to this event.

  - `next` (string)
    Cursor for the next page of results.
An empty string or absent value indicates the end of the list.

## Response 400 fields (application/json):

  - `message` (string, required)

  - `code` (string, required)


