---
title: "List calendar resources for a date"
method: GET
path: "/shop/calendar-resources"
tags: ["CalendarEvents"]
---

# List calendar resources for a date

`GET /shop/calendar-resources`

Returns the resources displayed alongside the operator calendar
for a given date — the lanes you book against. The response
bundles:

- The site's **opening hours** for the date, expressed as one or
  more open periods (a site can have split shifts).
- All `Zone`s configured at the site (used to filter the
  calendar by area of the venue).
- Every `BookableArea`, `Practitioner`, and `Room` at the site,
  each enriched with the resource's scheduled availability for
  the requested date and (for practitioners) any custom
  availability overrides that apply.

Pass `zone_id` to restrict the resource lanes to a single zone;
omitting it returns every resource at the site. The endpoint is
typically called once per calendar render and refreshed when the
operator changes date.

## Query parameters

- `date` string, date
- `zone_id` string
- `site_id` string

## Response `200`

Calendar resources successfully retrieved.

- object
  - `data` object, required
    - `opening_hours` object[], required — One or more open periods for the site on the requested date. A site with a split shift will return multiple non-overlapping periods.
      - `start_time` string, date-time, required — ISO-8601 start of the open period.
      - `end_time` string, date-time, required — ISO-8601 end of the open period.
    - `zones` object[], required — Every zone configured at the site, regardless of whether the request was filtered by `zone_id`.
      - `id` string, required
      - `name` string, required
    - `areas` object[], required — `BookableArea` lanes scheduled for the date, each carrying the area's `day_scheduled_availability` slots.
      - `id` string, required
      - `slots` object[] — The area's scheduled availability windows for the date.
        - `start_time` string, date-time, required — ISO-8601 start of the available window.
        - `end_time` string, date-time, required — ISO-8601 end of the available window.
    - `practitioners` object[], required — Practitioner lanes scheduled for the date, with their rota, scheduled slots, and any custom availability rules that apply.
      - `id` string, required
      - `slots` object[] — The practitioner's working windows for the date.
        - `start_time` string, date-time, required — ISO-8601 start of the working window.
        - `end_time` string, date-time, required — ISO-8601 end of the working window.
        - `room_segments` object[] — Room assignments within this working window. Each entry covers a contiguous sub-range of the slot and links it to a specific room.
          - `id` string, object-id, required — Unique identifier of the room assignment.
          - `room_id` string, object-id, nullable, required — The room assigned for this segment, or `null` for unassigned windows.
          - `start_time` string, date-time, required — ISO-8601 start of the segment.
          - `end_time` string, date-time, required — ISO-8601 end of the segment.
          - `offerings` OfferingIdentifier[] — The offerings the practitioner is restricted to during this segment. An empty array (or omitted) means the practitioner may be booked for any offering during this window.
            - `offering_id` string, mongo-id, required — The ID of the offering.
            - `offering_name` string, required — The name of the offering.
            - `offering_type` 'appointment' | 'appointment_enquiry' | 'area_booking' | 'course' | 'hotel_room_reservation' | 'membership' | 'package' | 'product' | 'session' | 'table_reservation' | 'voucher', required — Discriminator describing what kind of sellable item an `Offering` represents. The value determines which downstream schema (`Appointment`, `Session`, `Package`, etc.) the offering's `offering_id` resolves against, and which checkout/booking flow applies.
    - `rooms` object[], required — Room lanes scheduled for the date, each with the room's `day_scheduled_availability` slots.
      - `id` string, required
      - `slots` object[] — The room's scheduled availability windows for the date.
        - `start_time` string, date-time, required — ISO-8601 start of the available window.
        - `end_time` string, date-time, required — ISO-8601 end of the available window.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `422` — The request didn't pass validation

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
