| 09-11 | 5 | | Tour de France Saitama Criterium (CRTP) | 59.0km |
| 02-11 | 19 | | Tour de France EFGH Singapore Criterium (CRTP) | |
| | | NIBC Tour of Holland (2.1) |
| 40 | | Klassement |
| 31 | | Punten |
| 19 | | Jongeren |
| 19-10 | 24 | 40 | Stage 5Arnhem - Arnhem (147.0km) | 147.0km |
| 18-10 | 52 | 44 | Stage 4Emmen - Col du Vam (Wijster) (158.0km) | 158.0km |
| 17-10 | | 25 | Stage 3Sittard-Geleen - Watersley (149.0km) | 149.0km |
| 16-10 | 29 | 25 | Stage 2Etten-Leur - Etten-Leur (14.0km) | 14.0km |
| 15-10 | 13 | 17 | Stage 1Dordrecht - Dordrecht (118.0km) | 118.0km |
| 14-10 | 17 | 17 | PrologueDen Haag - Den Haag (4.0km) | 4.0km |
| 07-10 | DNF | | Binche - Chimay - Binche / Mémorial Frank Vandenbroucke (1.1) | 203.0km |
| | | CRO Race (2.1) |
| 69 | | Klassement |
| 51 | | Punten |
| 17 | | Jongeren |
| 05-10 | 60 | 69 | Stage 6Samobor - Zagreb (156.0km) | 156.0km |
| 04-10 | 61 | 75 | Stage 5Karlovac - Sveta Nedelja (151.0km) | 151.0km |
| 03-10 | 96 | 83 | Stage 4Krk - Labin (187.0km) | 187.0km |
| 02-10 | 40 | 44 | Stage 3Gospić - Rijeka (150.0km) | 150.0km |
| 01-10 | 109 | 60 | Stage 2Biograd na Moru - Novalja (119.0km) | 119.0km |
| 30-09 | 13 | 16 | Stage 1Split - Sinj (162.0km) | 162.0km |
| | | Giro della Regione Friuli Venezia Giulia (2.2) |
| 55 | | Klassement |
| 6 | | Punten |
| 07-09 | 77 | 55 | Stage 4Cervignano del Friuli - San Daniele del Friuli (151.0km) | 151.0km |
| 06-09 | | 4 | Stage 3Ampezzo - Ravascletto (155.0km) | 155.0km |
| 05-09 | 2 | 4 | Stage 2Porpetto - Teor (167.0km) | 167.0km |
| 04-09 | 20 | 20 | Stage 1Palazzolo dello Stella - Buttrio (156.0km) | 156.0km |
| | | Lidl Deutschland Tour (2.Pro) |
| 87 | | Klassement |
| 41 | | Jongeren |
| 24-08 | 55 | 87 | Stage 4Halle - Magdeburg (163.0km) | 163.0km |
| 23-08 | 82 | 92 | Stage 3Arnsberg - Kassel (175.0km) | 175.0km |
| 22-08 | 92 | 89 | Stage 2Herford - Arnsberg (190.0km) | 190.0km |
| 21-08 | 88 | 70 | Stage 1Essen - Herford (202.0km) | 202.0km |
| 20-08 | 81 | 81 | PrologueEssen - Essen (3.0km) | 3.0km |
| | | Tour Alsace (2.2) |
| 105 | | Klassement |
| 4 | | Punten |
| 78 | | Jongeren |
| 03-08 | 95 | 105 | Stage 5Ribeauville - Champ du Feu (135.0km) | 135.0km |
| 02-08 | 105 | 119 | Stage 4Ferrette - Altkirch (133.0km) | 133.0km |
| 01-08 | 124 | 118 | Stage 3Velleminfroy - La Planche des Belles Filles (141.0km) | 141.0km |
| 31-07 | 3 | 6 | Stage 2Rust (Europapark) - Selestat (168.0km) | 168.0km |
| 30-07 | 5 | 11 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| | | Sibiu Cycling Tour (2.1) |
| 04-07 | OTL | | Stage 2Sibiu - Balea Lac (203.0km) | 203.0km |
| 03-07 | 115 | 116 | Stage 1Sibiu - Sibiu (215.0km) | 215.0km |
| 29-06 | DNF | | National Road Championships - Estonia (CN) | |
| 27-06 | DNS | | National Road Championships - Estonia U23 (CN) | |
| 09-06 | 88 | | Antwerp Port Epic / Sels Trophy (1.1) | 180.0km |
| 08-06 | 101 | | Brussels Cycling Classic (1.Pro) | 205.0km |
| 07-06 | 83 | | Heylen Vastgoed Heistse Pijl (1.1) | 189.0km |
| | | Tour of Estonia (2.1) |
| 8 | | Klassement |
| 15 | | Punten |
| 3 | | Jongeren |
| 31-05 | 37 | 8 | Stage 2Tartu - Tartu (164.0km) | 164.0km |
| 30-05 | 26 | 7 | Stage 1Tallinn - Tartu (196.0km) | 196.0km |
| 18-05 | 63 | | Rund um Köln (1.1) | 181.0km |
| 11-05 | 42 | | Gent-Wevelgem / Kattekoers-Ieper (1.2U) | 189.0km |
| 01-05 | DNF | | Eschborn-Frankfurt U23 (1.2U) | 129.0km |
| 13-04 | 28 | | Paris-Roubaix Espoirs (1.2U) | 167.0km |
| 05-04 | 48 | | Boucle de l'Artois (1.2) | 191.0km |
| | | Istrian Spring Tour (2.2) |
| 84 | | Klassement |
| 19 | | Punten |
| 16-03 | 25 | 84 | Stage 3Pazin - Umag (118.0km) | 118.0km |
| 15-03 | 116 | 90 | Stage 2Novigrad - Motovun (139.0km) | 139.0km |
| 14-03 | 95 | 9 | Stage 1Porec - Funtana (142.0km) | 142.0km |
| 13-03 | 6 | 6 | PrologueVrsar - Vrsar (1.0km) | 1.0km |
| 09-03 | 54 | | POREČ Classic (1.2) | 146.0km |
| 05-03 | 18 | | UMAG Classic (1.2) | 142.0km |
| 30-01 | 47 | | Trofeo Felanitx-Ses Salines (1.1) | 184.0km |