Improved Event Publishing Reliability and Scheduling
Event publishing now runs reliably in one pass with accurate preview, grants independent control over events and instances, and keeps closing-night performances visible to patrons through their final day.
Publishing an event with a long run of instances used to be fragile: a large schedule could half-complete or quietly lose instances, the publish drawer could show one choice while publishing another, and there was no way to publish the event on its own. Scheduling and publishing now run reliably in one pass, so what you see in the drawer is exactly what goes live, and you keep full control over which instances are touched. This works across single events, recurring events, and their instances.
What you see is what publishes
Previously, the publish drawer could drift out of step with itself: the option shown as selected, such as "None (event only)", was not always the action that ran when you pressed publish, so you could publish every instance while believing you were publishing only the event. The drawer now resets cleanly each time you open it and keeps its display and its action locked together, so the choice you see is the choice that runs. If you close the tab mid-schedule, Basker warns you before you leave so an in-progress schedule is not lost.
Publish the event, the instances, or both
You can now publish or unpublish an event on its own, leaving every instance untouched, alongside the existing options to publish all instances or a selection you choose. Events with no instances can be scheduled in their own right, which was not possible before. Scheduling now rejects past and invalid dates, blocks duplicate schedules for the same time, checks that you have permission to publish, and requires a timezone before a scheduled publish can be saved, so a half-formed schedule cannot slip through.
Closing nights stay visible to patrons
A performance on the final day of an event used to disappear from public listings, scrollers, and event feeds before the day was out, because visibility was judged against UTC rather than your own calendar day. Instances are now gated by your local day, so a closing-night performance stays on sale and on display right through its last day, while a genuinely later run attached to the same event is still held back as before.