Round Robin Court Schedule Calculator
Find pairings, court waves, byes, and elapsed time for a small all-play-all event without assigning a team to overlapping matches.
Why total matches divided by courts is not enough
Every team must meet each other team, but it cannot play two matches at once. This scheduler first creates logical rounds with at most one match per team, then splits a round into waves when there are fewer courts than matches. All waves finish before the next logical round begins. That conservative rule gives a usable conflict-free schedule, not necessarily the shortest possible event.
Method: circle pairings and odd-team byes
For N entrants and c cycles, total matches = c x N(N - 1) / 2, and matches per team = c(N - 1). Even N has N - 1 rounds per cycle. Odd N adds a dummy entrant, giving N rounds per cycle; a pairing with the dummy is a bye. Fix one slot and rotate the others to form each round. Team numbers stay fixed and each unordered pair occurs once per cycle.
Each logical round contains floor(N / 2) matches. With C courts, waves per round W = ceil(floor(N / 2) / C). Round duration B = W x match minutes + (W - 1) x changeover minutes. With R logical rounds total, event minutes = R x B + (R - 1) x round-gap minutes. There is no initial gap and no changeover or rest added after the final match.
The output timestamps are minutes from the event start. Wave j of zero-based round r starts at r(B + gap) + j(match + changeover). Convert those offsets to clock times using your chosen start time. The gap between rounds applies even between the two cycles of a double round robin.
Worked example: six teams on two courts
Six teams playing once produce 15 matches, 5 matches per team, and 5 logical rounds. Each round has 3 matches, so 2 courts require 2 waves. With 20-minute matches and 5-minute wave changeover, each round takes 45 minutes. Four 10-minute round gaps make the whole schedule 5 x 45 + 4 x 10 = 265 minutes, or 4.4167 hours.
Round 1 starts at minute 0: team 1 vs 6 on court 1 and team 2 vs 5 on court 2. At minute 25, team 3 vs 4 uses court 1. Round 2 starts at minute 55. With a third court, all three matches fit one wave and the event falls to 140 minutes. Courts beyond three do not shorten this six-team round-based plan.
Interpret the plan and make room for real play
A bye is a whole-round rest, not a missing match. With odd entrants each team gets one bye per cycle. Teams in earlier waves may rest longer than teams in the last wave. The between-round gap is a minimum within this plan, not an optimized equal-rest schedule. Court allocation is deterministic and is not balanced for preferred courts, officials, skill, or travel.
Use an allocated match duration that includes your scoring format and reasonable overrun allowance. Add check-in, warm-up, meals, awards, setup, weather delays, and any playoff bracket outside this estimate. A court being unused in the last wave does not mean all remaining matches can be moved forward without considering entrant conflicts.
Bounds, assumptions, and reference
Supports 2-32 entrants, 1-16 courts, 1-2 cycles, 1-240 minute matches, 0-60 minute within-round changeovers, and 0-240 minute round gaps. Pair counting and circle rotation are discrete arithmetic, not sport-specific rules or a sanctioning standard. Zero gaps are allowed; zero teams, courts, cycles, or match duration are not.
PrintYourBrackets' round robin generator is a reference for the all-play-all and odd-team-bye format (undated web tool). This page adds an explicit limited-court wave and duration model; it does not certify a competition format.
Related time planning
- Time between dates checks the overall event window.
- Task time estimator plans setup and other work outside the match schedule.
Creator & reviewers
Creator persona
- Riley ChenTime planning & productivity
Reviewer personas
- Devon ShawFormula & assumptions review
- Sage MitchellClarity & usability review