---
title: "Convert an optional block to tentative when its booking window opens."
method: PUT
path: "/booking/v1/block-actions/{id}/start-optional"
tags: ["BlockActions"]
---

# Convert an optional block to tentative when its booking window opens.

`PUT /booking/v1/block-actions/{id}/start-optional`

Internal callback the scheduler invokes when an 'Optional' block's start timer fires. It releases the
block ('Optional' to 'Tentative'). A stale fire - the block already left 'Optional', or its stored
start no longer matches the payload - is a no-op.<br>You must have at least one of these scopes: 'blocks.manage, reservations.manage'.

## Path parameters

- `id` string, required

## Request body

- StartOptionalBlockModel
  - `expectedStartDateUtc` string, date-time, required — The block start timestamp the scheduler fired for. It is compared against the block's stored start so a stale or replayed callback (the start was moved, or the block already left 'Optional') is ignored.<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>

## Response `204`

The callback was applied, or was a no-op for a stale fire.

## Other responses

- `400` — Bad request.
- `401` — You are unauthorized.
- `403` — Forbidden.
- `404` — The Request-URI could not be found.
- `415` — Unsupported media type.
- `422` — Validation errors in the request body or query params.
- `499` — Client closed request.
- `500` — An unexpected error occurred.
- `503` — The server is currently unavailable. Please try later.

---

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