| 20-10 | 33 | | Veneto Classic (1.Pro) | 191.0km |
| 16-10 | 51 | | Giro del Veneto (1.Pro) | 173.0km |
| 06-10 | DNF | | Coppa Agostoni (1.1) | 166.0km |
| | | Petronas Le Tour de Langkawi (2.Pro) |
| 02-10 | OTL | | Stage 4Kuala Kubu Bharu - Bentong (131.0km) | 131.0km |
| 01-10 | 34 | 35 | Stage 3Taiping - Cameron Highlands (170.0km) | 170.0km |
| 30-09 | 115 | 100 | Stage 2Arau - Butterworth (154.0km) | 154.0km |
| 29-09 | 63 | 65 | Stage 1Langkawi - Langkawi (96.0km) | 96.0km |
| 22-09 | 52 | | UCI World Championships Marathon Snowshoe (CM) | |
| 15-09 | 47 | | Trofeo Matteotti (1.1) | 194.0km |
| 12-09 | DNF | | Gran Premio città di Peccioli - Coppa Sabatini (1.Pro) | 197.0km |
| 11-09 | 19 | | Giro della Toscana - Memorial Alfredo Martini (1.1) | 182.0km |
| 08-09 | 14 | | Ökk Bike Revolution #4 (1) | |
| 01-09 | 3 | | GP Kranj (1.2) | 158.0km |
| 25-08 | 12 | | Swiss Bike Cup Basel (HC) | |
| 24-08 | 1 | | Swiss National Championships - XCM (CN) | |
| 24-08 | 2 | | Grand Raid BCVS - MTB Alpine Cup - XCM (HC) | |
| | | Tour du Limousin (2.1) |
| 33 | | Klassement |
| 13 | | Jongeren |
| 10 | | Berg |
| 16-08 | 78 | 33 | Stage 4Oradour-sur-Glane - Limoges (161.0km) | 161.0km |
| 15-08 | 25 | 27 | Stage 3Mansac - Argentat (189.0km) | 189.0km |
| 14-08 | 43 | 41 | Stage 2 Saint-Aulaye-Puymangou - Terrasson-Lavilledieu (193.0km) | 193.0km |
| 13-08 | 35 | 38 | Stage 1Boisseuil - Auzances (174.0km) | 174.0km |
| 04-08 | 6 | | Cupa Max Ausnit (1.2) | |
| | | Czech Tour (2.1) |
| 29 | | Klassement |
| 28-07 | 33 | 29 | Stage 4Šumperk - Šternberk (129.0km) | 129.0km |
| 27-07 | 33 | 30 | Stage 3Moravska Trebova - Dlouhé (131.0km) | 131.0km |
| 26-07 | 37 | 38 | Stage 2Zlin - Pustevny (170.0km) | 170.0km |
| 25-07 | 77 | 78 | Stage 1Prostejov - Ostrava (151.0km) | 151.0km |
| | | Tour of Qinghai Lake (2.Pro) |
| 16 | | Klassement |
| 38 | | Punten |
| 6 | | Jongeren |
| 14-07 | 70 | 16 | Stage 8Menyuan - Menyuan (121.0km) | 121.0km |
| 13-07 | 6 | 16 | Stage 7Qilian - Menyuan (169.0km) | 169.0km |
| 12-07 | 32 | 18 | Stage 6Xihaizhen - Qilian (206.0km) | 206.0km |
| 11-07 | 27 | 23 | Stage 5Gonghe - Xihaizhen (126.0km) | 126.0km |
| 10-07 | 26 | 22 | Stage 4Guide - Gonghe (136.0km) | 136.0km |
| 09-07 | 15 | 25 | Stage 3Huzhu - Guide (202.0km) | 202.0km |
| 08-07 | 58 | 43 | Stage 2Duoba - Huzhu (112.0km) | 112.0km |
| 07-07 | 66 | 68 | Stage 1Xining - Xining (121.0km) | 121.0km |
| 07-07 | 8 | | UCI Mountain Bike World Cup XCM - Haute-Savoie (CDM) | |
| 23-06 | 13 | | National Road Championships - Switzerland (CN) | 184.0km |
| 20-06 | DNS | | National Road Championships - Switzerland TT (CN) | 31.0km |
| | | Tour de Suisse (2.UWT) |
| 75 | | Klassement |
| 30 | | Jongeren |
| 16-06 | 111 | 75 | Stage 8Villars-sur-Ollon - Villars-sur-Ollon (15.0km) | 15.0km |
| 15-06 | 74 | 71 | Stage 7Villars-sur-Ollon - Villars-sur-Ollon (118.0km) | 118.0km |
| 14-06 | 84 | 77 | Stage 6Locarno - Blatten (151.0km) | 151.0km |
| 13-06 | 35 | 73 | Stage 5Ambri - Carì (148.0km) | 148.0km |
| 12-06 | 136 | 109 | Stage 4Rüschlikon - Gotthard Pass (171.0km) | 171.0km |
| 11-06 | 87 | 83 | Stage 3Steinmaur - Rüschlikon (161.0km) | 161.0km |
| 10-06 | 102 | 103 | Stage 2Regensdorf - Regensdorf (177.0km) | 177.0km |
| 09-06 | 149 | 149 | Stage 1Vaduz - Vaduz (4.0km) | 4.0km |
| 07-06 | 67 | | Grosser Preis des Kantons Aargau (1.1) | 173.0km |
| 19-05 | 1 | | Jura Bike Marathon by Scott - XCM (1) | |
| | | Tour de Romandie (2.UWT) |
| 86 | | Klassement |
| 46 | | Punten |
| 12 | | Berg |
| 28-04 | 116 | 86 | Stage 5Vernier - Vernier (150.0km) | 150.0km |
| 27-04 | 125 | 78 | Stage 4Bains de Saillon - Leysin (151.0km) | 151.0km |
| 26-04 | 87 | 54 | Stage 3Oron - Oron (15.0km) | 15.0km |
| 25-04 | 59 | 52 | Stage 2Freiburg - Salvan (171.0km) | 171.0km |
| 24-04 | 19 | 68 | Stage 1Château-d'Œx - Freiburg (165.0km) | 165.0km |
| 23-04 | 108 | 108 | ProloguePayerne - Payerne (2.0km) | 2.0km |
| | | Circuit des Ardennes (2.2) |
| 24 | | Klassement |
| 07-04 | 22 | 24 | Stage 4Sedan - Sedan (163.0km) | 163.0km |
| 06-04 | 25 | 29 | Stage 3Charleville-Mézières - Aiglemont (145.0km) | 145.0km |
| 05-04 | 48 | 42 | Stage 2Auvillers-les-Forges - Hardoncelle (167.0km) | 167.0km |
| 04-04 | 48 | 48 | Stage 1Juniville - Asfeld (165.0km) | 165.0km |
| | | Volta ao Alentejo (2.2) |
| 23 | | Klassement |
| 41 | | Punten |
| 24-03 | 31 | 23 | Stage 5Monforte - Évora (154.0km) | 154.0km |
| 23-03 | 16 | 24 | Stage 4Crato - Castelo de Vide (148.0km) | 148.0km |
| 22-03 | 70 | 60 | Stage 3Vendas Novas - Estremoz (191.0km) | 191.0km |
| 21-03 | 102 | 12 | Stage 2Castro Verde - Grandola (170.0km) | 170.0km |
| 20-03 | 12 | 12 | Stage 1Beja - Ourique (168.0km) | 168.0km |
| 17-03 | 23 | | Swiss Bike Cup Gränichen (1) | |