{"id":52341,"date":"2026-09-16T16:02:47","date_gmt":"2026-09-16T14:02:47","guid":{"rendered":"https:\/\/www.recharge.com\/blog\/f1-2027-calendar"},"modified":"2026-09-16T16:26:12","modified_gmt":"2026-09-16T14:26:12","slug":"f1-2027-calendar","status":"publish","type":"post","link":"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar","title":{"rendered":"F1 2027 Calendar: All 24 Races, Dates, Sprints and What Changed"},"content":{"rendered":"\n<p>Formula 1 and the FIA confirmed the 2027 calendar on 16 September 2026, after approval by the World Motor Sport Council. It runs to <strong>24 Grands Prix in 22 countries<\/strong>, opens in Bahrain on Sunday 14 March and closes in Abu Dhabi on Sunday 12 December. Ten weekends carry a Sprint, up from six in 2026. Pre-season testing is in Bahrain from 24 to 27 February.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What changed for 2027<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Portugal is back.<\/strong> The Portuguese Grand Prix at Portim\u00e3o returns on 20 June, its first appearance since 2021.<\/li><li><strong>T\u00fcrkiye is back.<\/strong> The Turkish Grand Prix returns on 3 October, also for the first time since 2021, slotted between Baku and Singapore.<\/li><li><strong>Zandvoort is out.<\/strong> The Dutch Grand Prix drops off the schedule as expected.<\/li><li><strong>Barcelona and Spa now rotate.<\/strong> The Circuit de Barcelona-Catalunya hosts a Spanish race in even years from 2028, Spa-Francorchamps hosts the Belgian Grand Prix in odd years from 2027. The 2027 Spanish Grand Prix is in Madrid on 12 September.<\/li><li><strong>Ten Sprints.<\/strong> Bahrain, Australia, Japan, Monaco and Abu Dhabi host a Sprint for the first time; Montreal, Silverstone, Monza, S\u00e3o Paulo and Lusail keep theirs. For the first time both the opener and the finale are Sprint weekends, and Monaco&#8217;s Sprint format means two qualifying sessions on the streets.<\/li><li><strong>One Saturday race.<\/strong> Las Vegas is the only Saturday Grand Prix of the year, which lands on Sunday morning UK time.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">The full 2027 F1 calendar<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Round<\/th><th>Grand Prix<\/th><th>Venue<\/th><th>Race day<\/th><th>Format<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td>Bahrain Grand Prix<\/td><td>Sakhir<\/td><td>Sun 14 Mar<\/td><td>Sprint<\/td><\/tr><tr><td>2<\/td><td>Saudi Arabian Grand Prix<\/td><td>Saudi Arabia<\/td><td>Sun 21 Mar<\/td><td><\/td><\/tr><tr><td>3<\/td><td>Australian Grand Prix<\/td><td>Melbourne<\/td><td>Sun 4 Apr<\/td><td>Sprint<\/td><\/tr><tr><td>4<\/td><td>Japanese Grand Prix<\/td><td>Suzuka<\/td><td>Sun 11 Apr<\/td><td>Sprint<\/td><\/tr><tr><td>5<\/td><td>Chinese Grand Prix<\/td><td>Shanghai<\/td><td>Sun 18 Apr<\/td><td><\/td><\/tr><tr><td>6<\/td><td>Miami Grand Prix<\/td><td>Miami<\/td><td>Sun 2 May<\/td><td><\/td><\/tr><tr><td>7<\/td><td>Canadian Grand Prix<\/td><td>Montreal<\/td><td>Sun 23 May<\/td><td>Sprint<\/td><\/tr><tr><td>8<\/td><td>Monaco Grand Prix<\/td><td>Monaco<\/td><td>Sun 6 Jun<\/td><td>Sprint<\/td><\/tr><tr><td>9<\/td><td>Portuguese Grand Prix<\/td><td>Portim\u00e3o<\/td><td>Sun 20 Jun<\/td><td><\/td><\/tr><tr><td>10<\/td><td>British Grand Prix<\/td><td>Silverstone<\/td><td>Sun 4 Jul<\/td><td>Sprint<\/td><\/tr><tr><td>11<\/td><td>Austrian Grand Prix<\/td><td>Spielberg<\/td><td>Sun 11 Jul<\/td><td><\/td><\/tr><tr><td>12<\/td><td>Belgian Grand Prix<\/td><td>Spa-Francorchamps<\/td><td>Sun 25 Jul<\/td><td><\/td><\/tr><tr><td>13<\/td><td>Hungarian Grand Prix<\/td><td>Budapest<\/td><td>Sun 1 Aug<\/td><td><\/td><\/tr><tr><td>14<\/td><td>Italian Grand Prix<\/td><td>Monza<\/td><td>Sun 5 Sep<\/td><td>Sprint<\/td><\/tr><tr><td>15<\/td><td>Spanish Grand Prix<\/td><td>Madrid<\/td><td>Sun 12 Sep<\/td><td><\/td><\/tr><tr><td>16<\/td><td>Azerbaijan Grand Prix<\/td><td>Baku<\/td><td>Sun 26 Sep<\/td><td><\/td><\/tr><tr><td>17<\/td><td>Turkish Grand Prix<\/td><td>T\u00fcrkiye<\/td><td>Sun 3 Oct<\/td><td><\/td><\/tr><tr><td>18<\/td><td>Singapore Grand Prix<\/td><td>Marina Bay<\/td><td>Sun 10 Oct<\/td><td><\/td><\/tr><tr><td>19<\/td><td>United States Grand Prix<\/td><td>Austin<\/td><td>Sun 24 Oct<\/td><td><\/td><\/tr><tr><td>20<\/td><td>Mexico City Grand Prix<\/td><td>Mexico City<\/td><td>Sun 31 Oct<\/td><td><\/td><\/tr><tr><td>21<\/td><td>S\u00e3o Paulo Grand Prix<\/td><td>Interlagos<\/td><td>Sun 7 Nov<\/td><td>Sprint<\/td><\/tr><tr><td>22<\/td><td>Las Vegas Grand Prix<\/td><td>Las Vegas<\/td><td>Sat 20 Nov<\/td><td><\/td><\/tr><tr><td>23<\/td><td>Qatar Grand Prix<\/td><td>Lusail<\/td><td>Sun 5 Dec<\/td><td>Sprint<\/td><\/tr><tr><td>24<\/td><td>Abu Dhabi Grand Prix<\/td><td>Yas Marina<\/td><td>Sun 12 Dec<\/td><td>Sprint<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Race days as announced by the FIA on 16 September 2026. All Sundays except Las Vegas (Saturday). Dates can change before the season.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The 10 Sprint weekends<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Bahrain, 14 March (new)<\/li><li>Australia, 4 April (new)<\/li><li>Japan, 11 April (new)<\/li><li>Canada, 23 May<\/li><li>Monaco, 6 June (new)<\/li><li>Great Britain, 4 July<\/li><li>Italy, 5 September<\/li><li>S\u00e3o Paulo, 7 November<\/li><li>Qatar, 5 December<\/li><li>Abu Dhabi, 12 December (new)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Race the season before it starts<\/h2>\n\n\n\n<p>There is no standalone F1 26 this year. EA kept <strong>F1 25<\/strong> as the base game and added the 2026 grid as the <strong>2026 Season Pack<\/strong> on 3 June 2026, so that is the game the 2027 grid will be racing in until the next release. It runs on PlayStation 5, Xbox Series X|S and PC via Steam. The quickest way to fund it is store credit for your platform, delivered by email in seconds:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.recharge.com\/en\/gb\/playstation-store?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=f1_2027_calendar\">PlayStation Store gift card<\/a><\/li><li><a href=\"https:\/\/www.recharge.com\/en\/gb\/xbox-gift-card?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=f1_2027_calendar\">Xbox gift card<\/a><\/li><li><a href=\"https:\/\/www.recharge.com\/en\/gb\/steam?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=f1_2027_calendar\">Steam gift card<\/a><\/li><\/ul>\n\n\n\n<p>Codes are region-locked, so pick the store that matches your account&#8217;s country. Recharge.com is a certified reseller with more than 23 payment methods, including PayPal and Apple Pay.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sources<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.fia.com\/news\/2027-fia-formula-one-world-championship-calendar-announced\" rel=\"nofollow noopener\" target=\"_blank\">FIA: 2027 FIA Formula One World Championship calendar announced<\/a><\/li><li><a href=\"https:\/\/www.formula1.com\/en\/latest\/article\/formula-1-reveals-calendar-for-2027-season-with-10-sprint-events.5J8ePLyjRuMyWEIDNUKgY4\" rel=\"nofollow noopener\" target=\"_blank\">Formula1.com: Formula 1 reveals calendar for 2027 season with 10 Sprint events<\/a><\/li><li><a href=\"https:\/\/www.skysports.com\/f1\/news\/12433\/13588439\/f1-2027-calendar-announced-with-bahrain-to-host-season-opener-and-increase-in-sprint-weekends-in-24-race-schedule\" rel=\"nofollow noopener\" target=\"_blank\">Sky Sports: F1 2027 calendar announced<\/a><\/li><li><a href=\"https:\/\/www.ea.com\/en\/games\/f1\/f1-25\/news\/f1-25-2026-season-pack-official-reveal\" rel=\"nofollow noopener\" target=\"_blank\">EA: F1 25 2026 Season Pack<\/a><\/li><\/ul>\n\n\n\n<p><em>Unofficial fan content by Recharge.com, not affiliated with Formula 1, the FIA or EA. Calendar details reflect the 16 September 2026 announcement.<\/em><\/p>\n\n\n\n<!-- F1 2027 popup (X5). Lights-out reaction + 5-second tap race against three cars, 30 taps to the flag, platform choice, region-matched store, countdown to Bahrain. Edit copy in the markup, dates and timings in CFG. -->\n<style>\n#rcm-root{position:fixed;inset:0;z-index:2147483000;font-family:Poppins,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-align:left}\n#rcm-root .rcm-backdrop{position:absolute;inset:0;background:rgba(0,18,22,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .35s ease}\n#rcm-root .rcm-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.94);width:min(94vw,880px);max-height:94vh;overflow:auto;box-sizing:border-box;opacity:0;outline:none;border-radius:28px;background:#0c0f14;box-shadow:0 40px 100px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.07);display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);transition:opacity .35s ease,transform .5s cubic-bezier(.2,.9,.2,1.08)}\n#rcm-root.rcm-in .rcm-backdrop{opacity:1}\n#rcm-root.rcm-in .rcm-card{opacity:1;transform:translate(-50%,-50%) scale(1)}\n#rcm-root .rcm-x{position:absolute;top:12px;right:12px;z-index:6;width:36px;height:36px;margin:0;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff!important;font-size:22px;line-height:36px;text-align:center;cursor:pointer;transition:transform .2s ease,background .2s ease}\n#rcm-root .rcm-x:hover{background:rgba(255,255,255,.22);transform:rotate(90deg)}\n#rcm-root .rcm-stage{position:relative;overflow:hidden;display:block;padding:0;min-height:440px;background:linear-gradient(180deg,#12161c 0%,#0f1319 55%,#080a0d 100%);touch-action:none;user-select:none;-webkit-user-select:none}\n#rcm-root .rcm-pitch{position:absolute;left:-30%;right:-30%;bottom:-8%;height:70%;z-index:1;background:repeating-linear-gradient(0deg,rgba(255,255,255,.09) 0 2px,rgba(255,255,255,0) 2px 40px),repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 2px,rgba(255,255,255,0) 2px 60px);transform:perspective(420px) rotateX(58deg);transform-origin:50% 100%;pointer-events:none}\n#rcm-root .rcm-pitch::after{content:\"\";position:absolute;left:50%;top:0;width:34%;padding-top:34%;margin-left:-17%;border:2px solid rgba(255,255,255,.12);border-radius:50%}\n#rcm-root .rcm-light{position:absolute;left:-40%;top:-30%;width:40%;height:160%;z-index:1;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.12),rgba(255,255,255,0));transform:skewX(-16deg);animation:rcmSweep 6s ease-in-out 1s infinite;pointer-events:none}\n#rcm-root .rcm-game{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:2;cursor:pointer;outline:none}\n#rcm-root .rcm-game:focus-visible{box-shadow:inset 0 0 0 2px #ff2a1a}\n#rcm-root .rcm-score{position:absolute;left:18px;top:16px;z-index:3;display:flex;align-items:flex-end;gap:14px;pointer-events:none}\n#rcm-root .rcm-hits-wrap{display:flex;align-items:baseline;gap:6px}\n#rcm-root .rcm-hits{font-size:44px;line-height:1;font-weight:600;color:#ff2a1a!important;text-shadow:0 0 22px rgba(255,42,26,.55);font-variant-numeric:tabular-nums;display:inline-block}\n#rcm-root .rcm-hits.is-bump{animation:rcmHit .35s cubic-bezier(.2,.9,.2,1.4)}\n#rcm-root .rcm-hits.is-miss{animation:rcmMiss .5s ease}\n#rcm-root .rcm-hits-wrap span{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#8fb0ac!important;font-weight:600}\n#rcm-root .rcm-best{font-size:12px;font-style:normal;color:#b9d0cd!important;font-weight:500;padding-bottom:6px}\n#rcm-root .rcm-challenge{position:absolute;left:18px;right:18px;bottom:14px;z-index:3;margin:0;font-size:12.5px;color:#d5e6e3!important;pointer-events:none;text-align:center}\n#rcm-root .rcm-challenge b{color:#ff2a1a!important;font-weight:600}\n#rcm-root .rcm-reward{position:absolute;left:18px;right:18px;bottom:16px;z-index:4;padding:12px 14px 12px;border-radius:16px;background:rgba(7,28,31,.94);border:1px solid rgba(255,42,26,.45);display:flex;align-items:center;gap:12px;animation:rcmRise .5s cubic-bezier(.2,.9,.2,1) both;pointer-events:auto;cursor:pointer;text-decoration:none!important;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}\n#rcm-root .rcm-reward:hover,#rcm-root .rcm-reward:focus-visible{transform:translateY(-2px);border-color:#ff2a1a;box-shadow:0 14px 30px rgba(255,42,26,.25);outline:none}\n#rcm-root .rcm-reward-go{color:#ff2a1a!important;text-decoration:underline;text-underline-offset:3px}\n#rcm-root .rcm-reward-arrow{flex:0 0 auto;font-size:26px;line-height:1;color:#ff2a1a!important;font-weight:600;margin-left:auto}\n#rcm-root .rcm-reward[hidden]{display:none}\n#rcm-root .rcm-reward .rcm-hero{width:38%;height:auto;border-radius:10px;box-shadow:0 14px 30px rgba(0,0,0,.5);transform:rotate(-4deg)}\n#rcm-root .rcm-reward p{margin:0;font-size:13px;line-height:1.4;color:#fff!important;font-weight:600;flex:1;min-width:0}\n#rcm-root .rcm-cta.is-pulse{animation:rcmPulseBtn 1.6s ease-in-out infinite}\n@keyframes rcmPulseBtn{0%,100%{box-shadow:0 12px 26px rgba(255,42,26,.4)}50%{box-shadow:0 12px 40px rgba(255,42,26,.75)}}\n@keyframes rcmHit{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}\n@keyframes rcmMiss{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}60%{transform:translateX(6px)}}\n#rcm-root .rcm-body{padding:30px 32px 26px;min-width:0;color:#e9f2f1}\n#rcm-root .rcm-rise{opacity:0;transform:translateY(14px)}\n#rcm-root.rcm-in .rcm-rise{animation:rcmRise .55s cubic-bezier(.2,.9,.2,1) both}\n#rcm-root.rcm-in .rcm-rise:nth-child(1){animation-delay:.16s}#rcm-root.rcm-in .rcm-rise:nth-child(2){animation-delay:.22s}#rcm-root.rcm-in .rcm-rise:nth-child(3){animation-delay:.28s}#rcm-root.rcm-in .rcm-rise:nth-child(4){animation-delay:.34s}#rcm-root.rcm-in .rcm-rise:nth-child(5){animation-delay:.4s}#rcm-root.rcm-in .rcm-rise:nth-child(6){animation-delay:.46s}#rcm-root.rcm-in .rcm-rise:nth-child(7){animation-delay:.52s}#rcm-root.rcm-in .rcm-rise:nth-child(8){animation-delay:.58s}#rcm-root.rcm-in .rcm-rise:nth-child(9){animation-delay:.64s}\n#rcm-root .rcm-eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;padding:5px 11px 5px 9px;border-radius:999px;background:rgba(255,42,26,.14);color:#ff2a1a!important;font-size:12px;font-weight:600;letter-spacing:.02em;line-height:1.4}\n#rcm-root .rcm-dot{width:7px;height:7px;border-radius:50%;background:#ff2a1a;animation:rcmPulse 1.6s ease-in-out infinite}\n#rcm-root .rcm-title{margin:0 0 14px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-.01em;color:#fff!important}\n#rcm-root .rcm-board{margin:0 0 16px;padding:12px 14px 10px;border-radius:14px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08)}\n#rcm-root .rcm-board-label{margin:0 0 8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8fb0ac!important;font-weight:600}\n#rcm-root .rcm-count{display:flex;gap:6px;align-items:flex-end}\n#rcm-root .rcm-unit{flex:1;min-width:0;text-align:center}\n#rcm-root .rcm-num{display:block;font-size:28px;line-height:1;font-weight:600;color:#ff2a1a!important;font-variant-numeric:tabular-nums;text-shadow:0 0 18px rgba(255,42,26,.55);transform-origin:50% 100%}\n#rcm-root .rcm-num.is-flip{animation:rcmFlipIn .45s cubic-bezier(.2,.9,.2,1)}\n#rcm-root .rcm-lab{display:block;margin-top:4px;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#8fb0ac!important;font-weight:600}\n#rcm-root .rcm-sep{align-self:flex-start;padding-top:2px;color:rgba(255,42,26,.6);font-size:22px;font-weight:600;line-height:1}\n#rcm-root .rcm-date{margin:8px 0 0;font-size:12px;color:#b9d0cd!important}\n#rcm-root .rcm-pick{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#8fb0ac!important}\n#rcm-root .rcm-plats{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}\n#rcm-root .rcm-plat{display:inline-flex;align-items:center;gap:8px;margin:0;padding:10px 14px;border-radius:999px;border:1.5px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);color:#fff!important;font-family:inherit;font-size:13.5px;font-weight:600;line-height:1;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s cubic-bezier(.2,.9,.2,1.4)}\n#rcm-root .rcm-plat::before{content:\"\";width:10px;height:10px;border-radius:50%;background:currentColor;opacity:.9}\n#rcm-root .rcm-plat[data-platform=\"playstation\"]::before{background:#2e6bff}\n#rcm-root .rcm-plat[data-platform=\"xbox\"]::before{background:#3ec53e}\n#rcm-root .rcm-plat[data-platform=\"steam\"]::before{background:#66c0f4}\n#rcm-root .rcm-plat:hover,#rcm-root .rcm-plat:focus-visible{transform:translateY(-2px);border-color:rgba(255,255,255,.5)}\n#rcm-root .rcm-plat.is-on{background:#fff!important;border-color:#fff!important;color:#12161c!important;box-shadow:0 10px 22px rgba(0,0,0,.35)}\n#rcm-root .rcm-market{margin:0 0 18px;font-size:12px;color:#b9d0cd!important;display:flex;align-items:center;gap:8px;flex-wrap:wrap}\n#rcm-root .rcm-market .rcm-flag{display:inline-block;padding:3px 8px;border-radius:6px;background:rgba(255,255,255,.08);color:#fff!important;font-weight:600;font-size:11.5px;letter-spacing:.04em}\n#rcm-root .rcm-undo{background:none;border:0;padding:0;margin:0;color:#ff2a1a!important;font-family:inherit;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}\n#rcm-root .rcm-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0}\n#rcm-root .rcm-cta{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:#ff2a1a;color:#12161c!important;text-decoration:none!important;font-weight:600;font-size:15px;line-height:1;padding:15px 24px;border-radius:999px;border:0;box-shadow:0 12px 26px rgba(255,42,26,.4);transition:transform .15s ease,box-shadow .15s ease;will-change:transform}\n#rcm-root .rcm-cta:hover,#rcm-root .rcm-cta:focus-visible{box-shadow:0 16px 32px rgba(255,42,26,.5);color:#12161c!important}\n#rcm-root .rcm-cta::after{content:\"\";position:absolute;top:-20%;bottom:-20%;left:0;width:40%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.55),rgba(255,255,255,0));animation:rcmShine 4s ease-in-out 1.5s infinite}\n#rcm-root .rcm-cta-text{display:inline-block}\n#rcm-root .rcm-cta-text.is-swap{animation:rcmSwap .38s cubic-bezier(.2,.9,.2,1.2)}\n#rcm-root .rcm-later{background:none;border:0;margin:0;padding:8px 4px;color:#8fb0ac!important;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:3px;box-shadow:none}\n#rcm-root .rcm-later:hover{color:#fff!important}\nhtml.rcm-lock{overflow:hidden}\n@keyframes rcmRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}\n@keyframes rcmSwap{0%{opacity:0;transform:translateY(8px) scale(.96)}100%{opacity:1;transform:none}}\n@keyframes rcmFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}\n@keyframes rcmDrop{0%{opacity:0;transform:translateY(-50px) scale(.9)}100%{opacity:1;transform:none}}\n@keyframes rcmSweep{0%{left:-45%}55%,100%{left:125%}}\n@keyframes rcmPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.55}}\n@keyframes rcmFlipIn{0%{transform:rotateX(-90deg);opacity:0}100%{transform:none;opacity:1}}\n@keyframes rcmShine{0%,70%{transform:translateX(-140%) skewX(-18deg)}100%{transform:translateX(220%) skewX(-18deg)}}\n@keyframes rcmBump{0%{transform:scale(1)}40%{transform:scale(1.06) rotate(-2deg)}100%{transform:scale(1)}}\n@keyframes rcmSpark{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2)}}\n@media (max-width:719px){\n#rcm-root .rcm-card{grid-template-columns:1fr;width:min(94vw,440px);border-radius:22px}\n#rcm-root .rcm-stage{min-height:250px}\n#rcm-root .rcm-hits{font-size:36px}\n#rcm-root .rcm-challenge{font-size:12px;bottom:10px}\n#rcm-root .rcm-reward{padding:10px 12px}\n#rcm-root .rcm-reward .rcm-hero{width:34%}\n#rcm-root .rcm-glow{top:50%}\n#rcm-root .rcm-body{padding:16px 18px 16px}\n#rcm-root .rcm-eyebrow{margin-bottom:8px}\n#rcm-root .rcm-title{font-size:20px;margin-bottom:10px}\n#rcm-root .rcm-board{padding:10px 12px 8px;margin-bottom:12px}\n#rcm-root .rcm-board-label{font-size:10px;margin-bottom:6px}\n#rcm-root .rcm-num{font-size:22px}\n#rcm-root .rcm-date{font-size:11px;margin-top:6px}\n#rcm-root .rcm-pick{margin-bottom:6px}\n#rcm-root .rcm-plats{gap:6px;margin-bottom:10px;flex-wrap:nowrap}\n#rcm-root .rcm-plat{padding:8px 8px;font-size:12px;gap:6px;flex:1;justify-content:center;white-space:nowrap}\n#rcm-root .rcm-market{margin-bottom:12px}\n#rcm-root .rcm-market-text{display:none}\n#rcm-root .rcm-actions{margin-bottom:0}\n#rcm-root .rcm-actions{flex-direction:column;align-items:stretch;gap:6px}\n#rcm-root .rcm-cta{width:100%;box-sizing:border-box}\n}\n@media (prefers-reduced-motion:reduce){#rcm-root *,#rcm-root *::before,#rcm-root *::after{animation:none!important;transition:none!important}#rcm-root .rcm-rise{opacity:1;transform:none}}\n\n#rcm-root .rcm-lights{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:3;display:flex;gap:10px;padding:10px 12px;border-radius:14px;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.08);pointer-events:none}\n#rcm-root .rcm-lights i{width:22px;height:22px;border-radius:50%;background:#2a1010;border:1px solid rgba(255,255,255,.08);transition:background .12s ease,box-shadow .12s ease}\n#rcm-root .rcm-lights i.on{background:#ff2a1a;box-shadow:0 0 16px rgba(255,42,26,.9)}\n#rcm-root .rcm-lights.go i{background:#22c55e;box-shadow:0 0 16px rgba(34,197,94,.9)}\n#rcm-root .rcm-hits{color:#ff4d3d!important;text-shadow:0 0 22px rgba(255,42,26,.55)}\n#rcm-root .rcm-react{position:absolute;right:18px;top:16px;z-index:3;text-align:right;pointer-events:none}\n#rcm-root .rcm-react b{display:block;font-size:22px;line-height:1;color:#fff!important;font-variant-numeric:tabular-nums}\n#rcm-root .rcm-react span{display:block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#8a939c!important;font-weight:600;margin-top:4px}\n#rcm-root .rcm-score{top:56px}\n#rcm-root .rcm-best{color:#c9d1d9!important}\n#rcm-root .rcm-hits-wrap span{color:#8a939c!important}\n#rcm-root .rcm-challenge{color:#d5dbe1!important}\n#rcm-root .rcm-challenge b{color:#ff4d3d!important}\n#rcm-root .rcm-eyebrow{background:rgba(255,42,26,.16);color:#ff6b5e!important}\n#rcm-root .rcm-dot{background:#ff2a1a}\n#rcm-root .rcm-num{color:#ff4d3d!important;text-shadow:0 0 18px rgba(255,42,26,.55)}\n#rcm-root .rcm-sep{color:rgba(255,42,26,.6)}\n#rcm-root .rcm-plat.is-on{background:#fff!important;border-color:#fff!important;color:#12161c!important}\n#rcm-root .rcm-cta{background:#ff2a1a;color:#fff!important;box-shadow:0 12px 26px rgba(255,42,26,.4)}\n#rcm-root .rcm-cta:hover,#rcm-root .rcm-cta:focus-visible{box-shadow:0 16px 32px rgba(255,42,26,.5);color:#fff!important}\n#rcm-root .rcm-cta.is-pulse{animation:rcmPulseBtnF1 1.6s ease-in-out infinite}\n@keyframes rcmPulseBtnF1{0%,100%{box-shadow:0 12px 26px rgba(255,42,26,.4)}50%{box-shadow:0 12px 40px rgba(255,42,26,.8)}}\n#rcm-root .rcm-reward{border-color:rgba(255,42,26,.5);background:rgba(12,15,20,.95)}\n#rcm-root .rcm-reward:hover,#rcm-root .rcm-reward:focus-visible{border-color:#ff2a1a;box-shadow:0 14px 30px rgba(255,42,26,.25)}\n#rcm-root .rcm-reward-go,#rcm-root .rcm-reward-arrow{color:#ff6b5e!important}\n#rcm-root .rcm-glow{background:radial-gradient(closest-side,rgba(255,42,26,.35),rgba(255,42,26,0))}\n#rcm-root .rcm-undo{color:#ff6b5e!important}\n#rcm-root .rcm-later:hover{color:#fff!important}\n#rcm-root .rcm-flag{background:rgba(255,255,255,.1)}\n@media (max-width:719px){#rcm-root .rcm-lights i{width:16px;height:16px}#rcm-root .rcm-lights{top:10px;gap:7px;padding:8px 10px}#rcm-root .rcm-score{top:46px}#rcm-root .rcm-react{top:46px}#rcm-root .rcm-stage{min-height:300px}}\n<\/style>\n<div id=\"rcm-root\" style=\"display:none\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"rcm-title\">\n  <div class=\"rcm-backdrop\" data-rcm-close=\"1\"><\/div>\n  <div class=\"rcm-card\" tabindex=\"-1\">\n    <button type=\"button\" class=\"rcm-x\" data-rcm-close=\"1\" aria-label=\"Close\">\u00d7<\/button>\n    <div class=\"rcm-stage\">\n      <span class=\"rcm-glow\"><\/span><span class=\"rcm-pitch\"><\/span><span class=\"rcm-light\"><\/span>\n      <canvas class=\"rcm-game\" tabindex=\"0\" aria-label=\"Lights-out race: wait for the five red lights to go out, then tap as fast as you can. Space bar also taps\"><\/canvas>\n      <div class=\"rcm-lights\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><i><\/i><i><\/i><\/div>\n      <div class=\"rcm-react\"><b class=\"rcm-react-val\">&#8212;<\/b><span>reaction<\/span><\/div>\n      <div class=\"rcm-score\"><div class=\"rcm-hits-wrap\"><b class=\"rcm-hits\">0<\/b><span>taps<\/span><\/div><em class=\"rcm-best\">Best 0<\/em><\/div>\n      <p class=\"rcm-challenge\">Wait for the lights. When they go out, tap like mad: <b>30<\/b> taps in 5 seconds beats the pack.<\/p>\n      <a class=\"rcm-reward\" hidden href=\"https:\/\/www.recharge.com\/en\/gb\/playstation-store\"><img loading=\"lazy\" class=\"rcm-hero\" src=\"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16135154\/playstation-gift-card-800.webp\" alt=\"PlayStation gift card\" width=\"800\" height=\"500\" decoding=\"async\"><p>Chequered flag. Fund your race. <span class=\"rcm-reward-go\">Get PlayStation Store credit<\/span><\/p><b class=\"rcm-reward-arrow\">\u203a<\/b><\/a>\n    <\/div>\n    <div class=\"rcm-body\">\n      <p class=\"rcm-eyebrow rcm-rise\"><span class=\"rcm-dot\"><\/span><span class=\"rcm-eyebrow-dyn\">F1 2027 calendar is out<\/span><\/p>\n      <p class=\"rcm-title rcm-rise\" id=\"rcm-title\">24 races locked in. Is your wallet race-ready?<\/p>\n      <div class=\"rcm-board rcm-rise\" aria-live=\"off\">\n        <p class=\"rcm-board-label\">Lights out in Bahrain in<\/p>\n        <div class=\"rcm-count\">\n          <div class=\"rcm-unit\"><span class=\"rcm-num\" data-unit=\"d\">00<\/span><span class=\"rcm-lab\">days<\/span><\/div><span class=\"rcm-sep\">:<\/span>\n          <div class=\"rcm-unit\"><span class=\"rcm-num\" data-unit=\"h\">00<\/span><span class=\"rcm-lab\">hrs<\/span><\/div><span class=\"rcm-sep\">:<\/span>\n          <div class=\"rcm-unit\"><span class=\"rcm-num\" data-unit=\"m\">00<\/span><span class=\"rcm-lab\">min<\/span><\/div><span class=\"rcm-sep\">:<\/span>\n          <div class=\"rcm-unit\"><span class=\"rcm-num\" data-unit=\"s\">00<\/span><span class=\"rcm-lab\">sec<\/span><\/div>\n        <\/div>\n        <p class=\"rcm-date\">Round 1 \u00b7 Bahrain \u00b7 Sunday 14 March 2027 \u00b7 10 Sprint weekends<\/p>\n      <\/div>\n      <p class=\"rcm-pick rcm-rise\">Where do you race F1?<\/p>\n      <div class=\"rcm-plats rcm-rise\" role=\"radiogroup\" aria-label=\"Platform\">\n        <button type=\"button\" class=\"rcm-plat is-on\" role=\"radio\" aria-checked=\"true\" data-platform=\"playstation\" data-label=\"PlayStation\" data-cta=\"Get PlayStation Store credit\" data-slug=\"playstation-store\" data-color=\"#2e6bff\">PlayStation<\/button>\n        <button type=\"button\" class=\"rcm-plat\" role=\"radio\" aria-checked=\"false\" data-platform=\"xbox\" data-label=\"Xbox\" data-cta=\"Get Xbox credit\" data-slug=\"xbox-gift-card\" data-color=\"#3ec53e\">Xbox<\/button>\n        <button type=\"button\" class=\"rcm-plat\" role=\"radio\" aria-checked=\"false\" data-platform=\"steam\" data-label=\"PC \u00b7 Steam\" data-cta=\"Get Steam credit\" data-slug=\"steam\" data-color=\"#66c0f4\">PC \u00b7 Steam<\/button>\n      <\/div>\n      <p class=\"rcm-market rcm-rise\"><span class=\"rcm-flag\">UK store \u00b7 \u00a3<\/span><span class=\"rcm-market-text\">Region-locked codes, matched to you<\/span><button type=\"button\" class=\"rcm-undo\" hidden>Use the UK store instead<\/button><\/p>\n      <div class=\"rcm-actions rcm-rise\">\n        <a class=\"rcm-cta\" href=\"https:\/\/www.recharge.com\/en\/gb\/playstation-store\"><span class=\"rcm-cta-text\">Get PlayStation Store credit<\/span><\/a>\n        <button type=\"button\" class=\"rcm-later\" data-rcm-close=\"1\">Not now<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n<script>\n(function () {\n  if (window.__rcmFc27) { return; }\n  window.__rcmFc27 = true;\n  var AMP = String.fromCharCode(38);\n  var CFG = {\n    key: 'rcm_f1_lights',\n    mobileSeconds: 10,\n    desktopFallbackSeconds: 20,\n    hideDays: 0,\n    hideDaysAfterClick: 0,\n    launch: '2027-03-14T00:00:00',\n    earlyConsole: '2027-03-14T00:00:00',\n    earlyPC: '2027-03-14T00:00:00',\n    launchText: 'Round 1 \u00b7 Bahrain \u00b7 Sunday 14 March 2027 \u00b7 10 Sprint weekends',\n    exitEyebrow: 'Before you go',\n    backEyebrow: 'Welcome back',\n    blogLocale: '',\n    utm: 'utm_source=blog' + AMP + 'utm_medium=popup' + AMP + 'utm_campaign=f1_2027_lights_out'\n  };\n  var o = window.rcPopOverrides || {};\n  for (var k in o) { if (o.hasOwnProperty(k)) { CFG[k] = o[k]; } }\n\n  var root = document.getElementById('rcm-root');\n  if (!root) { return; }\n  var q = function (s) { return root.querySelector(s); };\n  var card = q('.rcm-card'), cta = q('.rcm-cta'), ctaText = q('.rcm-cta-text'), plats = root.querySelectorAll('.rcm-plat');\n  var stage = q('.rcm-stage'), hero = q('.rcm-hero'), glow = q('.rcm-glow'), game = q('.rcm-game'), hitsEl = q('.rcm-hits'), bestEl = q('.rcm-best'), challenge = q('.rcm-challenge'), reward = q('.rcm-reward'), rewardGo = q('.rcm-reward-go');\n  var nums = root.querySelectorAll('.rcm-num'), board = q('.rcm-board'), boardLabel = q('.rcm-board-label'), dateLine = q('.rcm-date');\n  var eyebrow = q('.rcm-eyebrow-dyn'), title = q('#rcm-title');\n  var flag = q('.rcm-flag'), marketText = q('.rcm-market-text'), undo = q('.rcm-undo');\n  var closers = root.querySelectorAll('[data-rcm-close]');\n  var shown = false, open = false, waiting = false, how = '', timer = 0, last = {};\n  var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var isTouch = window.matchMedia('(hover: none), (pointer: coarse)').matches;\n  if (!isTouch) { if (navigator.maxTouchPoints > 0) { if (window.innerWidth < 900) { isTouch = true; } } }\n  document.body.appendChild(root);\n\n  var IMGS = {\"playstation\": \"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16135154\/playstation-gift-card-800.webp\", \"xbox\": \"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16135157\/xbox-gift-card-800.webp\", \"steam\": \"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16135200\/steam-gift-card-800.webp\"};\n  var STORES = { en: ['us','gb','ca','au','ie','nz','in','za','ae','sg','nl','de','be','at','ch','se','no','dk','fi','pl'], de: ['de'], fr: ['fr'], nl: ['nl'], es: ['es'], it: ['it'], pl: ['pl'], pt: ['pt'] };\n  var DEFAULT_CC = { en: 'gb', de: 'de', fr: 'fr', nl: 'nl', es: 'es', it: 'it', pl: 'pl', pt: 'pt' };\n  var LABEL = { us: 'US store \u00b7 $', gb: 'UK store \u00b7 \u00a3', ca: 'Canada store \u00b7 $', au: 'Australia store \u00b7 $', ie: 'Ireland store \u00b7 \u20ac', nz: 'New Zealand store \u00b7 $', in: 'India store \u00b7 \u20b9', za: 'South Africa store \u00b7 R', ae: 'UAE store \u00b7 AED', sg: 'Singapore store \u00b7 $', nl: 'Netherlands store \u00b7 \u20ac', de: 'Germany store \u00b7 \u20ac', be: 'Belgium store \u00b7 \u20ac', at: 'Austria store \u00b7 \u20ac', ch: 'Switzerland store \u00b7 CHF', se: 'Sweden store \u00b7 kr', no: 'Norway store \u00b7 kr', dk: 'Denmark store \u00b7 kr', fi: 'Finland store \u00b7 \u20ac', pl: 'Poland store \u00b7 z\u0142', fr: 'France store \u00b7 \u20ac', es: 'Spain store \u00b7 \u20ac', it: 'Italy store \u00b7 \u20ac', pt: 'Portugal store \u00b7 \u20ac' };\n  var TZ = { 'America\/New_York': 'us', 'America\/Chicago': 'us', 'America\/Denver': 'us', 'America\/Los_Angeles': 'us', 'America\/Phoenix': 'us', 'America\/Anchorage': 'us', 'Pacific\/Honolulu': 'us', 'America\/Detroit': 'us', 'America\/Toronto': 'ca', 'America\/Vancouver': 'ca', 'America\/Edmonton': 'ca', 'America\/Winnipeg': 'ca', 'America\/Halifax': 'ca', 'Europe\/London': 'gb', 'Europe\/Dublin': 'ie', 'Australia\/Sydney': 'au', 'Australia\/Melbourne': 'au', 'Australia\/Brisbane': 'au', 'Australia\/Perth': 'au', 'Australia\/Adelaide': 'au', 'Pacific\/Auckland': 'nz', 'Asia\/Kolkata': 'in', 'Africa\/Johannesburg': 'za', 'Asia\/Dubai': 'ae', 'Asia\/Singapore': 'sg', 'Europe\/Amsterdam': 'nl', 'Europe\/Berlin': 'de', 'Europe\/Brussels': 'be', 'Europe\/Vienna': 'at', 'Europe\/Zurich': 'ch', 'Europe\/Stockholm': 'se', 'Europe\/Oslo': 'no', 'Europe\/Copenhagen': 'dk', 'Europe\/Helsinki': 'fi', 'Europe\/Warsaw': 'pl', 'Europe\/Paris': 'fr', 'Europe\/Madrid': 'es', 'Europe\/Rome': 'it', 'Europe\/Lisbon': 'pt' };\n  var TITLES = [['f1-2027', '24 races locked in. Is your wallet race-ready?']];\n\n  function store(k, v) { try { if (v === null) { localStorage.removeItem(k); } else { localStorage.setItem(k, v); } } catch (e) {} }\n  function read(k) { try { return localStorage.getItem(k) || ''; } catch (e) { return ''; } }\n  function hiddenUntil() { return parseInt(read(CFG.key) || '0', 10); }\n\n  var blog = CFG.blogLocale || (function () { var m = location.pathname.match(\/\\\/blog\\\/([a-z]{2})(?:-([a-z]{2}))?\\\/\/i); return m ? (m[1] + (m[2] ? '-' + m[2] : '')).toLowerCase() : 'en-gb'; })();\n  var lang = blog.split('-')[0]; if (!STORES[lang]) { lang = 'en'; }\n  var blogCC = blog.split('-')[1] || DEFAULT_CC[lang];\n  if (STORES[lang].indexOf(blogCC) === -1) { blogCC = DEFAULT_CC[lang]; }\n  function detectCC() {\n    var saved = read('rcm_kit_market'); if (saved) { if (STORES[lang].indexOf(saved) !== -1) { return saved; } }\n    try { var tz = Intl.DateTimeFormat().resolvedOptions().timeZone; if (TZ[tz]) { if (STORES[lang].indexOf(TZ[tz]) !== -1) { return TZ[tz]; } } } catch (e) {}\n    var nl = (navigator.language || '').toLowerCase(), region = nl.split('-')[1] || '';\n    if (region) { if (STORES[lang].indexOf(region) !== -1) { return region; } }\n    return blogCC;\n  }\n  var cc = detectCC(), platform = '', platLabel = '', slug = '', daysLeft = 0;\n\n  function hrefFor() { return 'https:\/\/www.recharge.com\/' + lang + '\/' + cc + '\/' + slug + '?' + CFG.utm + AMP + 'utm_content=' + platform + '_' + cc; }\n  function track(ev, extra) {\n    window.dataLayer = window.dataLayer || [];\n    var d = { event: ev, popup_id: CFG.key, popup_page: location.pathname, popup_trigger: how, popup_platform: platform, popup_market: cc, popup_days_left: daysLeft };\n    if (extra) { for (var kk in extra) { if (extra.hasOwnProperty(kk)) { d[kk] = extra[kk]; } } }\n    window.dataLayer.push(d);\n  }\n  function renderMarket() {\n    flag.textContent = LABEL[cc] || (cc.toUpperCase() + ' store');\n    if (cc !== blogCC) {\n      marketText.textContent = 'Region-locked codes, so we picked the ' + (LABEL[cc] || cc.toUpperCase()).split(' \u00b7')[0] + '.';\n      undo.hidden = false; undo.textContent = 'Use the ' + (LABEL[blogCC] || blogCC.toUpperCase()).split(' \u00b7')[0] + ' instead';\n    } else {\n      marketText.textContent = 'Region-locked codes, matched to your account.';\n      undo.hidden = true;\n    }\n    cta.href = hrefFor(); reward.href = hrefFor();\n  }\n  undo.addEventListener('click', function () { cc = blogCC; store('rcm_kit_market', cc); renderMarket(); track('rc_popup_market'); });\n\n  function setPlatform(p, silent) {\n    var btn = null;\n    for (var i = 0; i < plats.length; i++) {\n      var on = plats[i].getAttribute('data-platform') === p;\n      plats[i].className = on ? 'rcm-plat is-on' : 'rcm-plat'; plats[i].setAttribute('aria-checked', on ? 'true' : 'false');\n      if (on) { btn = plats[i]; }\n    }\n    if (!btn) { return; }\n    platform = p; platLabel = btn.getAttribute('data-label'); slug = btn.getAttribute('data-slug');\n    if (!silent) { ctaText.className = 'rcm-cta-text'; void ctaText.offsetWidth; }\n    ctaText.textContent = btn.getAttribute('data-cta'); rewardGo.textContent = btn.getAttribute('data-cta');\n    if (!silent) { ctaText.className = 'rcm-cta-text is-swap'; }\n    cta.href = hrefFor(); reward.href = hrefFor();\n    var col = btn.getAttribute('data-color');\n    glow.style.background = 'radial-gradient(closest-side,' + col + '8c,rgba(0,0,0,0))';\n    if (IMGS[p]) { if (hero.getAttribute('src') !== IMGS[p]) { hero.src = IMGS[p]; hero.alt = platLabel + ' gift card'; } }\n    if (!silent) { store('rcm_kit_platform', p); track('rc_popup_platform'); }\n    tick(true);\n  }\n  for (var b = 0; b < plats.length; b++) { plats[b].addEventListener('click', function () { setPlatform(this.getAttribute('data-platform'), false); }); }\n\n  var TARGET = 30, SPRINT_MS = 5000, hits = 0, best = parseInt(read('rcm_f1_best') || '0', 10), bestReact = parseInt(read('rcm_f1_react') || '0', 10), gdone = false, graf = 0, gctx = game.getContext('2d'), gw = 0, gh = 0, gdpr = Math.min(2, window.devicePixelRatio || 1), glast = 0;\n  var lights = root.querySelectorAll('.rcm-lights i'), lightsBox = q('.rcm-lights'), reactEl = q('.rcm-react-val');\n  var phase = 'idle', goAt = 0, sprintStart = 0, sprintEnd = 0, playerX = 0, playerTarget = 0, react = 0, timers = [], streaks = [], doneAt = 0, finishPos = 0, sprites = {};\n  var LIVERIES = [['#1f4fd6', '#ffd400'], ['#ff7a00', '#111111'], ['#dfe3e6', '#00c2a0']];\n  var ai = [];\n  bestEl.textContent = 'Best ' + best;\n  function clearTimers() { for (var i = 0; i < timers.length; i++) { clearTimeout(timers[i]); } timers = []; }\n  function setLights(n, go) { for (var i = 0; i < lights.length; i++) { lights[i].className = i < n ? 'on' : ''; } lightsBox.className = go ? 'rcm-lights go' : 'rcm-lights'; }\n  function sizeGame() { var r = stage.getBoundingClientRect(); gw = r.width; gh = r.height; game.width = Math.round(gw * gdpr); game.height = Math.round(gh * gdpr); gctx.setTransform(gdpr, 0, 0, gdpr, 0, 0); }\n  function bump(cls) { hitsEl.className = 'rcm-hits'; void hitsEl.offsetWidth; hitsEl.className = 'rcm-hits ' + cls; }\n  function carSprite(color, accent) {\n    var key = color + accent; if (sprites[key]) { return sprites[key]; }\n    var c = document.createElement('canvas'); c.width = 240; c.height = 120; var x = c.getContext('2d');\n    function rr(px, py, w, h, r, fill) { x.beginPath(); x.moveTo(px + r, py); x.arcTo(px + w, py, px + w, py + h, r); x.arcTo(px + w, py + h, px, py + h, r); x.arcTo(px, py + h, px, py, r); x.arcTo(px, py, px + w, py, r); x.closePath(); x.fillStyle = fill; x.fill(); }\n    x.fillStyle = 'rgba(0,0,0,.35)'; x.beginPath(); x.ellipse(120, 66, 96, 26, 0, 0, Math.PI * 2); x.fill();\n    var tyres = [[38, 14], [38, 82], [176, 12], [176, 84]];\n    for (var t = 0; t < tyres.length; t++) { rr(tyres[t][0], tyres[t][1], 34, 24, 6, '#141618'); rr(tyres[t][0] + 4, tyres[t][1] + 4, 26, 16, 4, '#2c3137'); x.fillStyle = 'rgba(255,255,255,.18)'; x.fillRect(tyres[t][0] + 6, tyres[t][1] + 5, 22, 3); }\n    x.fillStyle = accent; rr(200, 20, 8, 80, 2, accent); rr(196, 10, 14, 10, 2, accent); rr(196, 100, 14, 10, 2, accent);\n    x.fillStyle = color; x.beginPath(); x.moveTo(100, 44); x.lineTo(196, 52); x.lineTo(200, 60); x.lineTo(196, 68); x.lineTo(100, 76); x.closePath(); x.fill();\n    x.fillStyle = color; x.beginPath(); x.moveTo(56, 34); x.lineTo(130, 30); x.lineTo(140, 60); x.lineTo(130, 90); x.lineTo(56, 86); x.lineTo(46, 60); x.closePath(); x.fill();\n    x.fillStyle = 'rgba(0,0,0,.28)'; x.fillRect(122, 36, 12, 12); x.fillRect(122, 72, 12, 12);\n    x.fillStyle = color; x.beginPath(); x.moveTo(18, 50); x.lineTo(60, 44); x.lineTo(60, 76); x.lineTo(18, 70); x.closePath(); x.fill();\n    x.fillStyle = accent; rr(10, 30, 10, 60, 2, accent); rr(6, 22, 16, 9, 2, accent); rr(6, 89, 16, 9, 2, accent);\n    x.fillStyle = '#0b0d10'; x.beginPath(); x.ellipse(96, 60, 16, 10, 0, 0, Math.PI * 2); x.fill();\n    x.strokeStyle = '#9aa3ad'; x.lineWidth = 3; x.beginPath(); x.ellipse(100, 60, 20, 13, 0, 0, Math.PI * 2); x.stroke();\n    x.fillStyle = '#e8ecef'; x.beginPath(); x.arc(92, 60, 5, 0, Math.PI * 2); x.fill();\n    var gl = x.createLinearGradient(0, 30, 0, 90); gl.addColorStop(0, 'rgba(255,255,255,.28)'); gl.addColorStop(0.45, 'rgba(255,255,255,0)'); gl.addColorStop(1, 'rgba(0,0,0,.25)'); x.fillStyle = gl; x.beginPath(); x.moveTo(18, 50); x.lineTo(196, 52); x.lineTo(196, 68); x.lineTo(18, 70); x.closePath(); x.fill();\n    sprites[key] = c; return c;\n  }\n  function newField() { ai = []; for (var i = 0; i < 3; i++) { ai.push({ lane: i < 2 ? i : 3, x: 0, finish: 4300 + Math.random() * 1500, jitter: 0.9 + Math.random() * 0.2, color: LIVERIES[i][0], accent: LIVERIES[i][1], done: 0 }); } }\n  function startSequence() {\n    clearTimers(); phase = 'lights'; hits = 0; playerX = 0; playerTarget = 0; finishPos = 0; streaks = []; newField(); hitsEl.textContent = '0'; reactEl.textContent = '--'; setLights(0, false);\n    challenge.innerHTML = 'Eyes on the lights. Tap the moment they go out.';\n    for (var i = 1; i <= 5; i++) { timers.push(setTimeout(function (n) { return function () { setLights(n, false); }; }(i), 250 + i * 600)); }\n    var hold = 250 + 5 * 600 + 400 + Math.random() * 1400;\n    timers.push(setTimeout(function () { setLights(0, false); goAt = performance.now(); phase = 'go'; challenge.innerHTML = 'GO! <b>' + TARGET + '<\/b> taps in 5 seconds. Beat the pack to the flag.'; }, hold));\n  }\n  function jumpStart() { clearTimers(); phase = 'idle'; setLights(0, false); reactEl.textContent = 'JUMP'; challenge.innerHTML = 'Jump start. Lights again in a second.'; bump('is-miss'); timers.push(setTimeout(startSequence, 1200)); }\n  function position() { var p = 1; for (var i = 0; i < ai.length; i++) { if (ai[i].x > playerX) { p++; } } return p; }\n  function finishSprint(timeUp) {\n    if (phase !== 'sprint') { return; }\n    phase = 'done'; doneAt = performance.now(); clearTimers(); setLights(0, false);\n    if (hits > best) { best = hits; bestEl.textContent = 'Best ' + best; store('rcm_f1_best', String(best)); }\n    if (!timeUp) {\n      finishPos = 1; for (var i = 0; i < ai.length; i++) { if (ai[i].done) { if (ai[i].done <= doneAt) { finishPos++; } } }\n      if (!gdone) { gdone = true; reward.hidden = false; cta.className = 'rcm-cta rcm-plat-link is-pulse'; track('rc_popup_game_done', { popup_hits: hits, popup_reaction_ms: react, popup_position: finishPos }); }\n      challenge.textContent = '';\n      reactEl.textContent = 'P' + finishPos;\n    } else { challenge.innerHTML = 'Out of time: <b>' + hits + '<\/b> of ' + TARGET + '. Tap the track for another start.'; }\n  }\n  function tap() {\n    if (!open) { return; }\n    if (phase === 'done') { if (performance.now() - doneAt < 900) { return; } }\n    if (phase === 'idle' || phase === 'done') { startSequence(); return; }\n    if (phase === 'lights') { jumpStart(); return; }\n    if (phase === 'go') {\n      react = Math.round(performance.now() - goAt); reactEl.textContent = (react \/ 1000).toFixed(3) + ' s';\n      if (bestReact === 0 || react < bestReact) { bestReact = react; store('rcm_f1_react', String(bestReact)); }\n      phase = 'sprint'; sprintStart = performance.now(); sprintEnd = sprintStart + SPRINT_MS; hits = 0; setLights(5, true);\n      timers.push(setTimeout(function () { finishSprint(true); }, SPRINT_MS));\n    }\n    if (phase === 'sprint') { hits++; hitsEl.textContent = String(hits); bump('is-bump'); playerTarget = Math.min(1, hits \/ TARGET); if (hits >= TARGET) { finishSprint(false); } }\n  }\n  function gstep(now) {\n    if (!open) { graf = 0; return; }\n    var dt = Math.min(0.05, (now - glast) \/ 1000 || 0.016); glast = now;\n    gctx.clearRect(0, 0, gw, gh);\n    var mobile = window.innerWidth < 720, lanes = 4, top = mobile ? 104 : Math.max(gh * 0.28, 96), bottom = gh - (mobile ? 40 : 46), laneH = (bottom - top) \/ lanes, left = 18, right = gw - 18, startX = left + 34, finishX = right - 26;\n    gctx.fillStyle = 'rgba(255,255,255,.05)'; gctx.fillRect(left, top, right - left, bottom - top);\n    for (var l = 1; l < lanes; l++) { gctx.strokeStyle = 'rgba(255,255,255,.28)'; gctx.lineWidth = 1.5; gctx.setLineDash([10, 10]); gctx.beginPath(); gctx.moveTo(left, top + laneH * l); gctx.lineTo(right, top + laneH * l); gctx.stroke(); gctx.setLineDash([]); }\n    gctx.fillStyle = 'rgba(255,42,26,.10)'; gctx.fillRect(left, top + laneH * 2, right - left, laneH);\n    gctx.fillStyle = 'rgba(255,255,255,.35)'; gctx.fillRect(startX - 2, top, 2, bottom - top);\n    var sq = 6; for (var r = 0; r < Math.ceil((bottom - top) \/ sq); r++) { for (var c = 0; c < 2; c++) { gctx.fillStyle = (r + c) % 2 ? '#ffffff' : '#111'; gctx.fillRect(finishX + c * sq, top + r * sq, sq, Math.min(sq, bottom - (top + r * sq))); } }\n    var el = phase === 'sprint' ? now - sprintStart : (phase === 'done' ? SPRINT_MS : 0);\n    if (phase === 'sprint') { for (var a = 0; a < ai.length; a++) { var car = ai[a]; if (!car.done) { var prog = Math.min(1, el \/ car.finish); car.x = Math.pow(prog, car.jitter); if (prog >= 1) { car.x = 1; car.done = now; } } } }\n    playerX += (playerTarget - playerX) * Math.min(1, dt * 9);\n    var scale = Math.max(0.16, Math.min(0.3, laneH * 0.62 \/ 120)), span = finishX - startX - 60;\n    function drawCar(sp, lane, x, tag, isYou) {\n      var cx = startX + 30 + x * span, cy = top + laneH * (lane + 0.5);\n      if (phase === 'sprint' || phase === 'done') { if (x > 0.01) { if (x < 1) { for (var k = 0; k < 2; k++) { streaks.push({ x: cx - 50 * scale * 4, y: cy - laneH * 0.28 + Math.random() * laneH * 0.56, l: 18 + Math.random() * 26, a: 0.35 }); } } } }\n      gctx.drawImage(sp, cx - 120 * scale, cy - 60 * scale, 240 * scale, 120 * scale);\n      gctx.font = '600 10px Poppins, Arial, sans-serif'; gctx.textAlign = 'left'; gctx.fillStyle = isYou ? '#ff6b5e' : 'rgba(255,255,255,.7)'; gctx.fillText(tag, left + 4, cy - laneH * 0.5 + 11);\n    }\n    for (var s2 = streaks.length - 1; s2 >= 0; s2--) { var st = streaks[s2]; st.x -= 700 * dt; st.a -= dt * 1.6; if (st.a <= 0) { streaks.splice(s2, 1); continue; } gctx.strokeStyle = 'rgba(255,255,255,' + st.a.toFixed(2) + ')'; gctx.lineWidth = 1.5; gctx.beginPath(); gctx.moveTo(st.x, st.y); gctx.lineTo(st.x - st.l, st.y); gctx.stroke(); }\n    var pos = position();\n    for (var i = 0; i < ai.length; i++) { drawCar(carSprite(ai[i].color, ai[i].accent), ai[i].lane, ai[i].x, '', false); }\n    drawCar(carSprite('#ff2a1a', '#ffffff'), 2, playerX, 'YOU', true);\n    if (phase === 'sprint' || phase === 'done') { gctx.font = '700 15px Poppins, Arial, sans-serif'; gctx.textAlign = 'right'; gctx.fillStyle = '#fff'; gctx.fillText('P' + (phase === 'done' ? (finishPos || pos) : pos), right, top - 8); }\n    if (phase === 'sprint') { var leftMs = Math.max(0, sprintEnd - now); gctx.font = '600 13px Poppins, Arial, sans-serif'; gctx.textAlign = 'left'; gctx.fillStyle = 'rgba(255,255,255,.85)'; gctx.fillText((leftMs \/ 1000).toFixed(1) + ' s', left, top - 8); }\n    root.setAttribute('data-race', phase + ',' + hits + ',' + react + ',' + (phase === 'done' ? finishPos : pos) + ',' + ai.length);\n    graf = requestAnimationFrame(gstep);\n  }\n  game.addEventListener('pointerdown', function (e) { e.preventDefault(); tap(); });\n  game.addEventListener('keydown', function (e) { if (e.key === ' ' || e.key === 'Enter') { e.preventDefault(); tap(); } });\n  function startGame() { sizeGame(); newField(); glast = performance.now(); if (!graf) { graf = requestAnimationFrame(gstep); } clearTimers(); timers.push(setTimeout(startSequence, 250)); }\n  window.addEventListener('resize', function () { if (open) { sizeGame(); } });\n\n  function pad(n) { return (n < 10 ? '0' : '') + n; }\n  function tick(force) {\n    var now = Date.now(), launch = new Date(CFG.launch).getTime();\n    var early = new Date(platform === 'steam' ? CFG.earlyPC : CFG.earlyConsole).getTime();\n    daysLeft = Math.max(0, Math.ceil((launch - now) \/ 864e5));\n    if (now >= launch) {\n      board.style.display = 'none';\n      if (how !== 'exit') { eyebrow.textContent = 'Season 2027 is under way'; }\n      title.textContent = 'Lights out. Fund your race.';\n      if (timer) { clearInterval(timer); timer = 0; }\n      return;\n    }\n    var target = now < early ? early : launch;\n    var label = 'Lights out in Bahrain in';\n    if (boardLabel.textContent !== label) { boardLabel.textContent = label; }\n    dateLine.textContent = CFG.launchText;\n    var diff = target - now;\n    var vals = { d: pad(Math.floor(diff \/ 864e5)), h: pad(Math.floor(diff % 864e5 \/ 36e5)), m: pad(Math.floor(diff % 36e5 \/ 6e4)), s: pad(Math.floor(diff % 6e4 \/ 1000)) };\n    for (var i = 0; i < nums.length; i++) {\n      var u = nums[i].getAttribute('data-unit');\n      if (last[u] !== vals[u] || force) {\n        nums[i].textContent = vals[u];\n        if (!reduce) { if (last[u] !== undefined) { if (!force) { nums[i].className = 'rcm-num'; void nums[i].offsetWidth; nums[i].className = 'rcm-num is-flip'; } } }\n        last[u] = vals[u];\n      }\n    }\n  }\n\n  function bannerOpen() {\n    var ids = ['CybotCookiebotDialog', 'onetrust-banner-sdk', 'usercentrics-root', 'cookie-law-info-bar', 'cmpbox'];\n    for (var i = 0; i < ids.length; i++) { var el = document.getElementById(ids[i]); if (el) { if (el.getBoundingClientRect().height > 0) { if (getComputedStyle(el).visibility !== 'hidden') { return true; } } } }\n    return false;\n  }\n  function focusables() {\n    var all = root.querySelectorAll('button, a[href]'), f = [];\n    for (var i = 0; i < all.length; i++) { if (!all[i].hidden) { if (all[i].getBoundingClientRect().width > 0) { f.push(all[i]); } } }\n    return f;\n  }\n  function onKey(e) {\n    if (e.key === 'Escape') { track('rc_popup_close'); close(CFG.hideDays); return; }\n    if (e.key === 'Tab') {\n      var f = focusables(), first = f[0], lastEl = f[f.length - 1];\n      if (e.shiftKey) { if (document.activeElement === first || document.activeElement === card) { e.preventDefault(); lastEl.focus(); } }\n      else { if (document.activeElement === lastEl) { e.preventDefault(); first.focus(); } }\n    }\n  }\n  var actions = q('.rcm-actions');\n  if (!reduce) {\n    actions.addEventListener('pointermove', function (e) {\n      var r = cta.getBoundingClientRect(), dx = e.clientX - (r.left + r.width \/ 2), dy = e.clientY - (r.top + r.height \/ 2);\n      if (Math.sqrt(dx * dx + dy * dy) < 110) { cta.style.transform = 'translate(' + (dx * 0.16).toFixed(1) + 'px,' + (dy * 0.26).toFixed(1) + 'px)'; } else { cta.style.transform = ''; }\n    }, { passive: true });\n    actions.addEventListener('pointerleave', function () { cta.style.transform = ''; });\n  }\n  function show() {\n    shown = true; open = true;\n    root.style.display = ''; void root.offsetWidth; root.className = 'rcm-in';\n    if (how === 'exit') { eyebrow.textContent = CFG.exitEyebrow; }\n    document.documentElement.classList.add('rcm-lock');\n    document.addEventListener('keydown', onKey);\n    setTimeout(function () { card.focus(); }, 60);\n    tick(true); if (!timer) { timer = setInterval(tick, 1000); }\n    setTimeout(startGame, reduce ? 0 : 450);\n    track('rc_popup_view', { popup_returning: !!read('rcm_kit_platform') });\n  }\n  function close(days) {\n    if (!open) { return; }\n    open = false; store(CFG.key, String(Date.now() + days * 864e5));\n    document.removeEventListener('keydown', onKey); document.documentElement.classList.remove('rcm-lock');\n    if (timer) { clearInterval(timer); timer = 0; }\n    if (typeof clearTimers === 'function') { clearTimers(); phase = 'idle'; }\n    root.className = ''; setTimeout(function () { root.style.display = 'none'; }, 360);\n  }\n  function trigger(source) {\n    if (shown) { return; }\n    if (bannerOpen()) { if (!waiting) { waiting = true; setTimeout(function () { waiting = false; trigger(source); }, 1000); } return; }\n    how = source; show();\n  }\n  for (var c = 0; c < closers.length; c++) { closers[c].addEventListener('click', function () { track('rc_popup_close'); close(CFG.hideDays); }); }\n  cta.addEventListener('click', function () { track('rc_popup_click'); close(CFG.hideDaysAfterClick); });\n  reward.addEventListener('click', function () { track('rc_popup_click', { popup_source: 'reward' }); close(CFG.hideDaysAfterClick); });\n\n  \/\/ personalisation: page-aware title, remembered platform + name, market\n  var path = location.pathname.toLowerCase();\n  for (var t = 0; t < TITLES.length; t++) { if (path.indexOf(TITLES[t][0]) !== -1) { title.textContent = TITLES[t][1]; break; } }\n  var savedPlatform = read('rcm_kit_platform');\n  var guess = 'playstation';\n  if (savedPlatform) { eyebrow.textContent = CFG.backEyebrow + ', ' + (savedPlatform === 'steam' ? 'PC' : savedPlatform.charAt(0).toUpperCase() + savedPlatform.slice(1)) + ' player'; }\n  setPlatform(savedPlatform || guess, true);\n  renderMarket();\n\n  if (CFG.hideDays > 0 || CFG.hideDaysAfterClick > 0) { if (hiddenUntil() > Date.now()) { return; } } else { store(CFG.key, null); }\n  if (isTouch) { setTimeout(function () { trigger('timer'); }, CFG.mobileSeconds * 1000); }\n  else {\n    document.addEventListener('mouseout', function (e) { if (e.relatedTarget) { return; } if (e.clientY > 10) { return; } trigger('exit'); });\n    if (CFG.desktopFallbackSeconds > 0) { setTimeout(function () { trigger('timer'); }, CFG.desktopFallbackSeconds * 1000); }\n  }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>The FIA has confirmed the 2027 Formula 1 calendar: 24 Grands Prix, 10 Sprint weekends, Portugal and T\u00fcrkiye back, Zandvoort out. Every race date in one table.<\/p>\n","protected":false},"author":49,"featured_media":52371,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"cos_headline_score":0,"cos_seo_score":0,"cos_headline_text":"","cos_headline_has_been_analyzed":false,"cos_last_analyzed_headline":[],"_hreflang_tags":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[23],"tags":[],"class_list":["post-52341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-lifestyle-old"],"jetpack_publicize_connections":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.4 (Yoast SEO v21.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>F1 2027 Calendar: All 24 Races, Dates, Sprints and What Changed<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"F1 2027 Calendar: All 24 Races, Dates, Sprints and What Changed\" \/>\n<meta property=\"og:description\" content=\"The FIA has confirmed the 2027 Formula 1 calendar: 24 Grands Prix, 10 Sprint weekends, Portugal and T\u00fcrkiye back, Zandvoort out. Every race date in one table.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar\" \/>\n<meta property=\"og:site_name\" content=\"Recharge Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-16T14:02:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T14:26:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16161751\/f1-2027-calendar-race-pack.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1376\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Conor Byrne\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar\",\"url\":\"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar\",\"name\":\"F1 2027 Calendar: All 24 Races, Dates, Sprints and What Changed\",\"isPartOf\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#website\"},\"datePublished\":\"2026-09-16T14:02:47+00:00\",\"dateModified\":\"2026-09-16T14:26:12+00:00\",\"author\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.recharge.com\/blog\/en-gb\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"F1 2027 Calendar: All 24 Races, Dates, Sprints and What Changed\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#website\",\"url\":\"https:\/\/www.recharge.com\/blog\/en-gb\/\",\"name\":\"Recharge Blog\",\"description\":\"Everything about online safety, smart spending &amp; your digital lifestyle.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.recharge.com\/blog\/en-gb\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6\",\"name\":\"Conor Byrne\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g\",\"caption\":\"Conor Byrne\"},\"description\":\"My passion for the e-commerce and fintech space started years ago with my first gaming console, giving me firsthand experience with the world of digital credit and top-ups. As a blog copywriter here at Recharge.com, I now get to use that insight to create clear, helpful content that makes navigating gift cards and online payments a breeze for our community.\",\"url\":\"https:\/\/www.recharge.com\/blog\/en-gb\/author\/conor-byrne\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"F1 2027 Calendar: All 24 Races, Dates, Sprints and What Changed","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar","og_locale":"en_GB","og_type":"article","og_title":"F1 2027 Calendar: All 24 Races, Dates, Sprints and What Changed","og_description":"The FIA has confirmed the 2027 Formula 1 calendar: 24 Grands Prix, 10 Sprint weekends, Portugal and T\u00fcrkiye back, Zandvoort out. Every race date in one table.","og_url":"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar","og_site_name":"Recharge Blog","article_published_time":"2026-09-16T14:02:47+00:00","article_modified_time":"2026-09-16T14:26:12+00:00","og_image":[{"width":1376,"height":768,"url":"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16161751\/f1-2027-calendar-race-pack.jpg","type":"image\/jpeg"}],"author":"Conor Byrne","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar","url":"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar","name":"F1 2027 Calendar: All 24 Races, Dates, Sprints and What Changed","isPartOf":{"@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#website"},"datePublished":"2026-09-16T14:02:47+00:00","dateModified":"2026-09-16T14:26:12+00:00","author":{"@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6"},"breadcrumb":{"@id":"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/f1-2027-calendar#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.recharge.com\/blog\/en-gb"},{"@type":"ListItem","position":2,"name":"F1 2027 Calendar: All 24 Races, Dates, Sprints and What Changed"}]},{"@type":"WebSite","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#website","url":"https:\/\/www.recharge.com\/blog\/en-gb\/","name":"Recharge Blog","description":"Everything about online safety, smart spending &amp; your digital lifestyle.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.recharge.com\/blog\/en-gb\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6","name":"Conor Byrne","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g","caption":"Conor Byrne"},"description":"My passion for the e-commerce and fintech space started years ago with my first gaming console, giving me firsthand experience with the world of digital credit and top-ups. As a blog copywriter here at Recharge.com, I now get to use that insight to create clear, helpful content that makes navigating gift cards and online payments a breeze for our community.","url":"https:\/\/www.recharge.com\/blog\/en-gb\/author\/conor-byrne"}]}},"jetpack_featured_media_url":"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16161751\/f1-2027-calendar-race-pack.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/52341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/comments?post=52341"}],"version-history":[{"count":5,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/52341\/revisions"}],"predecessor-version":[{"id":52385,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/52341\/revisions\/52385"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/media\/52371"}],"wp:attachment":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/media?parent=52341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/categories?post=52341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/tags?post=52341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}