Croatia vs Albania (Hamburg, 3pm CEST, 2pm BST, 9am ET)
Germany vs Hungary (Stuttgart, 6pm CEST, 5pm BST, 12pm ET)
Scotland vs Switzerland (Cologne, 9pm CEST, 8pm BST, 3pm ET)
Thursday, June 20
Slovenia vs Serbia (Munich, 3pm CEST, 2pm BST, 9am ET)
Denmark vs England (Frankfurt, 6pm CEST, 5pm BST, 12pm ET)
Spain vs Italy (Gelsenkirchen, 9pm CEST, 8pm BST, 3pm ET)
Friday, June 21
Slovakia vs Play-off Winner B (Dusseldorf, 3pm CEST, 2pm BST, 9am ET)
Play-off Winner A vs Austria (Berlin, 6pm CEST, 5pm BST, 12pm ET)
Netherlands vs France (Leipzig, 9pm CEST, 8pm BST, 3pm ET)
Saturday, June 22
Play-off Winner C vs Czech Republic (Hamburg, 3pm CEST, 2pm BST, 9am ET)
Turkey vs Portugal (Dortmund, 6pm CEST, 5pm BST, 12pm ET)
Belgium vs Romania (Cologne, 9pm CEST, 8pm BST, 3pm ET)
Sunday, June 23
Switzerland vs Germany (Frankfurt, 9pm CEST, 8pm BST, 3pm ET)
Scotland vs Hungary (Stuttgart, 9pm CEST, 8pm BST, 3pm ET)
Monday, June 24
Croatia vs Italy (Leipzig, 9pm CEST, 8pm BST, 3pm ET)
Albania vs Spain (Dusseldorf, 9pm CEST, 8pm BST, 3pm ET)
Tuesday, June 25
Netherlands vs Austria (Berlin, 6pm CEST, 5pm BST, 12pm ET)
France vs Play-off Winner A (Dortmund, 6pm CEST, 5pm BST, 12pm ET)
England vs Slovenia (Cologne, 9pm CEST, 8pm BST, 3pm ET)
Denmark vs Serbia (Munich, 9pm CEST, 8pm BST, 3pm ET)
Wednesday, June 26
Slovakia vs Romania (Frankfurt, 6pm CEST, 5pm BST, 12pm ET)
Play-off Winner B vs Belgium (Stuttgart, 6pm CEST, 5pm BST, 12pm ET)
Czech Republic vs Turkey (Hamburg, 9pm CEST, 8pm BST, 3pm ET)
Play-off Winner C vs Portugal (Gelsenkirchen, 9pm CEST, 8pm BST, 3pm ET)
The top two teams from each group and the four best third-placed teams will advance to the round of 16, which will start on 29 June 2024.
Match 38 2A vs 2B (Berlin, 6pm CEST, 5pm BST, 12pm ET)
Match 37 1A vs 2C (Dortmund, 9pm CEST, 8pm BST, 3pm ET)
Sunday, June 30
Match 40 1C vs 3D/E/F (Gelsenkirchen, 6pm CEST, 5pm BST, 12pm ET)
Match 39 1B vs 3A/D/E/F (Cologne, 9pm CEST, 8pm BST, 3pm ET)