A round robin tells you who plays whom each week. It does not tell you which court or what time, and that is where hand-made schedules go wrong: a court booked twice, or one team stuck with the 8 pm slot all season. The rule is simple. Each round has half as many matches as teams (rounded down), and every match needs its own court-and-time slot.
Open the free schedule tool (list your courts and start times; slots are shared out for you)
Six invented teams play a single round robin on Tuesdays: 5 rounds of 3 matches. Two courts at 18:00 and 19:00 give four slots a round, one more than needed. Home team is listed first.
| Round | Matches (court and time) |
|---|---|
| 1 | Bears v Foxes (Court A 18:00), Hawks v Wolves (Court A 19:00), Owls v Lynx (Court B 19:00) |
| 2 | Wolves v Owls (Court A 18:00), Foxes v Hawks (Court B 18:00), Lynx v Bears (Court A 19:00) |
| 3 | Hawks v Lynx (Court A 18:00), Bears v Owls (Court B 18:00), Foxes v Wolves (Court B 19:00) |
| 4 | Owls v Hawks (Court A 18:00), Wolves v Bears (Court B 18:00), Lynx v Foxes (Court B 19:00) |
| 5 | Lynx v Wolves (Court B 18:00), Foxes v Owls (Court A 19:00), Hawks v Bears (Court B 19:00) |
Across the five rounds every team plays the 18:00 slot two or three times and the 19:00 slot two or three times, and no court is used twice at the same time. The assignment is a seeded search, so the same input always gives the same table.
The table comes from the same code the page runs and a test recomputes it, so it cannot drift from the tool.
Half the number of teams, rounded down, matches per round, so you need that many court-and-time slots in each round. Six teams play 3 matches a round: three courts at one time, or two courts at two times, or one court at three times. Count courts times time slots, not courts alone.
The tool refuses to build the schedule and says how many matches a round needs and how many your courts and times fit, rather than quietly double-booking a court. Add a court, add a time slot, or play fewer teams per night by splitting into pools.
Count how many early slots each team gets across the season and keep the counts within one of each other. The tool assigns slots by seeded simulated annealing against that cost, so in the six-team example every team plays the 18:00 slot two or three times out of five.
Yes. Give that team a time limit such as Lob Squad: 17:00 and it is only offered slots that start by then; rainout moves respect the limit and the validator flags any breach.
The slot search is seeded, so the same teams, courts, times and seed give the same schedule every time. Change the seed to get a different, equally valid arrangement.
Related: how to make a round-robin schedule, byes with an odd number of teams, and rounds and games for 3 to 16 teams.