How to build a round-robin schedule for any number of teams (yes, even 7)

Every team plays every other team exactly once. It sounds simple, until you're on week 5 with a whiteboard full of arrows, two teams that have somehow played each other twice, and one team that hasn't played at all since the second week. Here's the method that fixes it, and what to do when your team count refuses to cooperate.

The circle method

The classic algorithm, and the one schedulers have used for over a century, is the circle method. For an even number of teams n, you get n − 1 rounds, each with n / 2 games:

  • Write the teams in two rows: 1–4 on top, 5–8 on the bottom (for 8 teams). Each column is a matchup: that's round one.
  • Freeze team 1 in place. Rotate every other team one position clockwise around the "circle."
  • Read the columns again: that's round two. Repeat until the rotation comes back around.

Because everyone except the anchor moves one seat per round, every pair meets exactly once. Eight teams gives you 7 rounds of 4 games: 28 games, no repeats, no gaps.

Odd team counts: the bye that isn't a problem

With 7 teams, add a phantom eighth team called BYE and run the same rotation. Whoever draws the phantom sits that round. Every team gets exactly one bye across 7 rounds, and the schedule stays perfectly balanced. The mistake organizers make is improvising byes ad hoc: that's how one team ends up sitting twice while another never rests.

Where it gets hard in real life

The math is the easy half. Real leagues add constraints the circle method knows nothing about: three courts but seven games, an 8:15 slot nobody wants twice in a row, a team that can't make week 3, referee duty that has to rotate fairly, and tiers that shouldn't mix. Each constraint is solvable by hand; the combination is why scheduling eats an evening every single week.

That's the part worth automating. The round-robin skeleton takes a napkin. Balancing courts, times, refs, and absences all season is a job for software.

Try it: our free Schedule Generator builds a full round-robin for any team count in your browser. And if you'd rather never think about week 5 again, Smart Scheduling does all of the above, every week, in one click.

Never hand-build a schedule again

See a full season generated in one click.

Book a demo