17.07 | 5 | | | National Championships Morocco ME - Road Race (NC) | | 2 | 25 | more |
15.07 | 10 | | | National Championships Morocco ME - ITT (NC) | 30 | | 1 | more |
07.07 › 10.077-10/7 | | | | GP Internacional Torres Vedras - Trofeu Joaquim Agostinho (2.2) | | | | more |
| 76 | | | General classificationGeneral classification | | | | |
10.07 | 79 | | | S3Stage 3 - Atouguia de Baleia › Carvoeira | 147 | | | |
09.07 | 75 | 70 | | S2Stage 2 - Palhagueiras › Torres Vedras | 154.3 | | | |
08.07 | 65 | 67 | | S1Stage 1 - Ventosa › Alto de Montejunto | 179 | | | |
07.07 | 91 | 91 | | ProloguePrologue - Turcifal › Turcifal | 8 | | | |
07.06 › 12.067-12/6 | | | | Okolo Slovenska (2.2) | | | | more |
10.06 | DNF | | | S3Stage 3 - Strbske Pleso › Zuberec | 193.2 | | | |
09.06 | 107 | 112 | | S2Stage 2 - Banska Bystrica › Strbske Pleso | 170.1 | | | |
08.06 | 113 | 113 | | S1Stage 1 - Banska Bystrica › Banska Bystrica | 136.8 | | | |
07.06 | 104 | 104 | | ProloguePrologue - Banska Bystrica › Banska Bystrica | 1.1 | | | |
21.05 › 24.0521-24/5 | | | | Tour de Tunisie (2.2) | | | | more |
| 12 | | | General classificationGeneral classification | | | | |
24.05 | 11 | | | S4Stage 4 - Hammamet › Zaghouan | 173.2 | | | |
23.05 | 17 | 22 | | S3Stage 3 - Sousse › Nabeul | 154 | | | |
22.05 | 29 | 26 | | S2Stage 2 - Hammamet › Sousse | 112 | | | |
21.05 | 24 | 24 | | S1Stage 1 - Hammamet › Hammamet | 30 | | | |
08.05 | 7 | | | Challenge du Prince - Trophée de la Maison Royale (1.2) | 154 | | 5 | more |
07.05 | 6 | | | Challenge du Prince - Trophée de l'Anniversaire (1.2) | 170.5 | 1 | 10 | more |
05.05 | 17 | | | Challenge du Prince - Trophée Princier (1.2) | 142.5 | | | more |
24.04 | DNF | | | Paris - Mantes-en-Yvelines (1.2) | 174.7 | | | more |
01.04 › 10.041-10/4 | | | | Tour du Maroc (2.2) | | | | more |
| 24 | | | General classificationGeneral classification | | | | |
10.04 | 14 | | | S10Stage 10 - El Jadida › Casablanca | 127.5 | | | |
09.04 | 67 | 26 | | S9Stage 9 - Safi › El Jadida | 151.5 | | | |
08.04 | 39 | 26 | | S8Stage 8 - Essaouira › Safi | 150.8 | | | |
07.04 | 51 | 26 | | S7Stage 7 - Agadir › Essaouira | 166.6 | | | |
06.04 | 81 | 29 | | S6Stage 6 - Ouled Berhil › Agadir | 123 | | | |
05.04 | 29 | 29 | | S5Stage 5 - Marrakech › Ouarzazate | 193 | | | |
04.04 | 95 | 49 | | S4Stage 4 - Beni Mellal › Marrakech | 193.5 | | | |
03.04 | 47 | 48 | | S3Stage 3 - Fes › Khenifra | 158.1 | | | |
02.04 | 60 | 53 | | S2Stage 2 - Meknes › Fes | 140.8 | | | |
01.04 | 50 | 52 | | S1Stage 1 - Rabat › Meknes | 135.2 | | | |
12.03 › 20.0312-20/3 | | | | Tour du Cameroun (2.2) | | | | more |
| 5 | | | Mountains classificationMountains classification | | | | |
| 11 | | | Points classificationPoints classification | | | | |
| 1 | | | General classificationGeneral classification | | 25 | 40 | |
20.03 | 38 | | | S8Stage 8 - Bafia › Yaou | 121 | | | |
19.03 | 9 | 1 | | S7Stage 7 - Bafoussam › Bafoussam | 101 | | | |
18.03 | 10 | 1 | | S6Stage 6 - Mbanga › Bafang | 122 | | | |
16.03 | 18 | 1 | | S5Stage 5 - Douala › Kumba | 120 | | | |
15.03 | 17 | 1 | | S4Stage 4 - Douala › Douala | 103.2 | | | |
14.03 | 26 | 1 | | S3Stage 3 - Kribi › Douala | 173 | | | |
13.03 | 19 | 1 | | S2Stage 2 - Pouma › Kribi | 153 | | | |
12.03 | 1 | 1 | | S1Stage 1 - Ayos › Yaoundé | 128 | 5 | 7 | |
26.02 | 22 | | | African Continental Championships - Road Race (CC) | 180 | 5 | | more |
18.01 › 24.0118-24/1 | | | | La Tropicale Amissa Bongo (2.1) | | | | more |
| 17 | | | Mountains classificationMountains classification | | | | |
| 58 | | | General classificationGeneral classification | | | | |
24.01 | 56 | | | S7Stage 7 - Cap Esterias › Libreville | 130 | | | |
23.01 | 36 | 66 | | S6 (ITT)Stage 6 (ITT) - Akanda › Stade de l'Amitie | 4 | | | |
22.01 | 72 | 66 | | S5Stage 5 - Meyo Kie › Oyem | 118 | | | |
21.01 | 78 | 65 | | S4Stage 4 - Oyem › Ambam | 141 | | | |
20.01 | 64 | 58 | | S3Stage 3 - Lambarene › Ndole | 130 | | | |
19.01 | 63 | 50 | | S2Stage 2 - Fougamou › Mouila | 105 | | | |
18.01 | 47 | 48 | | S1Stage 1 - Kango › Lambarene | 146 | | | |