---
title: "List blocked times"
method: GET
path: "/shop/blocked-times"
tags: ["BlockedTimes"]
---

# List blocked times

`GET /shop/blocked-times`

Returns every `BlockedTime` at the given site whose window
intersects the `date_from`..`date_to` range. Use this to render
the operator calendar's "blocked" overlays alongside bookings
and appointments.

Both `date_from` and `date_to` are required and inclusive.

Requires the `RESERVATIONS_VIEW` permission on the site.

## Query parameters

- `site_id` string, required
- `date_from` string, date, required
- `date_to` string, date, required

## Response `200`

A list of `BlockedTime`s falling within the requested date range.

- object
  - `data` BlockedTime[], required — Blocked times intersecting the requested range.
    - `id` string, object-id, required — Unique identifier for the blocked time.
    - `start_time` string, date-time, required — Start of the blocked window. Stored as a date-time in the site's timezone.
    - `end_time` string, date-time, required — End of the blocked window. Must be strictly after `start_time`.
    - `type` 'cleaning' | 'break' | 'meeting' | 'other', required — The kind of block. Drives the icon shown on the operator calendar and acts as an audit aid.
    - `label` string, nullable — Optional short label shown on the calendar tile. Plain text only.
    - `notes` string, nullable — Optional longer note (free-form, plain text). Visible to operators on the calendar tile.
    - `color` string, nullable — Optional hex colour (`#RRGGBB`, lower-case) to override the default colour for this `type` on the calendar.
    - `practitioner_ids` string[], required — Practitioner calendars covered by this blocked time. May be empty if the block targets rooms or areas only.
    - `room_ids` string[], required — Room calendars covered by this blocked time. May be empty.
    - `area_ids` string[], required — Bookable-area calendars covered by this blocked time. May be empty.
    - `site_id` string, uuid, required — ID of the site this blocked time belongs to.
    - `organisation_id` string, uuid, required — ID of the organisation that owns this blocked time.

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