An eight-team division playing everyone once needs 28 games over seven rounds of four games each. With two fields and two kickoffs on a Saturday, you have exactly four slots, so each Saturday is one complete round and the season fits into seven Saturdays.
This guide works through that schedule from start to finish: how to count games and slots, how to pair the teams so nobody is left out, how to share out fields and kickoff times fairly, and what to change when a field closes or a team withdraws. The full schedule and a fairness check are below. The teams are the fictional Sunrise Youth League U-12 division, so you can copy the method with your own names.
Step 1: count games and slots before anything else
Start with two numbers.
Games you need. In a single round robin, every team plays every other team once. With n teams that is n × (n − 1) ÷ 2 games. Eight teams gives 8 × 7 ÷ 2 = 28 games. A double round robin, home and away, doubles it to 56.
Slots you have. A slot is one field at one kickoff time. Two fields with two kickoffs each Saturday is 2 × 2 = 4 slots a day. Over seven Saturdays that is 28 slots, exactly enough. Over a ten-week window it is 40 slots, which leaves 12 spare for weather and make-ups.
If the slots you have are fewer than the games you need, no amount of clever pairing will fix it. Add a field, add a kickoff time, add a weeknight or play fewer games. Our league operations guide explains why leagues should count slots before they accept entries.
How long is a slot? It is the game plus everything around it. In the example, a U-12 9v9 game is 60 minutes, the length used in the Cal South InterCity referee fee schedule for fall 2026, and kickoffs are 90 minutes apart to leave time for halftime, a late start and the changeover. Check your own league's rules for game length.
Step 2: pair the teams with the circle method
The standard way to make sure every team meets every other team exactly once is the circle method. Write the eight teams in two rows of four. Each team plays the team opposite it. That is round 1.
For round 2, keep one team fixed in place and move every other team one position around the circle. The new opposite pairs are round 2. Repeat until you have seven rounds. After that, the next rotation would bring back round 1, which is how you know you are done.
With an odd number of teams, add one extra name to the list, "bye", and run the same method. Whoever is paired with the bye sits out that round, and every team gets exactly one bye in a single round robin.
The pairings are only half the job. The circle method says who plays whom each round. It does not say which team is at home, which field they use or who gets the early kickoff. That is step 3.
Step 3: share out fields, kickoffs and home games fairly
Each team plays seven games, so a perfect split is impossible. The fair target is 3 or 4 of each:
Home and away: every team has 3 or 4 home games. "Home" here means the first-named team, with whatever your league rules attach to it, such as who changes shirts on a color clash or who handles match-day duties.
Early and late kickoffs: every team plays 3 or 4 games at 9:00 and the rest at 10:30. Families notice if one team always has the early start.
Field A and Field B: every team plays 3 or 4 games on each field, so nobody always gets the worse surface or the field farthest from parking.
No long runs: no team has three home or three away games in a row.
Add any real constraints your league has. In this example, Riverbend FC and Cedar Park SC share a head coach, so they never kick off at the same time unless they are playing each other.
The full schedule
Sunrise Youth League, U-12, single round robin. Kickoffs at 9:00 and 10:30 on Fields A and B. The first-named team is the home team.
Round | 9:00 Field A | 9:00 Field B | 10:30 Field A | 10:30 Field B |
|---|---|---|---|---|
1 | Oakwood United v Westbrook SC | Hillcrest FC v Riverbend FC | Northgate Athletic v Bayside Rovers | Cedar Park SC v Lakeside FC |
2 | Oakwood United v Cedar Park SC | Northgate Athletic v Hillcrest FC | Lakeside FC v Riverbend FC | Bayside Rovers v Westbrook SC |
3 | Bayside Rovers v Cedar Park SC | Hillcrest FC v Lakeside FC | Westbrook SC v Northgate Athletic | Riverbend FC v Oakwood United |
4 | Lakeside FC v Northgate Athletic | Cedar Park SC v Westbrook SC | Hillcrest FC v Oakwood United | Riverbend FC v Bayside Rovers |
5 | Oakwood United v Lakeside FC | Westbrook SC v Riverbend FC | Bayside Rovers v Hillcrest FC | Northgate Athletic v Cedar Park SC |
6 | Westbrook SC v Hillcrest FC | Lakeside FC v Bayside Rovers | Cedar Park SC v Riverbend FC | Northgate Athletic v Oakwood United |
7 | Riverbend FC v Northgate Athletic | Oakwood United v Bayside Rovers | Lakeside FC v Westbrook SC | Hillcrest FC v Cedar Park SC |
Riverbend FC and Cedar Park SC are at different kickoff times in every round except round 6, when they play each other.
Check the schedule before you publish it
Count, do not eyeball. Here is the balance for every team in the schedule above.
Team | Home / away | 9:00 / 10:30 | Field A / B |
|---|---|---|---|
Northgate Athletic | 4 / 3 | 3 / 4 | 4 / 3 |
Riverbend FC | 3 / 4 | 3 / 4 | 3 / 4 |
Oakwood United | 4 / 3 | 4 / 3 | 4 / 3 |
Cedar Park SC | 3 / 4 | 3 / 4 | 3 / 4 |
Lakeside FC | 4 / 3 | 4 / 3 | 4 / 3 |
Westbrook SC | 3 / 4 | 4 / 3 | 4 / 3 |
Hillcrest FC | 4 / 3 | 4 / 3 | 3 / 4 |
Bayside Rovers | 3 / 4 | 3 / 4 | 3 / 4 |
Every pair of teams appears exactly once (28 different pairings for eight teams).
No team appears twice on the same day.
Every team has 3 or 4 home games, early kickoffs and games on each field.
No team has three home or three away games in a row.
Coaches with two teams are never booked at the same time.
No game falls on a date your fields are unavailable or a holiday weekend you have promised to keep free.
You have enough referees for every kickoff on every date.
The last line is easy to miss. This schedule has two games at every kickoff time, so if each game has three officials, you need six officials on site each Saturday, assuming each one works both kickoffs.
What to change when something goes wrong
A field closes for one Saturday. Say Field B is unavailable in round 4. Instead of moving the whole round, add two later kickoffs on Field A: 9:00, 10:30, 12:00 and 1:30. Move Cedar Park SC v Westbrook SC to 12:00 and Riverbend FC v Bayside Rovers to 1:30. Check the shared coach again: Cedar Park plays at 12:00 and Riverbend at 1:30, so there is no clash. Tell the four affected teams first, and keep everyone else's times unchanged.
A whole Saturday is lost. Keep the published dates for every other round and play the lost round on a make-up date at the end of the season. Shifting every later round back a week changes dates families have already planned around. Put the make-up date in the schedule from the start, even if you hope not to use it.
A team withdraws after the schedule is out. You do not need to rebuild the schedule. Every game against the withdrawn team becomes a bye for its opponent. If Bayside Rovers withdrew, the byes would fall on Northgate Athletic in round 1, Westbrook SC in round 2, Cedar Park SC in round 3, Riverbend FC in round 4, Hillcrest FC in round 5, Lakeside FC in round 6 and Oakwood United in round 7: one bye each. Each round now has three games and a free slot, which you can use for make-ups. Decide and publish in your league rules, before the season starts, whether games already played against a withdrawn team count in the standings.
You want a double round robin. Run the same seven rounds again with home and away swapped. Then check two things again. Swapping home and away does not balance early and late starts on its own. And where the two halves meet, home runs can build up: in this schedule, Lakeside FC and Riverbend FC would each get three home games in a row across rounds 6 to 9, so swap the home team in one of those games or start the second half from a different round.
Doing this by hand, or with a tool
Eight teams on two fields is a manageable schedule to build by hand with the circle method and a spreadsheet, if you run the balance check above. Twelve teams, three fields, weeknights and blackout dates is where errors start to slip through: a doubled slot, a missing pairing, a team that always kicks off early.
Our free league schedule generator takes your teams, game days, number of fields, kickoffs per field and blackout dates, and produces a single or double round robin with every game on a field and a time. It runs on the website with no account.
Leagues that run their season in Centro can build the schedule inside the league tools, from divisions, match nights and fields. Standings update as soon as a result is entered and are ordered by the tiebreakers the league chooses, such as points, then goal difference, then goals scored, or head-to-head.



