---
title: "Update a blocked-time preset"
method: PUT
path: "/shop/blocked-time-presets/{blockedTimePresetId}"
tags: ["BlockedTimePresets"]
---

# Update a blocked-time preset

`PUT /shop/blocked-time-presets/{blockedTimePresetId}`

Updates an existing `BlockedTimePreset`. `name` is required;
other fields fall back to their existing values when omitted.

Requires the `SETTINGS_MANAGE` permission on the preset's site.

## Request body

- object
  - `name` string, required — Display name. Plain text only.
  - `duration` integer — Default duration in minutes (1..1200).
  - `type` 'cleaning' | 'break' | 'meeting' | 'other' — Default block type used when a new blocked-time is created from this preset. Drives the calendar icon and the reporting category.
  - `label` string, nullable — Default short label rendered on the calendar tile so staff can distinguish blocks at a glance. Plain text only.
  - `notes` string, nullable — Default free-form note (plain text) shown when staff click into a block created from this preset.
  - `color` string, nullable — Default hex colour (`#rrggbb`).

## Response `200`

A single `BlockedTimePreset`.

- object
  - `data` BlockedTimePreset, required — A `BlockedTimePreset` captures the reusable defaults for a common kind of blocked time — e.g. "Lunch break" (30 min, `break`), "Deep clean" (15 min, `cleaning`). Operators pick a preset in the calendar UI to create a `BlockedTime` with the preset's `duration`, `type`, `label`, `notes`, and `color` pre-filled.
    - `id` string, object-id, required — Unique identifier for the preset.
    - `name` string, required — Display name shown in the preset picker. Plain text only.
    - `duration` integer — Default duration in minutes for a `BlockedTime` created from this preset. Must be at most 1200 (20 hours).
    - `type` 'cleaning' | 'break' | 'meeting' | 'other' — Default block type. Drives the calendar icon.
    - `label` string, nullable — Default short label on the calendar tile. Plain text only.
    - `notes` string, nullable — Default free-form note (plain text).
    - `color` string, nullable — Default hex colour (`#rrggbb`, lower-case) to override the type's default colour.
    - `site_id` string, uuid, required — ID of the site this preset belongs to.
    - `organisation_id` string, uuid, required — ID of the organisation that owns this preset.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `404` — The resource couldn't be found
- `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)
