Version
DESTRUCTIVE

create_pass_window

Place one dated access window by hand on a time-limited pass plan. Marked manual, so a schedule rebuild keeps it; emits pass.window_scheduled.

Add a single window to a pass plan's schedule without touching the rule that generates the rest — a one-off extra session, a make-up date, a special. The window is stored as manual, which is what protects it: when the plan's schedule is rebuilt from its slots, generated windows are pruned and regenerated, manual ones are left alone.

Synchronous — the new window comes back in the get_pass_window row shape, and pass.window_scheduled emits once.

A bare `starts_at` is read in the plan's timezone

An ISO 8601 instant with an offset (2026-10-03T09:00:00+01:00 or Z) is taken as given. One without an offset is read in the plan's own pass timezone, not UTC and not the agent's clock, because that is the time the creator means when they say "ten o'clock". The future check runs in that zone too.

The plan's configured floor and ceiling on window length apply, so duration_minutes outside those bounds is refused rather than clamped.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Fires one event

Delivered to every endpoint subscribed to it once the change is made.

Annotations

DestructiveOpen world

A client that honours annotations asks a person before running it. It reaches beyond Subscriby: a connector, a provider or a member.

Arguments

plan_id*string

UUID of the pass plan to place the window on.

starts_at*string

ISO 8601 instant the window opens. Without an offset it is read in the plan's own timezone.

duration_minutes*integer

How long the window runs, in whole minutes.

min1

What it returns

{  "data": {    "id": "3d5a8c72-b016-4e94-8fa7-61c209d4e738",    "plan_id": "9b7c2e15-4d63-4f80-a2b1-7e5d0c9f3a46",    "plan_name": "Saturday session",    "starts_at": "2026-10-03T09:00:00+00:00",    "ends_at": "2026-10-03T11:00:00+00:00",    "timezone": "Europe/London",    "local_range": "Sat 3 Oct, 10:00–12:00 BST",    "duration_minutes": 120,    "status": "scheduled",    "sellable": true,    "holders": 0  }}

How it fails

VALIDATION_FAILED

the plan is not of kind pass, starts_at is in the past, duration_minutes is outside the plan's minimum and maximum, or the plan already has a window starting at that instant.

RESOURCE_NOT_FOUND

unknown plan_id, or the plan's project is outside the token's scope.

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks pass-window:create.

How is this guide?

Last updated on