| 19-10 | 43 | | Utsunomiya Japan Cup Road Race (1.Pro) | 144.0km |
| 18-10 | 77 | | Utsunomiya Japan Cup Criterium (CRTP) | |
| 09-10 | 58 | | Gran Piemonte (1.Pro) | 179.0km |
| 04-10 | 15 | | UEC Road European Championships U23 (CC) | 121.0km |
| | | Giro della Regione Friuli Venezia Giulia (2.2) |
| 05-09 | DNS | | Stage 2Porpetto - Teor (167.0km) | 167.0km |
| 04-09 | | | Stage 1Palazzolo dello Stella - Buttrio (156.0km) | 156.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 29-08 | 24 | 18 | Stage 6aLa Rosière Espace San Bernardo - La Rosière Espace San Bernardo (41.0km) | 41.0km |
| 29-08 | 64 | 20 | Stage 6bLa Rosière-Montvalezan - La Rosière-Montvalezan (10.0km) | 10.0km |
| 28-08 | 16 | 20 | Stage 5Saint-Gervais Mont-Blanc - Tignes (121.0km) | 121.0km |
| 27-08 | 39 | 24 | Stage 4Montagnat - Val Suran (110.0km) | 110.0km |
| 26-08 | 37 | 24 | Stage 3Étang-sur-Arroux - Châtillon-sur-Chalaronne (158.0km) | 158.0km |
| 25-08 | 38 | 25 | Stage 2Saint-Symphorien-sur-Coise - Vitry-en-Charollais (136.0km) | 136.0km |
| 24-08 | 50 | 10 | Stage 1Aoste - Saint-Galmier (188.0km) | 188.0km |
| 23-08 | 8 | 8 | PrologueTignes - Tignes (3.0km) | 3.0km |
| | | Giro Ciclistico della Valle d'Aosta - Mont Blanc (2.2U) |
| 4 | | Klassement |
| 4 | | Punten |
| 3 | | Berg |
| 20-07 | 3 | 4 | Stage 5Valtournenche - Breuil-Cervinia (119.0km) | 119.0km |
| 19-07 | 3 | 8 | Stage 4Saint-Pierre - Valsavarenche (160.0km) | 160.0km |
| 18-07 | 12 | 14 | Stage 3Pré-Saint-Didier - Colle del Gran San Bernardo (121.0km) | 121.0km |
| 16-07 | 90 | 90 | Stage 1Aosta - Aosta (85.0km) | 85.0km |
| 29-06 | 10 | | National Road Championships - Ireland (CN) | |
| 26-06 | 3 | | National Road Championships - Ireland TT U23 (CN) | |
| | | Giro d'Italia Next Gen (2.2U) |
| 24 | | Klassement |
| 18 | | Berg |
| 22-06 | 28 | 24 | Stage 8Pinerolo - Pinerolo (127.0km) | 127.0km |
| 21-06 | 23 | 26 | Stage 7Bra - Prato Nevoso (163.0km) | 163.0km |
| 20-06 | 95 | 32 | Stage 6Ovada - Acqui Terme (154.0km) | 154.0km |
| 19-06 | 47 | 17 | Stage 5Fiorenzuola d'Arda - Gavi (153.0km) | 153.0km |
| 18-06 | 69 | 15 | Stage 4Manerbio - Salsomaggiore Terme (134.0km) | 134.0km |
| 17-06 | 15 | 14 | Stage 3Albese con Cassano - Passo del Maniva (144.0km) | 144.0km |
| 16-06 | 82 | 29 | Stage 2Rho - Cantù (146.0km) | 146.0km |
| 15-06 | 34 | 34 | Stage 1Rho - Rho (8.0km) | 8.0km |
| | | Alpes Isère Tour (2.2) |
| 16 | | Klassement |
| 13 | | Punten |
| 17 | | Berg |
| 14 | | Jongeren |
| 01-06 | 3 | 16 | Stage 5Saint-Joseph-de-Rivière - La Mure (181.0km) | 181.0km |
| 31-05 | 38 | 34 | Stage 4Primarette - Saint-Maurice-l'Exil (176.0km) | 176.0km |
| 30-05 | 82 | 51 | Stage 3Colombier-Saugnieu - Jons (159.0km) | 159.0km |
| 29-05 | 42 | 35 | Stage 2Dolomieu - Satolas-et-Bonce (153.0km) | 153.0km |
| 28-05 | 35 | 36 | Stage 1Charvieu-Chavagneux - Charvieu-Chavagneux (135.0km) | 135.0km |
| | | Ronde de l'Isard (2.2U) |
| 2 | | Klassement |
| 4 | | Berg |
| 12 | | Punten |
| 2 | | Jongeren |
| 25-05 | 37 | 2 | Stage 5Saubens - Saint-Girons (150.0km) | 150.0km |
| 24-05 | 2 | 2 | Stage 4Espéraza - Pla de Soulcem (124.0km) | 124.0km |
| 23-05 | 22 | 5 | Stage 3Aspet - Salies-du-Salat (142.0km) | 142.0km |
| 22-05 | 16 | 10 | Stage 2Luz-Saint-Sauveur - Cauterets-Cambasque (135.0km) | 135.0km |
| 21-05 | 14 | 14 | Stage 1Saint-Mont - Bagnères-de-Bigorre (149.0km) | 149.0km |
| 04-05 | 97 | | Lotto Famenne Ardenne Classic (1.1) | 186.0km |
| 03-05 | 51 | | Flèche Ardennaise (1.2) | 174.0km |
| | | Circuit des Ardennes (2.2) |
| 54 | | Klassement |
| 20 | | Berg |
| 21 | | Jongeren |
| 13-04 | 80 | 54 | Stage 5Chooz - Charleville-Mézières (160.0km) | 160.0km |
| 12-04 | 63 | 46 | Stage 4Lac de Bairon - Lac des Vieilles Forges (178.0km) | 178.0km |
| 11-04 | 45 | 47 | Stage 3Boulzicourt - Saint-Marceau (172.0km) | 172.0km |
| 10-04 | 87 | 88 | Stage 2Rethel - Rethel (172.0km) | 172.0km |
| 09-04 | 91 | 93 | Stage 1Sedan - Nouvion-sur-Meuse (133.0km) | 133.0km |