| 16-10 | 94 | | Veneto Classic (1.1) | 190.0km |
| 12-10 | 75 | | Giro del Veneto (1.1) | 159.0km |
| 09-10 | 31 | | UCI Gravel World Championship (CM) | 194.0km |
| | | Tour d'Alsace (2.2) |
| 28-07 | DNF | | Stage 2Rust (Europapark) - Scherwiller (156.0km) | 156.0km |
| 27-07 | 14 | 14 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| 26-06 | 1 | | National Road Championships - Switzerland (CN) | |
| 23-06 | 4 | | National Road Championships - Switzerland TT (CN) | |
| | | Tour de Suisse (2.UWT) |
| 70 | | Klassement |
| 19-06 | 34 | 70 | Stage 8Vaduz - Vaduz (25.0km) | 25.0km |
| 18-06 | 71 | 74 | Stage 7Ambri - Malbun (Triesenberg) (196.0km) | 196.0km |
| 17-06 | 79 | 78 | Stage 6Locarno - Moosalp (179.0km) | 179.0km |
| 16-06 | 112 | 98 | Stage 5Ambri - Novazzano (193.0km) | 193.0km |
| 15-06 | 113 | 104 | Stage 4Grenchen - Brunnen (190.0km) | 190.0km |
| 14-06 | 67 | 106 | Stage 3Aesch - Grenchen (176.0km) | 176.0km |
| 13-06 | 99 | 118 | Stage 2Küsnacht - Aesch (199.0km) | 199.0km |
| 12-06 | 124 | 125 | Stage 1Küsnacht - Küsnacht (177.0km) | 177.0km |
| 10-06 | DNF | | Grosser Preis des Kantons Aargau (1.1) | 173.0km |
| | | Circuit des Ardennes (2.2) |
| 07-04 | 119 | 81 | Stage 2Bazeilles - Sedan (133.0km) | 133.0km |
| 06-04 | 28 | 30 | Stage 1Signy-le-Petit - Signy-le-Petit (165.0km) | 165.0km |
| 27-03 | 9 | | La Roue Tourangelle (1.1) | 202.0km |
| 20-03 | 14 | | Cholet - Pays de la Loire (1.1) | 202.0km |
| 19-03 | 38 | | Classic Loire Atlantique (1.1) | 182.0km |
| | | Istarsko Proljece-Istrian Spring Trophy (2.2) |
| 87 | | Klassement |
| 1 | | Punten |
| 13-03 | 1 | 87 | Stage 3Pazin - Umag (136.0km) | 136.0km |
| 12-03 | 109 | 102 | Stage 2Novigrad - Motovun (175.0km) | 175.0km |
| 11-03 | 8 | 6 | Stage 1Porec - Funtana (152.0km) | 152.0km |
| 10-03 | 3 | 3 | PrologueVrsar - Vrsar (1.0km) | 1.0km |
| 06-03 | 152 | | Trofej Porec - Porec Trophy
(1.2) | |
| 02-03 | 15 | | Trofej Umag - Umag Trophy (1.2) | |