| 19-10 | DNS | | Varberg Cyclocross Day 2 (C2) | |
| 18-10 | DNS | | Varberg Cyclocross Day 1 (C2) | |
| 12-10 | DNF | | Fristads Cx Day 2 (C2) | |
| 11-10 | 11 | | Fristads CX Day 1 (C2) | |
| 03-10 | DNF | | UEC Road European Championships U19 (CC) | 103.0km |
| | | Grand Prix Rüebliland (2.1) |
| 45 | | Klassement |
| 11 | | Berg |
| 07-09 | 56 | 45 | Stage 3Altishofen - Altishofen (110.0km) | 110.0km |
| 06-09 | 39 | 44 | Stage 2Kaisten - Kaisten (88.0km) | 88.0km |
| 05-09 | 69 | 69 | Stage 1Sulz - Sulz (102.0km) | 102.0km |
| | | Vuelta Junior a la Ribera del Duero (2.1) |
| 22-08 | 15 | 15 | Stage 1Sotillo de la Ribera - Baños de Valdearados (85.0km) | 85.0km |
| | | La Ronde Des Vallées (2.1) |
| 17-08 | 39 | 27 | Stage 2aSaint-Caradec - Hémonstoir (11.0km) | 11.0km |
| 17-08 | 88 | 70 | Stage 2bHémonstoir - Hémonstoir (104.0km) | 104.0km |
| 16-08 | 36 | 36 | Stage 1La Prénessaye - La Prénessaye (105.0km) | 105.0km |
| | | Junioren Rundfahrt (2.1) |
| 27-07 | DNF | | Stage 3Bad Wimsbach - Strass im Attergau (109.0km) | 109.0km |
| 26-07 | 94 | 94 | Stage 2Sarleinsbach - Sarleinsbach (94.0km) | 94.0km |
| 25-07 | 73 | 73 | Stage 1Marchtrenk - Marchtrenk (108.0km) | 108.0km |
| | | Sint Martinusprijs Kontich (2.1) |
| 32 | | Klassement |
| 13 | | Punten |
| 1 | | Berg |
| 06-07 | 7 | 32 | Stage 4Kontich - Kontich (118.0km) | 118.0km |
| 05-07 | 32 | 35 | Stage 3aKontich - Kontich (11.0km) | 11.0km |
| 05-07 | 9 | 34 | Stage 3bKontich - Kontich (120.0km) | 120.0km |
| 04-07 | 18 | 48 | Stage 2Kontich - Kontich (120.0km) | 120.0km |
| 03-07 | 15 | 55 | Stage 1Kontich - Kontich (18.0km) | 18.0km |
| 01-07 | 5 | | National Road Championships - Sweden TT U19 (CN) | |
| 28-06 | 5 | | National Road Championships - Sweden U19 (CN) | 136.0km |
| | | LVM Saarland Trofeo (2.NCUP) |
| 22-06 | DNF | | Stage 4Peppenkum - Peppenkum (122.0km) | 122.0km |
| 21-06 | 27 | 31 | Stage 3bBallweiler - Ballweiler (106.0km) | 106.0km |
| 21-06 | 25 | 33 | Stage 3aAltheim - Altheim (12.0km) | 12.0km |
| 20-06 | 45 | 42 | Stage 2Sarreguemines - Rohrbach-lès-Bitche (119.0km) | 119.0km |
| 19-06 | 56 | 58 | Stage 1Elversberg - Elversberg (127.0km) | 127.0km |
| | | SPIE Internationale Junioren Driedaagse (2.1) |
| 19 | | Klassement |
| 9 | | Punten |
| 25-05 | 46 | 19 | Stage 3Strijpen - Strijpen (105.0km) | 105.0km |
| 24-05 | 9 | 15 | Stage 2bSluiskil - Sluiskil (94.0km) | 94.0km |
| 24-05 | 29 | 29 | Stage 2aWestdorpe - Westdorpe (11.0km) | 11.0km |
| 23-05 | 7 | 9 | Stage 1Axel - Axel (101.0km) | 101.0km |
| | | Course de la Paix Juniors (2.NCUP) |
| 52 | | Klassement |
| 32 | | Punten |
| 9 | | Berg |
| 11-05 | 9 | 52 | Stage 4Terezín - Terezín (102.0km) | 102.0km |
| 10-05 | 57 | 55 | Stage 3Teplice - Olbernhau (112.0km) | 112.0km |
| 09-05 | 36 | 34 | Stage 2aTrebivlice - Trebivlice (8.0km) | 8.0km |
| 09-05 | 104 | 34 | Stage 2bRoudnice - Terezín (58.0km) | 58.0km |
| 08-05 | 52 | 56 | Stage 1Litomerice - Úštěk (109.0km) | 109.0km |
| 13-04 | 12 | | Paris-Roubaix Juniors (1.NCUP) | 110.0km |
| | | Tour du Bocage et de l'Ernée 53 (2.1) |
| 30-03 | 23 | 24 | Stage 2aAmbrières-les-Vallées - Ambrières-les-Vallées (13.0km) | 13.0km |
| 30-03 | 109 | 78 | Stage 2bAmbrières-les-Vallées - Ambrières-les-Vallées (105.0km) | 105.0km |
| 29-03 | 35 | 35 | Stage 1Montenay - Montenay (118.0km) | 118.0km |
| 02-02 | DNF | | UCI Cyclo-cross World Championships Liévin U19 (CM) | |
| 26-01 | 22 | | UCI Cyclo-cross World Cup - Hoogerheide U19 (CDM) | |
| 05-01 | 3 | | Cyclo-cross Dendermonde U19 (C1) | |
| 04-01 | 10 | | Telenet Superprestige - Hexia Cyclocross Gullegem U19 (C2) | |
| 03-01 | 18 | | X²O Badkamers Trofee - Vlaamse Duinencross U19 (C1) | |
| 01-01 | 6 | | X²O Badkamers Trofee - GP Sven Nys U19 (C1) | |