28.06 | 3 | | | National Championships Canada ME - Road Race (NC) | 199.2 | 7 | 60 | more |
27.06 | 1 | | | National Championships Canada ME - ITT (NC) | 34 | 15 | 50 | more |
08.06 › 15.068-15/6 | | | | Critérium du Dauphiné (2.UWT) | | | | more |
| 23 | | | Youth classificationYouth classification | | | | |
| 18 | | | Mountains classificationMountains classification | | | | |
| 35 | | | Points classificationPoints classification | | | | |
| 70 | | | General classificationGeneral classification | | 5 | | |
15.06 | 41 | | | S8Stage 8 - Val-d'Arc › Plateau du Mont-Cenis | 133.3 | | | |
14.06 | 83 | 93 | | S7Stage 7 - Grand-Algueblanche › Valmeinier 1800 | 131.6 | | | |
13.06 | 41 | 90 | | S6Stage 6 - Valserhône › Combloux 92k | 126.7 | | | |
12.06 | 108 | 109 | | S5Stage 5 - Saint-Priest › Mâcon | 183 | | | |
11.06 | 23 | 112 | | S4 (ITT)Stage 4 (ITT) - Charmes-sur-Rhône › Saint-Péray | 17.4 | | | |
10.06 | 117 | 122 | | S3Stage 3 - Brioude › Charantonnay 148k | 207.2 | | | |
09.06 | 115 | 120 | | S2Stage 2 - Prémilhat › Issoire | 204.6 | | | |
08.06 | 124 | 124 | | S1Stage 1 - Domérat › Montluçon | 195.8 | | | |
29.04 › 04.0529-4/4 | | | | Tour de Romandie (2.UWT) | | | | more |
| 23 | | | Youth classificationYouth classification | | | | |
| 59 | | | General classificationGeneral classification | | 5 | 3 | |
04.05 | 24 | | | S5 (ITT)Stage 5 (ITT) - Genève › Genève | 17.1 | | | |
03.05 | 46 | 60 | | S4Stage 4 - Sion › Thyon 2000 | 118.2 | | | |
02.05 | 76 | 79 | | S3Stage 3 - Cossonay › Cossonay | 183.1 | | | |
01.05 | 94 | 103 | | S2Stage 2 - La Grande Béroche › La Grande Béroche | 157 | | | |
30.04 | 118 | 117 | | S1Stage 1 - Münchenstein › Fribourg | 194.3 | | | |
29.04 | 71 | 71 | | ProloguePrologue - Saint-Imier › Saint-Imier | 3.44 | | | |
23.04 | 75 | | | La Flèche Wallonne (1.UWT) | 205.1 | 5 | | more |
07.04 › 12.047-12/4 | | | | Itzulia Basque Country (2.UWT) | | | | more |
| 11 | | | Youth classificationYouth classification | | | | |
| 35 | | | Points classificationPoints classification | | | | |
| 90 | | | General classificationGeneral classification | | 5 | | |
12.04 | 69 | | | S6Stage 6 - Eibar › Eibar | 153.4 | | | |
11.04 | 117 | 121 | | S5Stage 5 - Urduña › Gernika-Lumo | 172.3 | | | |
10.04 | 119 | 110 | | S4Stage 4 - Beasain › Markina-Xemein | 169.6 | | | |
09.04 | 147 | 96 | | S3Stage 3 - Zarautz › Beasain | 156.6 | | | |
08.04 | 66 | 10 | | S2Stage 2 - Pamplona-Iruña › Lodosa | 186.6 | | | |
07.04 | 10 | 10 | | S1 (ITT)Stage 1 (ITT) - Vitoria-Gasteiz › Vitoria-Gasteiz (Baskonia-Alavés) | 16.5 | 1 | 1 | |
24.03 › 30.0324-30/3 | | | | Volta Ciclista a Catalunya (2.UWT) | | | | more |
| 23 | | | Youth classificationYouth classification | | | | |
| 32 | | | Mountains classificationMountains classification | | | | |
| 28 | | | Points classificationPoints classification | | | | |
| 103 | | | General classificationGeneral classification | | 5 | | |
30.03 | 87 | | | S7Stage 7 - Barcelona › Barcelona | 88.2 | | | |
29.03 | 129 | 107 | | S6Stage 6 - Berga › Berga | 72 25 | | | |
28.03 | 144 | 109 | | S5Stage 5 - Paüls › Amposta 88k | 165.9 | | | |
27.03 | 105 | 90 | | S4Stage 4 - Sant Vicenç de Castellet › Montserrat Mil·lenari | 188.7 | | | |
26.03 | 76 | 91 | | S3Stage 3 - Viladecans The Style Outlets › La Molina | 218.6 | | | |
25.03 | 118 | 112 | | S2Stage 2 - Banyoles › Figueres | 180.5 | | | |
24.03 | 115 | 115 | | S1Stage 1 - Sant Feliu de Guíxols › Sant Feliu de Guíxols | 178.6 | | | |
05.03 | DNF | | | Trofeo Laigueglia (1.Pro) | 197 | | | more |
17.02 › 23.0217-23/2 | | | | UAE Tour (2.UWT) | | | | more |
| 24 | | | Youth classificationYouth classification | | | | |
| 29 | | | Points classificationPoints classification | | | | |
| 74 | | | General classificationGeneral classification | | 5 | | |
23.02 | 53 | | | S7Stage 7 - Al Ain Hazza Bin Zayed Stadium › Jebel Hafeet | 176 | | | |
22.02 | 117 | 109 | | S6Stage 6 - Abu Dhabi Cycling Club › Abu Dhabi Breakwater | 165 | | | |
21.02 | 131 | 116 | | S5Stage 5 - American University Dubai › Hamdan Bin Mohammed Smart University | 160 | | | |
20.02 | 130 | 86 | | S4Stage 4 - Fujairah Qidfa Beach › Umm al Quwain 135k | 181 | | | |
19.02 | 56 | 67 | | S3Stage 3 - Ras al Khaimah › Jebel Jais | 181 | | | |
18.02 | 35 | 135 | | S2 (ITT)Stage 2 (ITT) - Al Hudayriyat Island › Al Hudayriyat Island | 12.2 | | | |
17.02 | 136 | 136 | | S1Stage 1 - Madinat Zayed Shams Solar Park › Liwa Palace | 138 | | | |
05.02 › 09.025-9/2 | | | | Volta a la Comunitat Valenciana (2.Pro) | | | | more |
08.02 | DNS | | | S4Stage 4 - Oropesa del Mar › Portell de Morella | 181 | | | |
07.02 | 125 | 100 | | S3Stage 3 - Algemesí › Alpuente | 180.3 | | | |
06.02 | 109 | 88 | | S2Stage 2 - La Nucía › Benifato (Font de Partegat) | 166 | | | |
05.02 | 5 | 24 | | S1 (TTT)Stage 1 (TTT) - Orihuela › Orihuela | 34.3 | 3 | 0.43 | |