
10th of May – Sprint (Taça de Portugal de Sprint)
Course Setter – Ivan Mostepanov
| Classes | Distance (m) | Controls | Climb (m) | Scale |
| Open | White | 1360 | 13 | 32 | 1:40000 |
| Open | Yellow | 2490 | 14 | 52 | 1:40000 |
| Open | Green | 2150 | 12 | 40 | 1:40000 |
| Open | Red | 3450 | 18 | 64 | 1:40000 |
| W10 | 1360 | 13 | 32 | 1:40000 |
| M10 | 1360 | 13 | 32 | 1:40000 |
| W12 | 1730 | 17 | 44 | 1:40000 |
| M12 | 1730 | 17 | 44 | 1:40000 |
| W14 | 2150 | 12 | 40 | 1:40000 |
| M14 | 2330 | 12 | 48 | 1:40000 |
| W16 | 2490 | 14 | 52 | 1:40000 |
| M16 | 3090 | 15 | 60 | 1:40000 |
| W18 | 2800 | 16 | 60 | 1:40000 |
| M18 | 3450 | 18 | 64 | 1:40000 |
| W20 | 2960 | 17 | 56 | 1:40000 |
| M20 | 3530 | 15 | 64 | 1:40000 |
| Women Elite | 3230 | 17 | 68 | 1:40000 |
| Men Elite | 3820 | 22 | 72 | 1:40000 |
| W21A | 2960 | 17 | 56 | 1:40000 |
| M21A | 3530 | 15 | 64 | 1:40000 |
| W21B | 2490 | 14 | 52 | 1:40000 |
| M21B | 3090 | 15 | 60 | 1:40000 |
| W35 | 2960 | 17 | 56 | 1:40000 |
| M35 | 3530 | 15 | 64 | 1:40000 |
| W40 | 2760 | 16 | 48 | 1:40000 |
| M40 | 3190 | 16 | 72 | 1:40000 |
| W45 | 2760 | 16 | 48 | 1:40000 |
| M45 | 3190 | 16 | 72 | 1:40000 |
| W50 | 2550 | 14 | 56 | 1:40000 |
| M50 | 2880 | 14 | 52 | 1:40000 |
| W55 | 2550 | 14 | 56 | 1:40000 |
| M55 | 2880 | 14 | 52 | 1:40000 |
| W60 | 2200 | 13 | 52 | 1:40000 |
| M60 | 2490 | 13 | 60 | 1:40000 |
| W65 | 2200 | 13 | 52 | 1:40000 |
| M65 | 2490 | 13 | 60 | 1:40000 |
| W70 | 2060 | 12 | 48 | 1:40000 |
| M70 | 2220 | 13 | 52 | 1:40000 |
| W75 | 2060 | 12 | 48 | 1:40000 |
| M75 | 2220 | 13 | 52 | 1:40000 |
| W80 | 1930 | 13 | 44 | 1:40000 |
| M80 | 1930 | 13 | 44 | 1:40000 |
| W85 | 1930 | 13 | 44 | 1:40000 |
| M85 | 1930 | 13 | 44 | 1:40000 |
| M90 | 1930 | 13 | 44 | 1:40000 |
11th of May – Matosinhos City Race (Portugal City Race & City Race Euro Tour)
Cartographer – Ivan Mostepanov
Course Setter – Ivan Mostepanov
| Classes | Distance (m) | Controls | Climb (m) | Scale |
| Open Short | 3160 | 16 | 72 | 1:40000 |
| Open Medium | 5450 | 20 | 118 | 1:40000 |
| Open Long | 8290 | 26 | 166 | 1:40000 |
| Educational | 2270 | 19 | 42 | 1:40000 |
| Youth M | 6480 | 26 | 144 | 1:40000 |
| Youth F | 5450 | 20 | 118 | 1:40000 |
| Junior M | 9490 | 31 | 182 | 1:40000 |
| Junior F | 7110 | 28 | 142 | 1:40000 |
| Elite M | 10980 | 38 | 194 | 1:40000 |
| Elite W | 8710 | 31 | 184 | 1:40000 |
| Veteran M | 9490 | 31 | 182 | 1:40000 |
| Veteran W | 7110 | 28 | 142 | 1:40000 |
| Supervet M | 8290 | 26 | 166 | 1:40000 |
| Supervet W | 6150 | 21 | 158 | 1:40000 |
| Ultravet M | 6150 | 21 | 158 | 1:40000 |
| Ultravet W | 4570 | 19 | 96 | 1:40000 |
| Hypervet M | 4000 | 16 | 90 | 1:40000 |
| Hypervet W | 4000 | 16 | 90 | 1:40000 |