| 12-10 | 66 | | Paris - Tours Espoirs (1.2U) | 176.0km |
| 26-09 | 29 | | UCI World Championship Kigali U23 (CM) | 164.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 29-08 | 39 | 34 | Stage 6aLa Rosière Espace San Bernardo - La Rosière Espace San Bernardo (41.0km) | 41.0km |
| 29-08 | 65 | 34 | Stage 6bLa Rosière-Montvalezan - La Rosière-Montvalezan (10.0km) | 10.0km |
| 28-08 | 34 | 36 | Stage 5Saint-Gervais Mont-Blanc - Tignes (121.0km) | 121.0km |
| 27-08 | 75 | 92 | Stage 4Montagnat - Val Suran (110.0km) | 110.0km |
| 26-08 | 135 | 101 | Stage 3Étang-sur-Arroux - Châtillon-sur-Chalaronne (158.0km) | 158.0km |
| 25-08 | 114 | 84 | Stage 2Saint-Symphorien-sur-Coise - Vitry-en-Charollais (136.0km) | 136.0km |
| 24-08 | 60 | 81 | Stage 1Aoste - Saint-Galmier (188.0km) | 188.0km |
| 23-08 | 74 | 74 | PrologueTignes - Tignes (3.0km) | 3.0km |
| | | PostNord Tour of Denmark (2.Pro) |
| 36 | | Klassement |
| 34 | | Punten |
| 16-08 | 12 | 36 | Stage 5Hobro - Silkeborg (157.0km) | 157.0km |
| 15-08 | 49 | 40 | Stage 4Svendborg - Vejle (226.0km) | 226.0km |
| 14-08 | 50 | 35 | Stage 3Kerteminde - Kerteminde (14.0km) | 14.0km |
| 13-08 | 54 | 42 | Stage 2Rødovre - Gladsaxe (110.0km) | 110.0km |
| 12-08 | 54 | 53 | Stage 1Nexø - Rønne (178.0km) | 178.0km |
| | | Tour Alsace (2.2) |
| 01-08 | DNS | | Stage 3Velleminfroy - La Planche des Belles Filles (141.0km) | 141.0km |
| 31-07 | 72 | 10 | Stage 2Rust (Europapark) - Selestat (168.0km) | 168.0km |
| 30-07 | 2 | 4 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 35 | | Klassement |
| 18 | | Punten |
| 20 | | Berg |
| 22-06 | 54 | 35 | Stage 8Pinerolo - Pinerolo (127.0km) | 127.0km |
| 21-06 | 41 | 37 | Stage 7Bra - Prato Nevoso (163.0km) | 163.0km |
| 20-06 | 3 | 43 | Stage 6Ovada - Acqui Terme (154.0km) | 154.0km |
| 19-06 | 49 | 51 | Stage 5Fiorenzuola d'Arda - Gavi (153.0km) | 153.0km |
| 18-06 | 56 | 75 | Stage 4Manerbio - Salsomaggiore Terme (134.0km) | 134.0km |
| 17-06 | 77 | 79 | Stage 3Albese con Cassano - Passo del Maniva (144.0km) | 144.0km |
| 16-06 | 93 | 86 | Stage 2Rho - Cantù (146.0km) | 146.0km |
| 15-06 | 106 | 106 | Stage 1Rho - Rho (8.0km) | 8.0km |
| | | Alpes Isère Tour (2.2) |
| 6 | | Klassement |
| 7 | | Punten |
| 6 | | Berg |
| 5 | | Jongeren |
| 01-06 | 15 | 6 | Stage 5Saint-Joseph-de-Rivière - La Mure (181.0km) | 181.0km |
| 31-05 | 10 | 4 | Stage 4Primarette - Saint-Maurice-l'Exil (176.0km) | 176.0km |
| 30-05 | 15 | 2 | Stage 3Colombier-Saugnieu - Jons (159.0km) | 159.0km |
| 29-05 | 26 | 2 | Stage 2Dolomieu - Satolas-et-Bonce (153.0km) | 153.0km |
| 28-05 | 4 | 4 | Stage 1Charvieu-Chavagneux - Charvieu-Chavagneux (135.0km) | 135.0km |
| 18-05 | 29 | | Rund um Köln (1.1) | 181.0km |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 42 | | Klassement |
| 35 | | Punten |
| 10 | | Berg |
| 01-05 | 43 | 42 | Stage 7Landébia - Plancoët (159.0km) | 159.0km |
| 30-04 | 63 | 48 | Stage 6Missillac - Le Pertre (178.0km) | 178.0km |
| 29-04 | 51 | 38 | Stage 5Erdeven - Guenrouet (164.0km) | 164.0km |
| 28-04 | 57 | 45 | Stage 4Plonéour-Lanvern - Landévant (204.0km) | 204.0km |
| 27-04 | 74 | 41 | Stage 3Loudéac - Plonéour-Lanvern (212.0km) | 212.0km |
| 26-04 | 49 | 30 | Stage 2La Gouesnière - Le Cambout (182.0km) | 182.0km |
| 25-04 | 33 | 34 | Stage 1Hirel - La Fresnais (144.0km) | 144.0km |
| 20-04 | 63 | | Tour du Doubs (1.1) | 196.0km |
| 18-04 | 73 | | Classic Grand Besançon Doubs (1.1) | 168.0km |
| 13-04 | 5 | | Paris-Roubaix Espoirs (1.2U) | 167.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 77 | | Klassement |
| 33 | | Jongeren |
| 29-03 | 75 | 77 | Stage 5Brisighella - Forlì (132.0km) | 132.0km |
| 28-03 | 90 | 86 | Stage 4Brisighella - Brisighella (150.0km) | 150.0km |
| 27-03 | 46 | 75 | Stage 3Riccione - Cesena (142.0km) | 142.0km |
| 26-03 | 89 | 89 | Stage 2Riccione - Sogliano al Rubicone (163.0km) | 163.0km |
| 25-03 | 36 | 36 | Stage 1Ferrara - Bondeno (174.0km) | 174.0km |
| 19-03 | 86 | | Milano - Torino (1.Pro) | 174.0km |
| | | Istrian Spring Tour (2.2) |
| 28 | | Klassement |
| 43 | | Punten |
| 4 | | Berg |
| 16-03 | 33 | 28 | Stage 3Pazin - Umag (118.0km) | 118.0km |
| 15-03 | 28 | 29 | Stage 2Novigrad - Motovun (139.0km) | 139.0km |
| 14-03 | 25 | 16 | Stage 1Porec - Funtana (142.0km) | 142.0km |
| 13-03 | 15 | 15 | PrologueVrsar - Vrsar (1.0km) | 1.0km |
| 09-03 | 64 | | POREČ Classic (1.2) | 146.0km |
| 05-03 | 108 | | UMAG Classic (1.2) | 142.0km |
| | | Tour of Oman (2.Pro) |
| 38 | | Klassement |
| 15 | | Jongeren |
| 12-02 | 52 | 38 | Stage 5Imty - Jabal al Akhdhar (Green Mountain) (138.0km) | 138.0km |
| 11-02 | 73 | 35 | Stage 4Oman Across Ages Museum - Oman Convention & Exhibition Center (181.0km) | 181.0km |
| 10-02 | 34 | 38 | Stage 3Fanja - Eastern Mountain (180.0km) | 180.0km |
| 09-02 | 40 | 44 | Stage 2Al Rustaq Fort - Yitti Hills (202.0km) | 202.0km |
| 08-02 | 95 | 95 | Stage 1Bushar - Bimmah Sink Hole (177.0km) | 177.0km |
| 07-02 | 50 | | Muscat Classic (1.1) | 170.0km |