AI-optimized auto-schedule for the season — not nights on the grid
AI-optimized league auto-schedule fills on-the-hour blocks on the days and courts you uploaded. Even game counts first, then rematch caps, coach conflicts, venue priorities, and U12 hours in one pass — with manual tweaks when you want them.
What this actually does
Any day the inventory allows, on the hour
Games land in the on-the-hour blocks you uploaded — weekday or weekend, whatever the inventory allows. A team may play two games the same day (back-to-back or up to three hours apart), never more than two.
Fairness before density
Each team targets the configured games-per-team count (a team may go over only to help an opponent reach the target). Placement prefers even counts, then one game per playable week, then avoids two available weeks off in a row. Weeks 1–2 are pushed so every team that can play gets an early game.
Rematch caps that stay soft until they must not
Pairs preferably meet at most twice. A third rematch is a last resort and never in three consecutive weeks. Hail Mary may allow a third meeting among leftovers; it will not create a fourth.
U12 hours, coaches, and venue priorities
U12-and-under divisions only play 9:00 AM–7:00 PM. Coach conflicts are honored first; a coach lock on By team keeps that hard. Venue-priority columns use 1 = best, 0 = never — generate prefers priority 1, and a venue lock keeps a team on the sites you promised.
Competition → Setup → League, then Schedule → Generate
This lives in the admin, not on the public schedule. Exports and the share link update when you save.