15.10 | 3 | | | Chrono des Nations (1.1) | 27.23 | 100 | | more |
23.09 | 54 | | | European Continental Championships MJ - Road Race (CC) | 111 | | | more |
20.09 | 10 | | | European Continental Championships MJ - ITT (CC) | 19.8 | 88 | | more |
19.08 › 20.0819-20/8 | | | | Tour Causses Aigoual Cévennes & Pays de Sommières (NAT) | | | | more |
| 1 | | | General classificationGeneral classification | | 30 | | |
20.08 | 5 | | | S3Stage 3 - Lasalle › Lasalle | 80 | 8 | | |
20.08 | 1 | | | S2 (ITT)Stage 2 (ITT) - Logrian-Florian › Logrian-Florian | 9.15 | 15 | | |
19.08 | 49 | | | S1Stage 1 - Souvignargues › Souvignargues | 111 | | | |
11.08 | 8 | | | World Championships MJ - ITT (WC) | 22.7 | 150 | | more |
21.07 › 23.0721-23/7 | | | | Junioren Rundfahrt (2.1) | 25 | | | more |
21.07 | NR | | | S1bStage 1b - Haid/Ansfelden › Marchtrenk | 94.1 25 | | | |
21.07 | 4 | 4 | | S1a (ITT)Stage 1a (ITT) - Haid/Ansfelden › Haid/Ansfelden | 2.9 | 72 | | |
12.07 › 16.0712-16/7 | | | | Ain Bugey Valromey Tour (2.1) | | | | more |
| 28 | | | General classificationGeneral classification | | | | |
16.07 | 47 | | | S5Stage 5 - Yenne › Col du Grand Colombier | 87.9 | | | |
15.07 | 32 | 23 | | S4Stage 4 - Artemare › Les Plans d'Hotonnes | 124.5 | | | |
14.07 | 34 | 17 | | S3Stage 3 - Montalieu-Vercieu › Les Aveniéres | 94.6 | | | |
13.07 | 63 | 24 | | S2Stage 2 - Champdor › Belley | 101.9 | | | |
12.07 | 7 | 27 | | S1 (TTT)Stage 1 (TTT) - Lagnieu › Lhuis | 37.9 | | | |
09.07 | 1 | | | Tour du Carmausin Ségala (NAT) | | 50 | | more |
24.06 | 14 | | | National Championships Ireland MJ - Road Race (NC) | 122.6 | 7 | | more |
22.06 | 1 | | | National Championships Ireland MJ - ITT (NC) | 31.2 | 25 | | more |
18.06 | 20 | | | Noel Teggart Memorial (NAT) | | | | more |
08.06 › 11.068-11/6 | | | | LVM Saarland Trofeo (2.Ncup) Ireland | | | | more |
| 11 | | | Mountains classificationMountains classification | | | | |
| 43 | | | General classificationGeneral classification | | | | |
11.06 | NR | | | S4Stage 4 - Niedergailbach › Niedergailbach | 115 | | | |
10.06 | 6 | 43 | | S3b (ITT)Stage 3b (ITT) - Zweibrücken › Zweibrücken | 10 | 60 | | |
10.06 | 40 | 44 | | S3aStage 3a - Niederwürzbach › Aßweiler | 116 | | | |
09.06 | 44 | 47 | | S2Stage 2 - Sarreguemines › Bitche | 112 | | | |
08.06 | 68 | 68 | | S1Stage 1 - Neunkirchen › Friedrichsthal | 109 | | | |
20.05 › 21.0520-21/5 | | | | Trophée Centre Morbihan (2.Ncup) | | | | more |
| 27 | | | Points classificationPoints classification | | | | |
| 66 | | | General classificationGeneral classification | | | | |
21.05 | 61 | | | S3Stage 3 - Lizio › Locminé | 115.6 | | | |
21.05 | 8 | 85 | | S2 (ITT)Stage 2 (ITT) - Réguiny › Évellys | 7 | 52 | | |
20.05 | 94 | 94 | | S1Stage 1 - Grand-Champ › Grand-Champ | 128.9 | | | |
13.05 › 14.0513-14/5 | | | | Tour de Gironde International (2.1) | | | | more |
| 20 | | | Points classificationPoints classification | | | | |
| 9 | | | General classificationGeneral classification | | 72 | | |
14.05 | 53 | | | S3Stage 3 - Podensac › Villenave-d'Ornon | 105 | | | |
13.05 | 31 | 9 | | S2Stage 2 - Guîtres › Cenon | 95 | | | |
13.05 | 8 | 8 | | S1 (ITT)Stage 1 (ITT) - Saint-Denis-de-Pile › Guîtres | 10 | 32 | | |
06.05 › 09.056-9/5 | | | | Tour du Pays d'Olliergues (NAT) | | | | more |
| 6 | | | General classificationGeneral classification | | 36 | | |
07.05 | 3 | | | S3Stage 3 - Marat › Le Brugeron | 88.8 | 20 | | |
07.05 | 1 | | | S2 (ITT)Stage 2 (ITT) - Vertolaye › Marat | 8.3 | 25 | | |
06.05 | 19 | | | S1Stage 1 - Saint-Gervais-sous-Meymont › Saint-Pierre-La-Bourlhonne | 105.6 | 4 | | |
18.03 | | | | Ras Mhaigheo (NAT) | | | | more |
| 12 | | | General classificationGeneral classification | | | | |
18.03 | 4 | | | S2Stage 2 | 3.4 | | | |
25.02 | 48 | | | Mapei Classic (NAT) | 96.5 | | | more |