A new Session Availability profile decides when a session can be picked and where it appears — pre-registration, self edit, mobile app — with an optional start and end date, either one on its own, or both
Name it once and share it across every session it applies to, the way onsite hours profiles work
Choose what a registrant sees once it closes: the session hidden entirely, or listed with no button. A session someone already holds never disappears from under them
Sessions with no profile are offered to everyone at all times, which is how every existing session already behaves
Set it on Edit Session, inline on the review rows, or as a column in the session import
Sessions
A session that has already started can still be added — someone can walk up and join one in progress — but can no longer be dropped, since the seat and its fee are spent. A session that is over can be neither
Judged over a linked group as a whole, so a full-day workshop whose morning has begun cannot be half dropped. Enforced on the older session component too
Linked sessions now read as one block on the card: a “time – name” line per session, earliest first, with the card’s own session in bold and a partner on another day naming that day
Ticking one member of a group ticks the rest on screen, so a pick no longer looks as though it failed
Answering “attend this instead” to a conflict now takes the whole group with it, and the prompt names what else is going — no more half a workshop left on the schedule
Track and Date pulldowns and the Group chips carry a count, so you can see what a filter is worth before spending a click on it
Managing sessions
Session Review and the Session List share one row of status buttons, each carrying its count, replacing the pull down — the size of every queue is visible without opening it
Session Review opens on Approved and Published rather than on New, so an event with nothing waiting no longer opens on an empty page
Session import creates a track it hasn’t seen before instead of rejecting the row, and matches existing track names whatever the capitalisation — importing a programme is one pass now, not two
Fixed: a CSV session import checked the track name and then silently cleared it. Only the Excel path ever set it
Onsite reports
The Onsite tab opens its reports in place, under the list, with progress in the row beneath — the last tab still opening reports in a popup window
Check-in by Type is available for the first time; it had a row on the tab but no report behind it
Fixed: the five check-in reports and the Station Report failed or read zero across the board. For a check-in count, “nobody checked in” is a far worse answer than an error, so a failure now says so
The Station Report returns in about a second instead of the better part of twenty — it was reading the whole check-in table once per station
The old Station Report link still works and lands in the new place
Excel exports are true .xlsx, past the old 65,536-row ceiling that a multi-day scan report can reach
Reports opened in place print a small line saying where the time went — build, transit and render — and it stays off the printed copy
Cloning
Cloning an event runs in the background behind a progress bar. It used to hold the browser on a blank tab for about a minute, which had people re-posting and starting a second clone on top of the first
The clone is one piece of work now rather than a dozen, so it is markedly faster and a failure part way through cannot leave a half-built event behind
The Timezone pull down on the clone page is no longer empty
Clone an article from the articles list. It opens a new article pre-filled from the one you picked — nothing is saved until you save it, so backing out leaves nothing behind
Access
Thirteen report screens resolved a report, schedule or event straight from the address bar without checking who owned it, so anyone with report access could reach another owner’s data by editing a url. All now check
Report schedules mattered most: the address a scheduled report is delivered to could be changed on somebody else’s report