A short final slot is the honest one
Open until one, hourly slots, but closing early at half ten. What should the calendar offer?
The tidy answer is nine to ten, and nothing else, because ten to eleven does not fit. The honest answer is nine to ten and a short ten to half ten, because “we stop at half ten” plainly means the last collection ends then.
So whatever is left over is offered as a shorter final slot. Opening hours rarely divide evenly by the slot length, and a blocked time almost never lands on the hour, so this is the common case rather than the edge one.
This also settles how closures work. A blocked time is subtracted from that day’s opening hours before slots are cut, which makes it behave like a temporary closing time rather than a filter over finished slots. Filtering afterwards could not produce that short slot at all: with hourly slots, only ten to eleven was ever generated, and there is nothing there to trim.
Two details fell out of it.
Slots stay on the grid the opening time sets. A block ending at quarter to eleven does not push every later collection to 10:45, 11:45, 12:45 — the few minutes between a block ending and the next slot are simply lost. Collection times that drift from one day to the next are worse than a gap.
And there is a floor. The shortest slot defaults to fifteen minutes, about the least time an order can be handed over in. It defaults to a quarter hour rather than to the slot length because defaulting to the slot length made the obvious case — “just give me hourly slots” — the one that silently produced nothing.