{% load tz %}{% comment %} Step 4 โ when (SPEC ยง13.1: "schedule now/later, flatpickr, workspace timezone"). The picker writes a naive local value and the server interprets it in Workspace.effective_timezone (apps/broadcasts/views.py::_when): an operator picking 09:00 means nine in the morning where they work, and a server in UTC would otherwise send it at whatever nine UTC happens to be for them. The zone is printed beside the field so that promise is visible rather than assumed. This is the button that puts the fanout in the queue, so it is also where every compliance gate is enforced. They are refused server-side, by count โ "N of these contacts are outside the messaging window" โ because the same annotation answers the preview and the gate, and a client-side check would be a second opinion that could disagree. {% endcomment %}