Courts as they really are that day
Upload a session grid or a slot list. Split days and noon closures become hour cells. Append new court time without wiping games you already placed.
What this actually does
Season grid or simple slot list
Upload a session court workbook — venue names across the top, field columns such as Court 1 or Court 1, 2, 3, date rows as 8:00am–9:00pm or NA. The importer expands windows into on-the-hour slots. A one-row-per-slot list (Week, Date, Day, Venue, Field, Time) works when that is all you have.
Mid-day closures and split days
Availability is per hour, not per day. A gym that closes at noon on Sunday is modeled as it actually is, and the conflict audit enforces it. Generate will not place a game on a closed cell.
Venue priorities from the import
Priority columns (1 = best, 2/3 = lower, 0 = never) prefer home venues first. Venue lock on By team keeps a team on the sites you promised. When a team plays elsewhere, generate packs toward two games that day.
Append open courts later
Add newly available court time after the schedule is built, without clearing games. New open cells appear on the Court grid for Fill remaining and Hail Mary — the usual path after a rainout or a gym that suddenly opens an extra hour.
Competition → Teams tab → Venue availability
This lives in the admin, not on the public schedule. Exports and the share link update when you save.