| 19-10 | DNF | | Veneto Classic (1.Pro) | 197.0km |
| 15-10 | 67 | | Giro del Veneto (1.Pro) | 169.0km |
| 04-10 | 42 | | UEC Road European Championships U23 (CC) | 121.0km |
| | | Okolo jižních Čech / Tour of South Bohemia (2.2) |
| 4 | | Standings |
| 15 | | Points |
| 10 | | Mountain |
| 4 | | Youth |
| 07-09 | 63 | 4 | Stage 4Trhové Sviny - Jindřichův Hradec | 155.0km |
| 06-09 | 3 | 5 | Stage 3Český Krumlov - Horská Kvilda | 130.0km |
| 05-09 | 65 | 76 | Stage 2Nové Hrady - Studená | 167.0km |
| 04-09 | 100 | 100 | Stage 1Třeboň - Jemnice | 169.0km |
| | | Tour Alsace (2.2) |
| 37 | | Standings |
| 5 | | Mountain |
| 24 | | Youth |
| 03-08 | 36 | 37 | Stage 5Ribeauville - Champ du Feu | 135.0km |
| 02-08 | 80 | 48 | Stage 4Ferrette - Altkirch | 133.0km |
| 01-08 | 49 | 51 | Stage 3Velleminfroy - La Planche des Belles Filles | 141.0km |
| 31-07 | 132 | 116 | Stage 2Rust (Europapark) - Selestat | 168.0km |
| 30-07 | 16 | 114 | Stage 1Sausheim - Sausheim | 4.0km |
| | | Giro Ciclistico della Valle d'Aosta - Mont Blanc (2.2U) |
| 19-07 | DNF | | Stage 4Saint-Pierre - Valsavarenche | 160.0km |
| 18-07 | 41 | 41 | Stage 3Pré-Saint-Didier - Colle del Gran San Bernardo | 121.0km |
| 16-07 | 107 | 107 | Stage 1Aosta - Aosta | 85.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 73 | | Standings |
| 55 | | Points |
| 28 | | Mountain |
| 22-06 | 103 | 73 | Stage 8Pinerolo - Pinerolo | 127.0km |
| 21-06 | 115 | 70 | Stage 7Bra - Prato Nevoso | 163.0km |
| 20-06 | 31 | 62 | Stage 6Ovada - Acqui Terme | 154.0km |
| 19-06 | 134 | 64 | Stage 5Fiorenzuola d'Arda - Gavi | 153.0km |
| 18-06 | 87 | 50 | Stage 4Manerbio - Salsomaggiore Terme | 134.0km |
| 17-06 | 51 | 52 | Stage 3Albese con Cassano - Passo del Maniva | 144.0km |
| 16-06 | 71 | 77 | Stage 2Rho - Cantù | 146.0km |
| 15-06 | 92 | 92 | Stage 1Rho - Rho | 8.0km |
| 06-06 | 11 | | Ridderronde van Maastricht (CRTP) | |
| | | Ronde de l'Isard (2.2U) |
| 6 | | Standings |
| 21 | | Mountain |
| 26 | | Points |
| 4 | | Youth |
| 25-05 | 38 | 6 | Stage 5Saubens - Saint-Girons | 150.0km |
| 24-05 | 6 | 6 | Stage 4Espéraza - Pla de Soulcem | 124.0km |
| 23-05 | 51 | 14 | Stage 3Aspet - Salies-du-Salat | 142.0km |
| 22-05 | 21 | 13 | Stage 2Luz-Saint-Sauveur - Cauterets-Cambasque | 135.0km |
| 21-05 | 18 | 18 | Stage 1Saint-Mont - Bagnères-de-Bigorre | 149.0km |
| 03-05 | 46 | | Flèche Ardennaise (1.2) | 174.0km |
| 19-04 | 42 | | Liège-Bastogne-Liège U23 (1.2U) | 175.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 27-03 | DNF | | Stage 3Riccione - Cesena | 142.0km |
| 26-03 | 104 | 115 | Stage 2Riccione - Sogliano al Rubicone | 163.0km |
| 25-03 | 139 | 139 | Stage 1Ferrara - Bondeno | 174.0km |
| 08-03 | DNF | | Grand Prix Criquielion (1.1) | 200.0km |
| | | Tour du Rwanda (2.1) |
| 4 | | Standings |
| 1 | | Youth |
| 7 | | Mountain |
| 02-03 | NR | 4 | Stage 7Kigali - Kigali | 73.0km |
| 01-03 | 2 | 4 | Stage 6Nyanza - Kigali | 114.0km |
| 28-02 | 7 | 7 | Stage 5Rusizi - Huye | 143.0km |
| 27-02 | 15 | 8 | Stage 4Rubavu - Karongi | 97.0km |
| 26-02 | 10 | 8 | Stage 3Musanze - Rubavu | 121.0km |
| 25-02 | 24 | 12 | Stage 2Kigali - Musanze | 113.0km |
| 24-02 | 45 | 14 | Stage 1Rukomo - Kayonza | 158.0km |
| 23-02 | 18 | 18 | PrologueKigali - Kigali | 3.0km |
| 16-02 | 85 | | Clasica de Almeria (1.Pro) | 189.0km |
| 26-01 | 65 | | Clàssica Comunitat Valenciana 1969 - Gran Premi València (1.1) | 184.0km |