13.10 | 49 | | | World Championships MU - Road Race (WC) Ireland | 166 | | | more |
10.10 | 9 | | | World Championships MU - ITT (WC) Ireland | 28.9 | | 25 | more |
17.09 | 41 | | | European Continental Championships MU - Road Race (CC) | 150.7 | | | more |
14.09 | 6 | | | European Continental Championships MU - ITT (CC) | 24.5 | 5 | 3 | more |
01.09 › 05.091-5/9 | | | | Tour of Alberta (2.1) | | | | more |
| 5 | | | Youth classificationYouth classification | | | | |
| 19 | | | General classificationGeneral classification | | 2 | 3 | |
05.09 | 13 | | | S5Stage 5 - Edmonton › Edmonton | 124.1 | | | |
04.09 | 25 | 21 | | S4 (ITT)Stage 4 (ITT) - Edmonton › Edmonton | 12.1 | | | |
03.09 | 30 | 28 | | S3Stage 3 - Rocky Mountain House › Drayton Village | 181.2 | | | |
02.09 | 46 | 40 | | S2Stage 2 - Kananaskis › Olds | 182 | | | |
01.09 | 43 | 44 | | S1Stage 1 - Lethbridge › Lethbridge | 106.9 | | | |
01.08 › 07.081-7/8 | | | | The Larry H.Miller Tour of Utah (2.HC) | | | | more |
| 4 | | | Youth classificationYouth classification | | | | |
| 27 | | | Mountains classificationMountains classification | | | | |
| 38 | | | Points classificationPoints classification | | | | |
| 19 | | | General classificationGeneral classification | | 10 | 5 | |
07.08 | 24 | | | S7Stage 7 - Park City › Park City | 125.7 | | | |
06.08 | 24 | 20 | | S6Stage 6 - Snowbasin › Snowbird | 183.1 | | | |
05.08 | 27 | 21 | | S5Stage 5 - Antelope Island › Bountiful | 186 | | | |
04.08 | 60 | 20 | | S4Stage 4 - Lehi › Kearns | 154 | | | |
03.08 | 23 | 25 | | S3Stage 3 - Richfield › Payson | 191.8 | | | |
02.08 | 29 | 27 | | S2Stage 2 - Escalante › Torrey | 159 | | | |
01.08 | 33 | 35 | | S1Stage 1 - Zion Canyon Village › Cedar City | 135.2 | | | |
20.07 | 73 | | | Grand Prix Cerami (1.1) | 211 | | | more |
26.06 | 8 | | | National Championships Ireland ME - Road Race (NC) | 188 | | 10 | more |
23.06 | 2 | | | National Championships Ireland ME - ITT (NC) | 40 | 7 | 25 | more |
16.06 › 19.0616-19/6 | | | | Tour de Savoie Mont Blanc (2.2) | | | | more |
| 17 | | | Youth classificationYouth classification | | | | |
| 10 | | | Mountains classificationMountains classification | | | | |
| 23 | | | General classificationGeneral classification | | | | |
19.06 | 23 | | | S5Stage 5 - Moutiers › Cluses | 130 | | | |
18.06 | 15 | 24 | | S4 (ITT)Stage 4 (ITT) - St Michel de Maurienne › St Martin de la Porte | 7.5 | | | |
18.06 | 22 | 24 | | S3Stage 3 - Chambéry › Modane | 123 | | | |
17.06 | 32 | 30 | | S2Stage 2 - Barby › Les Déserts | 118 | | | |
16.06 | 19 | 20 | | S1Stage 1 - St Michel de Maurienne › Cruseilles | 145 | | | |
05.06 | 17 | | | Philadelphia International Cycling Classic (1.1) Ireland | 178 | 4 | 3 | more |
22.05 › 29.0522-29/5 | | | | An Post Ras (2.2) | | | | more |
| 6 | | | Mountains classificationMountains classification | | | | |
| 7 | | | Points classificationPoints classification | | | | |
| 4 | | | General classificationGeneral classification | | 11 | 20 | |
29.05 | 10 | | | S8Stage 8 - Kildare › Skerries | 148.4 | | | |
28.05 | 1 | 4 | | S7Stage 7 - Dungarvan › Baltinglass | 155 | 5 | 7 | |
27.05 | 39 | 14 | | S6Stage 6 - Cionakilty › Dungarvan | 159.1 | | | |
26.05 | 17 | 14 | | S5Stage 5 - Sneem › Cionakilty | 166.8 | | | |
25.05 | 81 | 12 | | S4Stage 4 - Dingle › Sneem | 162.8 | | | |
24.05 | 8 | 4 | | S3Stage 3 - Charleville › Dingle | 133.2 | | | |
23.05 | 21 | 6 | | S2Stage 2 - Mullingar › Charleville | 183.7 | | | |
22.05 | 9 | 10 | | S1Stage 1 - Dublin Castle › Multyfarnham | 144.6 | | | |
16.04 | 42 | | | Liège - Bastogne - Liège U23 (1.2U) | 178.6 | | | more |
09.04 | 20 | | | Ronde van Vlaanderen Beloften (1.Ncup) | 166 | | | more |
27.03 | 34 | | | Gent-Wevelgem/Kattekoers-Ieper (1.Ncup) | 184 | | | more |
16.03 › 20.0316-20/3 | | | | Volta ao Alentejo (2.2) | | | | more |
| 9 | | | Youth classificationYouth classification | | | | |
| 30 | | | Points classificationPoints classification | | | | |
| 20 | | | General classificationGeneral classification | | | | |
20.03 | 39 | | | S5Stage 5 - Santiago do Cacém › Évora | 172.3 | | | |
19.03 | 38 | 21 | | S4Stage 4 - Aljustrel › Grândola | 184.7 | | | |
18.03 | 21 | 21 | | S3Stage 3 - Portel › Beja | 186.6 | | | |
17.03 | 93 | 44 | | S2Stage 2 - Monforte › Montemor-o-novo | 206.2 | | | |
16.03 | 34 | 34 | | S1Stage 1 - Portalegre › Castelo de Vide | 158 | | | |
12.03 › 13.0312-13/3 | | | | GP Liberty Seguros - Troféu Alpendre (2.2) | | | | more |
| 18 | | | Youth classificationYouth classification | | | | |
| 55 | | | General classificationGeneral classification | | | | |
13.03 | 68 | | | S2Stage 2 - Lagoa › Lagoa | 186.6 | | | |
12.03 | 55 | 56 | | S1Stage 1 - Vila Nova de Cacela › Vila Nova de Cacela | 154 | | | |