Fixture planner
One calendar. Every competition. Compare schedules and explore the time between kickoffs.
Built by Sportmonks with the Sportmonks Football API. The data on this site is recorded, not live.
The next three weeks
Who has the busiest schedule?
League nights. Cup ties. European trips. Put them on one calendar and see how closely the kickoffs stack up.
Recorded API data6 clubs · responses dated 19 Oct 2026 · all response pages included
Add Sportmonks responses
Paste a fixtures response or choose saved JSON files. Data stays in this tab, is not uploaded, and clears on refresh. Add each team and every response page. Leave out your API token.
Choose your teams 6/6
One club from each of Europe's top five leagues, plus Feyenoord. Compare up to six teams.
All six club recordings are loaded. Toggle teams to narrow the comparison.
2026-10-19 — 2026-11-08 · UTC · Imported snapshot
Less than 3 days between kickoffs
| TeamsKickoffs in UTC | Week 1 19 Oct — 25 Oct | Week 2 26 Oct — 1 Nov | Week 3 2 Nov — 8 Nov | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mon19 | Tue20 | Wed21 | Thu22 | Fri23 | Sat24 | Sun25 | Mon26 | Tue27 | Wed28 | Thu29 | Fri30 | Sat31 | Sun1 | Mon2 | Tue3 | Wed4 | Thu5 | Fri6 | Sat7 | Sun8 | |
| MCIManchester City | |||||||||||||||||||||
| BARFC Barcelona | |||||||||||||||||||||
| FCBFC Bayern München | |||||||||||||||||||||
| INTInter | |||||||||||||||||||||
| PSGParis Saint Germain | |||||||||||||||||||||
| FEYFeyenoord | |||||||||||||||||||||
Manchester City
FC Barcelona
FC Bayern München
Inter
Paris Saint Germain
Feyenoord
- Manchester City
- 6fixtures in view
- Shortest gap: ≈ 3 days
- FC Barcelona
- 5fixtures in view
- Shortest gap: ≈ 3 days
- FC Bayern München
- 6fixtures in view
- Shortest gap: ≈ 3 days
- Inter
- 6fixtures in view
- Shortest gap: ≈ 3 days
- Paris Saint Germain
- 5fixtures in view
- Shortest gap: ≈ 3 days
- Feyenoord
- 5fixtures in view
- Shortest gap: ≈ 3 days
Fixture details
Select a fixture to explore
See the opponent, competition, status and the time since the previous included kickoff.
Gaps use consecutive kickoffs in the imported data, across all imported competitions. An earlier kickoff can fall before the visible window. Postponed, cancelled, suspended, abandoned, awarded and unconfirmed fixtures do not count. Missing competitions or pages can make gaps look longer. Day labels are rounded estimates from elapsed kickoff times. The 3-day highlight uses the exact gap and is a display threshold, not a claim about fatigue.
Behind the calendar
A small calculation. A few important details.
Compare like with like
Use the same recording window and competition coverage for every team. A missing cup competition can hide a midweek match, so this is a comparison of imported fixtures, not a guarantee of complete schedules.
Days between kickoffs
Calculate elapsed time between consecutive UTC kickoffs and show the result rounded to days. The ≈ symbol marks an estimate; highlights use the exact gap. This avoids local timezone and daylight-saving differences. Kickoff gaps do not measure time after the final whistle, travel or player workload.
Keep uncertainty visible
Unscheduled games stay off the date grid. Postponed or cancelled games remain labelled where a timestamp exists, but do not create gaps. Conflicting copies of a fixture are rejected rather than silently choosing one.
Get the data
All six schedules are bundled from the supplied responses dated 19 October 2026. The six responses contain 45 fixture entries, merged into 42 unique matches because three matches appear in both clubs' responses. Every response reports no additional pages. Use these requests to refresh the same recording window; the earlier week provides context for the first visible gap.
GET https://api.sportmonks.com/v3/football/fixtures/between/2026-10-12/2026-11-09/9
?api_token={{apiToken}}
&include=participants;league;state
&per_page=50
&page=1GET https://api.sportmonks.com/v3/football/fixtures/between/2026-10-12/2026-11-09/83
?api_token={{apiToken}}
&include=participants;league;state
&per_page=50
&page=1GET https://api.sportmonks.com/v3/football/fixtures/between/2026-10-12/2026-11-09/503
?api_token={{apiToken}}
&include=participants;league;state
&per_page=50
&page=1GET https://api.sportmonks.com/v3/football/fixtures/between/2026-10-12/2026-11-09/2930
?api_token={{apiToken}}
&include=participants;league;state
&per_page=50
&page=1GET https://api.sportmonks.com/v3/football/fixtures/between/2026-10-12/2026-11-09/591
?api_token={{apiToken}}
&include=participants;league;state
&per_page=50
&page=1GET https://api.sportmonks.com/v3/football/fixtures/between/2026-10-12/2026-11-09/73
?api_token={{apiToken}}
&include=participants;league;state
&per_page=50
&page=1GET https://api.sportmonks.com/v3/football/fixtures/between/2026-10-12/2026-11-09/{team_id}
?api_token={{apiToken}}
&include=participants;league;state
&per_page=50
&page=1If pagination.has_more is true, increase page until it is false. The imported JSON is processed locally; this demo never calls the API or stores your response.
| Field | Used for |
|---|---|
| id | Deduplicate a shared match returned in both teams' responses. |
| starting_at_timestamp | Place fixtures on UTC dates and calculate elapsed hours. |
| participants[].id, name, short_code | Identify teams and label opponents. |
| participants[].meta.location | Read home/away explicitly, independent of array order. |
| league.id, league.name | Combine competitions or inspect one competition at a time. |
| state.developer_name, state.name, placeholder | Keep fixtures with uncertain or inactive schedules out of gap calculations. |
| pagination.has_more | Warn when another response page is available. |