Cookies
Cookies: your timezone and starred teams stay on your device. Advertising loads only if you accept, and “Cookie settings” in the footer changes your mind any time. Privacy policy
A column per date, so a club's row runs left to right in the order it plays. Most columns are empty — a club plays about once a week — and that emptiness is the shape of a football season.
Pinned on this device. A pinned team also sits at the top of its league's grid — star a row there, or use the button on a team's own page.
All 20 clubs and the whole season on one screen, a column per date, with kick-off times in your own timezone and the ones the broadcasters have not fixed yet marked as such.
All 24 clubs and the whole season on one screen, a column per date, with kick-off times in your own timezone and the ones the broadcasters have not fixed yet marked as such.
All 18 clubs and the whole season on one screen, a column per date, with kick-off times in your own timezone and the ones the broadcasters have not fixed yet marked as such.
All 20 clubs and the whole season on one screen, a column per date, with kick-off times in your own timezone and the ones the broadcasters have not fixed yet marked as such.
All 20 clubs and the whole season on one screen, a column per date, with kick-off times in your own timezone and the ones the broadcasters have not fixed yet marked as such.
All 18 clubs and the whole season on one screen, a column per date, with kick-off times in your own timezone and the ones the broadcasters have not fixed yet marked as such.
All 18 clubs and the whole season on one screen, a column per date, with kick-off times in your own timezone and the ones the broadcasters have not fixed yet marked as such.
All 18 clubs and the whole season on one screen, a column per date, with kick-off times in your own timezone and the ones the broadcasters have not fixed yet marked as such.
All 36 clubs and the whole season on one screen, a column per date, with kick-off times in your own timezone and the ones the broadcasters have not fixed yet marked as such.
Champions League schedule grid
A football season runs from August to May and a club plays about once a week, so the season is long, thin and awkward to see whole. The grid puts every club down the left and every date across the top, and names the opponent in the cell where they meet. Reading a column tells you everything on that day at once; reading a row tells you which four clubs a side meets over the next month, and how the matches are spaced — which is the part that decides how a run of results should be read.
Nine competitions are covered — Premier League, Championship, Bundesliga, Serie A, La Liga, Ligue 1, Eredivisie, Primeira Liga, Champions League — across England, Germany, Italy, Spain, France, the Netherlands, Portugal and Europe, 192 clubs in all. Home and away are marked by colour and by an @ before away opponents, and once a match has been played its final score replaces the matchup, so the same page carries the season behind you and the season ahead.
A schedule is published a season ahead; kick-off times are not. Broadcasters select matches about five or six weeks out, and only then is a match pinned to a slot — it can move day as well as time. Until then the grid shows the date and no clock, because a placeholder a reader cannot tell from a real kick-off is worse than no time at all. Confirmed kick-offs are converted into your own timezone automatically, with a manual override, which is the difference between a Sunday 4.30pm kick-off and whatever that is where you are reading.
Each of the 192 clubs above has a full schedule page: every match with its kick-off in your timezone where it is confirmed, the home and away split, and the ground. The competition's grid is one click away from each of them.
9 competitions: Premier League, Championship, Bundesliga, Serie A, La Liga, Ligue 1, Eredivisie, Primeira Liga, Champions League. Each has a whole-season grid with every club as a row and every date as a column, and each of its 192 clubs has a schedule page of its own.
Because it has not been decided yet. A schedule is published for the whole season up front, but kick-off times are confirmed only about five or six weeks ahead, once broadcasters have picked which matches to televise — and a match can move day as well as time when that happens. A match whose time is still open is marked with a ? rather than given a placeholder time that would quietly change.
Because a club plays about once a week over a season that runs from August to May, so the 380 matches of a division spread across roughly 290 dates. Every column is a date, the same as on every other grid on this site, and the empty ones are the shape of a football season rather than missing data. The gain is that a club's row reads left to right in the order it actually plays, and the gap between two matches is drawn to scale — a midweek match in a congested run sits where it belongs.
Not in the league grids: a page titled Premier League schedule should contain league matches and nothing else, and mixing a cup tie into those columns would make the table answer a question nobody asked it. A page titled Premier League schedule should contain Premier League matches and nothing else. The Champions League has a grid of its own for the league phase, and its knockout ties are listed underneath it, where they can carry their own dates.
They are refetched every night from football-data.org, and the pages are rebuilt when something has actually changed — a match moved, a kick-off time confirmed, a final score. Confirmed times replace the ? mark as soon as the broadcasters have chosen.