20.10 | 4 | | | Chrono des Nations U23 (1.2U) | 33.65 | 4 | 15 | more |
24.09 | 41 | | | World Championships MU - ITT (WC) | 30.3 | | | more |
20.08 | DNF | | | GP Stad Zottegem (1.1) | 200.6 | | | more |
10.08 | 20 | | | European Continental Championships MU - Road Race (CC) | 138 | | 3 | more |
08.08 | 14 | | | European Continental Championships MU - ITT (CC) | 22.4 | | | more |
31.07 » 04.08 | | | | Tour Alsace (2.2) | | | | more |
03.08 | DNF | | | Stage 3 - Ribeauvillé › Station du Lac Blanc | 161.3 | | | more |
02.08 | 122 | 121 | | Stage 2 - Vesoul › La Planche des Belles Filles | 141.1 | | | more |
01.08 | 143 | 95 | | Stage 1 - Sélestat › Sélestat | 153.4 | | | more |
31.07 | 33 | 94 | | Prologue - Sausheim › Sausheim | 4.3 | | | more |
30.06 | DNF | | | National Championships Ireland ME - Road Race (NC) | 163.3 | | | more |
27.06 | 1 | | | National Championships Ireland U23 - ITT (NC) | 41.4 | | 25 | more |
25.06 | 6 | | | European Games - ITT (JR) | 28.6 | 28 | 20 | more |
23.06 | 53 | | | European Games - Road Race (JR) | 180 | | | more |
06.06 » 09.06 | | | | Course de la Paix Grand Prix Priessnitz spa (2.Ncup) | | | | more |
| 50 | | | General classification | | | | more |
09.06 | 41 | | | Stage 3 - Jesenik › Jesenik | 171.5 | | | more |
08.06 | 55 | 52 | | Stage 2 - Krnov › Dlouhé Strané | 150.6 | | | more |
07.06 | 37 | 36 | | Stage 1 - Jesenik › Rymarov | 134.2 | | | more |
06.06 | 38 | 38 | | Prologue - Krnov › Krnov | 2 | | | more |
05.05 | 109 | | | Entre Brenne et Montmorillonnais (1.2) | 183.3 | | | more |
04.05 | 13 | | | L'Etoile d'Or (1.Ncup) | 180 | | | more |
13.04 | DNF | | | Ronde van Vlaanderen Beloften (1.Ncup) | 167.5 | | | more |
05.04 » 07.04 | | | | Le Triptyque des Monts et Châteaux (2.2U) | | | | more |
| 9 | | | Mountains classification | | | | more |
| 14 | | | General classification | | | | more |
07.04 | 61 | | | Stage 3 - Ath › Tournai | 157.4 | | | more |
06.04 | 50 | 14 | | Stage 2b - Wodecq › Celles | 112.7 | | | more |
06.04 | 11 | 13 | | Stage 2a (ITT) - Celles › Celles | 11.4 | | | more |
05.04 | 19 | 19 | | Stage 1 - Frasnes › Chièvres | 147.1 | | | more |
31.03 | 31 | | | Gent-Wevelgem/Kattekoers-Ieper (1.Ncup) | 173.8 | | | more |
20.03 » 24.03 | | | | Volta ao Alentejo (2.2) | | | | more |
| 31 | | | Youth classification | | | | more |
| 88 | | | General classification | | | | more |
24.03 | 93 | | | Stage 6 - Portalegre › Évora | 152 | | | more |
23.03 | 70 | 88 | | Stage 5 (ITT) - Castelo de Vide › Castelo de Vide | 8.4 | | | more |
23.03 | 103 | 86 | | Stage 4 - Ponte de Sor › Portalegre | 74.3 | | | more |
22.03 | 58 | 80 | | Stage 3 - Santiago do Cacém › Mora | 176.5 | | | more |
21.03 | 59 | 91 | | Stage 2 - Mértola › Odemira | 182.8 | | | more |
20.03 | 112 | 112 | | Stage 1 - Montemor-o-Novo › Moura | 208.1 | | | more |
17.03 | 15 | | | Classica da Arrabida - Cyclin'Portugal (1.2) | 185 | | | more |
21.02 » 24.02 | | | | Tour of Antalya (2.2) | | | | more |
| 13 | | | Points classification | | | | more |
| 64 | | | General classification | | | | more |
24.02 | 42 | | | Stage 4 - Side › Antalya | 158 | | | more |
23.02 | 64 | 65 | | Stage 3 - Perge › Termessos | 91.8 | | | more |
22.02 | 109 | 72 | | Stage 2 - Antalya › Antalya | 111 | | | more |
21.02 | 100 | 100 | | Stage 1 - Beskonak › Antalya | 140.9 | | | more |