Skip to content
ClubsAcademiesLeaguesCompare
CoachesParentsPlayers
Game PlanCentro AIRegistrationWebsite builderClub shopBilingual
Age group calculatorFee calculatorBudget calculatorSeason plannerLeague schedule generatorAdmin time calculator
Practice plans by ageStart a club checklistParent message templatesClub bylaws templateTryout evaluation forms
PricingAboutContactBlog
Start free trialLog in
All articles
Club operations

How to build a round-robin soccer league schedule: eight teams, two fields, worked example

A worked eight-team, two-field round robin: count games and slots, pair teams with the circle method, balance home games, fields and kickoffs, and fix closures and byes.

Generated aerial image of two soccer fields side by side on a park lawn, with players spread across both, canopies and folding chairs along the top edge and parked cars to the right.
On this page

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.

The circle method for eight teams: in round 1 Northgate Athletic plays Bayside Rovers, Riverbend FC plays Hillcrest FC, Oakwood United plays Westbrook SC and Cedar Park SC plays Lakeside FC. Northgate Athletic stays fixed and the other seven teams move one position clockwise to create round 2.

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.

Free toolSeason plannerMap out a season week by weekOpen

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.

Run your next season in Centro

Registration, teams, schedules and payments for the whole club.