Blocked Time Form
What this screen is for
The form for creating a new closure or editing an existing one: a date, whether the whole day or specific hour ranges are closed, and an optional reason.
When you would use this
Once the exact date and hours of a holiday, public holiday or one-off closure are settled, this is where that closure gets entered; it's also where a previously entered closure's date or hours get corrected.
Who sees it
Only the user matching the owner field on the business document can open this screen; no one else can create or edit a closure.
Where it lives
The screen exists on both the mobile app and the panel; both offer the same set of fields.
What you can do here
Pick a date
A date is entered; a past date cannot be picked.
On the panel the date field is a native date picker with no minimum set, so it does not block a past date; the mobile date picker offers only today and later.
Whole-day switch
On, the hour-range fields are hidden and the closure covers the entire day; off, at least one hour range must be entered.
Hour ranges
While the whole-day switch is off, more than one range can be added; each range's start must come before its end, and ranges must not overlap.
Reason
An optional free-text field; shown next to the date in the list.
Notices a closure deleted elsewhere, or a mismatched id
The closure being edited is resolved against the same live list the app streams; if it was deleted on another device or on the panel, this shows a "not found" message instead of turning into a blank creation form.
On the panel, the same message shows if the closure id in the address bar is not in the list at all (a stale or mistyped link). The mobile form opens directly with the selected closure, so this scenario cannot arise there — only the deleted-elsewhere case applies.
Save
Saving without a date, or with invalid or overlapping ranges, is blocked and nothing is written.
Can be pre-filled with a date and time from the calendar
Clicking an empty slot on the panel's booking calendar can open this form pre-filled with that date and hours; it is only a suggestion and can be changed before saving.
The mobile form has no such pre-fill.
Read-only when suspended
If the business has been suspended, every field on the form is disabled.
The mobile form carries no such restriction.
What the server accepts and refuses
Nothing on the server inspects a closure's date or ranges
A missing date, or an invalid or overlapping hour range, is caught only by this form, on whichever surface entered it — the write rule itself never looks past who is writing.
The date is a plain day stamp with no timezone attached
A closure is stored as a "YYYY-MM-DD" date with no time attached; when a booking request is evaluated, this date is compared against the local day computed in the business's own timezone, not the timezone of the device sending the request.
Marking the whole day resets the hour ranges on write
While the whole-day switch is on, the form saves the hour ranges as an empty array; any ranges entered earlier are deleted along with the save and do not come back when switched back off.