{
  "name": "Tour de France",
  "year": 2026,
  "startDate": "2026-07-04",
  "endDate": "2026-07-26",
  "totalDistance": 3500,
  "stages": [
    { "stage": 1, "date": "2026-07-04", "start": "Barcelona", "end": "Barcelona", "distance": 14, "type": "itt", "profile": "flat" },
    { "stage": 2, "date": "2026-07-05", "start": "Barcelona", "end": "Montjuïc", "distance": 182, "type": "road", "profile": "hilly" },
    { "stage": 3, "date": "2026-07-06", "start": "Girona", "end": "Perpignan", "distance": 195, "type": "road", "profile": "hilly" },
    { "stage": 4, "date": "2026-07-07", "start": "Perpignan", "end": "Carcassonne", "distance": 165, "type": "road", "profile": "flat" },
    { "stage": 5, "date": "2026-07-08", "start": "Carcassonne", "end": "Toulouse", "distance": 178, "type": "road", "profile": "flat" },
    { "stage": 6, "date": "2026-07-09", "start": "Toulouse", "end": "Cauterets", "distance": 198, "type": "road", "profile": "mountain" },
    { "stage": 7, "date": "2026-07-10", "start": "Pau", "end": "Hautacam", "distance": 168, "type": "road", "profile": "mountain" },
    { "rest": true, "date": "2026-07-11" },
    { "stage": 8, "date": "2026-07-12", "start": "Tarbes", "end": "Limoges", "distance": 220, "type": "road", "profile": "flat" },
    { "stage": 9, "date": "2026-07-13", "start": "Limoges", "end": "Clermont-Ferrand", "distance": 185, "type": "road", "profile": "hilly" },
    { "stage": 10, "date": "2026-07-14", "start": "Clermont-Ferrand", "end": "Puy de Dôme", "distance": 155, "type": "road", "profile": "mountain" },
    { "stage": 11, "date": "2026-07-15", "start": "Vichy", "end": "Lyon", "distance": 195, "type": "road", "profile": "flat" },
    { "stage": 12, "date": "2026-07-16", "start": "Lyon", "end": "Villard-de-Lans", "distance": 172, "type": "road", "profile": "mountain" },
    { "rest": true, "date": "2026-07-17" },
    { "stage": 13, "date": "2026-07-18", "start": "Grenoble", "end": "Alpe d'Huez", "distance": 138, "type": "road", "profile": "mountain" },
    { "stage": 14, "date": "2026-07-19", "start": "Briançon", "end": "Col du Galibier", "distance": 152, "type": "road", "profile": "mountain" },
    { "stage": 15, "date": "2026-07-20", "start": "Gap", "end": "Valence", "distance": 198, "type": "road", "profile": "hilly" },
    { "stage": 16, "date": "2026-07-21", "start": "Valence", "end": "Mâcon", "distance": 35, "type": "itt", "profile": "flat" },
    { "stage": 17, "date": "2026-07-22", "start": "Mâcon", "end": "Dijon", "distance": 175, "type": "road", "profile": "flat" },
    { "stage": 18, "date": "2026-07-23", "start": "Dijon", "end": "Colmar", "distance": 210, "type": "road", "profile": "hilly" },
    { "stage": 19, "date": "2026-07-24", "start": "Colmar", "end": "La Planche des Belles Filles", "distance": 165, "type": "road", "profile": "mountain" },
    { "stage": 20, "date": "2026-07-25", "start": "Strasbourg", "end": "Strasbourg", "distance": 180, "type": "road", "profile": "flat" },
    { "stage": 21, "date": "2026-07-26", "start": "Versailles", "end": "Paris Champs-Élysées", "distance": 115, "type": "road", "profile": "flat" }
  ]
}
