Tour types

3 sections

.mttnld-wrap{ --nav:#142E43; --amb:#FFAB4C; --ter:#A8481F; --gold:#B9902E; --ink:#2B241D; --ink2:#5A5148; --line:rgba(185,144,46,.28); --sand:rgba(185,144,46,.07); --warm:rgba(168,72,31,.07); --r:8px; width:100%; max-width:100%; box-sizing:border-box; font-family:inherit; color:var(--ink); background:transparent; font-size:clamp(15px,1.6vw,17px); line-height:1.75; counter-reset:mttnldsec; } .mttnld-wrap *,.mttnld-wrap *::before,.mttnld-wrap *::after{box-sizing:border-box} .mttnld-wrap p{margin:0 0 1.05em; text-align:justify; hyphens:auto} .mttnld-wrap a{color:var(--ter); text-underline-offset:.16em} .mttnld-wrap br{display:none} .mttnld-wrap p:empty{display:none}

/* Jannah list reset */ .mttnld-wrap ul,.mttnld-wrap ol,.mttnld-wrap li{list-style:none!important; margin:0; padding:0} .mttnld-wrap li::marker{content:""!important}

/* Section titles, treatment A: tabular number + thin gold rule */ .mttnld-h{ position:relative; margin:2.6em 0 .8em; text-align:start; font-size:clamp(20px,2.7vw,27px); line-height:1.28; font-weight:700; color:var(--nav); letter-spacing:-.01em; display:grid; grid-template-columns:1fr auto; align-items:end; gap:.4em 1em; counter-increment:mttnldsec; padding-block-end:.45em; border-block-end:1px solid var(--line); } .mttnld-h .mttnld-t{grid-column:1; min-width:0} .mttnld-h .mttnld-t::before{ content:counter(mttnldsec,decimal-leading-zero); display:block; font-size:.48em; font-weight:600; color:var(--gold); font-variant-numeric:tabular-nums; letter-spacing:.14em; margin-block-end:.25em; } .mttnld-up{ grid-column:2; align-self:end; justify-self:end; font-size:clamp(10px,1.1vw,12px); font-weight:500; letter-spacing:.02em; color:var(--ink2)!important; text-decoration:none; white-space:nowrap; padding:.25em .2em; transition:color .2s; } .mttnld-up:hover{color:var(--ter)!important} @media (max-width:560px){ .mttnld-h{grid-template-columns:1fr; gap:.5em} .mttnld-up{grid-column:1; justify-self:start; order:-1; padding:0} } .mttnld-h3{ margin:1.7em 0 .5em; font-size:clamp(17px,2vw,20px); font-weight:600; color:var(--nav); text-align:start; line-height:1.35; } .mttnld-h3::before{ content:""; display:inline-block; width:.7em; height:2px; vertical-align:middle; background:var(--gold); margin-inline-end:.5em; border-radius:2px; }

/* Short answer: horizontal sand band */ .mttnld-quick{background:var(--sand); border-block:1px solid var(--line); padding:clamp(14px,2.6vw,22px) clamp(14px,3vw,24px); margin:1.6em 0} .mttnld-quick b{display:block; color:var(--nav); font-size:clamp(11px,1.2vw,12px); text-transform:uppercase; letter-spacing:.16em; margin-block-end:.5em} .mttnld-quick p:last-child{margin-block-end:0}

/* Contents: bordered column with tabular numbers */ .mttnld-toc{border-inline-start:2px solid var(--gold); padding:.2em 0 .2em clamp(14px,2.6vw,22px); margin:1.8em 0} .mttnld-toc b{display:block; margin-block-end:.6em; font-size:clamp(15px,1.7vw,17px); color:var(--nav)} .mttnld-toc ul{counter-reset:mttnldc; columns:2 18em; column-gap:2em} .mttnld-toc li{counter-increment:mttnldc; padding-block:.28em; break-inside:avoid} .mttnld-toc li::before{content:counter(mttnldc,decimal-leading-zero) "."; color:var(--gold); font-weight:700; margin-inline-end:.55em; font-variant-numeric:tabular-nums} .mttnld-toc a{color:var(--ink); text-decoration:none} .mttnld-toc a:hover{color:var(--ter); text-decoration:underline}

/* Images */ .mttnld-fig{margin:1.6em 0} .mttnld-fig img{width:100%; height:auto; display:block; border-radius:var(--r); border:1px solid var(--line); cursor:zoom-in} .mttnld-fig-tall{max-width:min(100%,26em); margin-inline:auto} .mttnld-fig-wide img{aspect-ratio:21/9; object-fit:cover} .mttnld-fig-plain img{border:0; border-radius:0} .mttnld-fig figcaption{margin-block-start:.6em; font-size:clamp(12px,1.3vw,14px); color:var(--ink2); text-align:center}

/* Callouts */ .mttnld-note{border-inline-start:3px solid var(--gold); background:var(--sand); border-radius:0 var(--r) var(--r) 0; padding:clamp(14px,2.5vw,20px); margin:1.6em 0} .mttnld-warn{border-inline-start:3px solid var(--ter); background:var(--warm); border-radius:0 var(--r) var(--r) 0; padding:clamp(14px,2.5vw,20px); margin:1.6em 0} .mttnld-note p:last-child,.mttnld-warn p:last-child{margin-block-end:0}

/* Table model 1: stacks into cards under 640px */ .mttnld-t1{width:100%; border-collapse:collapse; margin:1.6em 0; font-size:clamp(13px,1.5vw,15px)} .mttnld-t1 caption{caption-side:top; text-align:start; font-size:clamp(12px,1.3vw,13px); color:var(--ink2); padding-block-end:.5em} .mttnld-t1 th,.mttnld-t1 td{padding:.75em .9em; text-align:start; border-block-end:1px solid var(--line); vertical-align:top} .mttnld-t1 thead th{color:var(--nav); font-weight:600; border-block-end:2px solid var(--gold)} .mttnld-t1 tbody th{color:var(--nav); font-weight:600} .mttnld-t1 tbody tr:last-child td,.mttnld-t1 tbody tr:last-child th{border-block-end:0} @media (max-width:640px){ .mttnld-t1 thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap} .mttnld-t1,.mttnld-t1 tbody,.mttnld-t1 tr,.mttnld-t1 td,.mttnld-t1 tbody th,.mttnld-t1 caption{display:block; width:100%} .mttnld-t1 tr{border:1px solid var(--line); border-radius:var(--r); padding:.35em .8em; margin-block-end:.8em} .mttnld-t1 tbody th{border-block-end:1px solid var(--line); padding:.6em 0} .mttnld-t1 td{border-block-end:1px dashed var(--line); padding:.6em 0; display:flex; gap:1em; align-items:baseline} .mttnld-t1 tr td:last-child{border-block-end:0} .mttnld-t1 td::before{content:attr(data-l); flex:0 0 42%; font-weight:600; color:var(--ink2); font-size:.92em; line-height:1.4} }

/* Editorial list */ .mttnld-list li{position:relative; padding-inline-start:1.3em; margin-block-end:.55em} .mttnld-list li::before{content:""; position:absolute; inset-inline-start:0; inset-block-start:.78em; width:.5em; height:1px; background:var(--gold)}

/* Numbers block (emergency contacts) */ .mttnld-pairs{display:grid; grid-template-columns:auto 1fr; gap:.4em 1.4em; margin:1.2em 0 1.5em; padding-block:.8em; border-block:1px solid var(--line)} .mttnld-pairs dt{color:var(--ink2); font-size:clamp(13px,1.4vw,15px)} .mttnld-pairs dd{margin:0; color:var(--nav); font-weight:600; font-size:clamp(13px,1.4vw,15px); font-variant-numeric:tabular-nums} @media (max-width:420px){.mttnld-pairs{grid-template-columns:1fr; gap:.1em}.mttnld-pairs dd{margin-block-end:.5em}}

/* Checklist */ .mttnld-check{counter-reset:mttnldk; margin:1.2em 0 1.6em} .mttnld-check li{counter-increment:mttnldk; position:relative; padding:.6em 0 .6em 2.4em; border-block-end:1px dashed var(--line)} .mttnld-check li:last-child{border-block-end:0} .mttnld-check li::before{content:counter(mttnldk); position:absolute; inset-inline-start:0; inset-block-start:.55em; width:1.6em; height:1.6em; border:1px solid var(--gold); border-radius:999px; color:var(--ter); font-size:.82em; font-weight:700; display:flex; align-items:center; justify-content:center; font-variant-numeric:tabular-nums}

/* Tour card: horizontal band, no thumbnail */ .mttnld-tour{border-block:1px solid var(--line); padding:clamp(16px,3vw,24px) 0; margin:2em 0} .mttnld-tag{display:inline-block; font-size:clamp(11px,1.2vw,12px); font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ter); margin-block-end:.5em} .mttnld-tour h3{margin:0 0 .6em; font-size:clamp(17px,2vw,20px); color:var(--nav); font-weight:700} .mttnld-cta{display:inline-block; margin-block-start:.7em; padding:.7em 1.5em; background:var(--nav); color:#fff!important; text-decoration:none; border-radius:var(--r); font-weight:600; font-size:clamp(14px,1.5vw,16px); transition:background .2s} .mttnld-cta:hover{background:var(--amb); color:var(--nav)!important}

/* External links and sources */ .mttnld-ext{color:var(--nav)!important; text-decoration:underline; text-decoration-thickness:1px} .mttnld-ext::after{content:"\2197"; font-size:.78em; margin-inline-start:.15em; vertical-align:super; opacity:.7} .mttnld-meta{font-size:clamp(11px,1.2vw,13px); color:var(--ink2); margin:1.6em 0 .8em; font-style:italic} .mttnld-about{font-size:clamp(13px,1.4vw,15px); color:var(--ink2)} .mttnld-src{border-block-start:1px solid var(--line); margin-block-start:1.4em; padding-block-start:1em; font-size:clamp(12px,1.3vw,14px); color:var(--ink2)} .mttnld-src b{display:block; margin-block-end:.45em; color:var(--nav)} .mttnld-src li{padding-block:.22em} .mttnld-src p{margin-block-start:.8em}

/* Lightbox */ .mttnld-lb{position:fixed; inset:0; z-index:99999; display:none; align-items:center; justify-content:center; background:rgba(20,46,67,.94); padding:4vw} .mttnld-lb.on{display:flex} .mttnld-lb img{max-width:100%; max-height:88vh; border-radius:var(--r)} .mttnld-lbn{position:absolute; inset-block-start:50%; transform:translateY(-50%); background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.35); color:#fff; border-radius:999px; width:2.4em; height:2.4em; font-size:clamp(16px,2vw,20px); cursor:pointer; line-height:1} .mttnld-lbp{inset-inline-start:2vw} .mttnld-lbx{inset-inline-end:2vw} .mttnld-lbc{position:absolute; inset-block-start:2vw; inset-inline-end:2vw; background:none; border:0; color:#fff; font-size:clamp(22px,3vw,30px); cursor:pointer; line-height:1}

@media (prefers-reduced-motion:reduce){.mttnld-wrap *{transition:none!important; animation:none!important; scroll-behavior:auto!important}}

@media print{ .mttnld-wrap{font-size:11pt; line-height:1.5; color:#000} .mttnld-wrap p{text-align:left} .mttnld-up,.mttnld-lb,.mttnld-cta,.mttnld-toc{display:none!important} .mttnld-h,.mttnld-h3,.mttnld-t1 thead th,.mttnld-t1 tbody th,.mttnld-pairs dd,.mttnld-tour h3{color:#000!important} .mttnld-h .mttnld-t::before,.mttnld-quick b,.mttnld-tag{color:#444!important} .mttnld-quick,.mttnld-note,.mttnld-warn,.mttnld-tour,.mttnld-pairs{background:none!important; border-color:#999!important} .mttnld-wrap a{color:#000!important; text-decoration:none} .mttnld-ext::after{content:" (" attr(href) ")"; font-size:9pt; vertical-align:baseline; opacity:1} .mttnld-fig img{filter:grayscale(100%)} .mttnld-fig,.mttnld-t1,.mttnld-tour,.mttnld-note,.mttnld-warn,.mttnld-quick,.mttnld-pairs,.mttnld-check li{page-break-inside:avoid} .mttnld-h{page-break-after:avoid} }

Travelling to Morocco from the Netherlands feels like a European holiday right up to the moment a few practical details remind you otherwise. Once the plane leaves EU airspace, your Dutch ID card, your debit card, your phone bundle and your health cover all start behaving differently, and none of them warn you in advance. This guide covers what to settle before you leave Dutch soil, what changes on arrival, and which official Dutch sources to treat as the final word.

Dutch passport, debit card and printed booking papers laid out before a trip to Morocco
Morocco sits outside the EU: the passport, not the ID card, is what gets you in.
Short answer

With a valid Dutch passport you can visit Morocco for up to 90 days without a visa; a Dutch ID card is not accepted for entry. Before you go, read the Dutch travel advice, switch your debit card to worldwide use, check that your insurance and phone plan cover a non-EU country, and book a travel clinic appointment.

Start with the Dutch travel advice
↑ Contents

The Ministry of Foreign Affairs publishes its official travel advice for Morocco on NederlandWereldwijd, in Dutch. It is the document your travel insurer will look at if something goes wrong, so read it before you book rather than the night before you leave.

At the time of writing, most of Morocco carries the yellow code: travel is possible, with specific security risks to be aware of. Two border areas are rated higher. The zone along the closed border with Algeria is orange, and the border area with Mauritania, near Western Sahara, is red. Compare the map on the advice page with your actual route, particularly if your plans include the desert in the southeast, which lies closer to the Algerian border than many visitors assume.

The colour code matters beyond safety. According to the same advice, many insurers adjust their conditions when an area turns orange or red, so a change during your trip can affect your cover. Signing up for the Ministry's Informatieservice means you receive a message when the advice for Morocco changes or a crisis develops.

Your passport, not your address, sets the entry rules
↑ Contents

A trip that starts at Schiphol or Eindhoven does not mean everyone on board follows the same rules. What Morocco looks at is the passport in your hand.

Dutch passport holders

Under the current Dutch advice, you need no visa for a stay of 90 days or less, and your passport must be valid for the whole of your stay. The ID card that gets you around Europe is not enough here. Staff at the Dutch embassy in Rabat have also warned that an almost expired Dutch passport may still get you into Morocco and then cause problems on the way back, so renew in good time rather than cutting it close.

Living in the Netherlands on another passport

A Dutch residence permit does not change Morocco's entry requirements. Whether you need a visa, and which kind, depends on your nationality, so check with the Moroccan embassy or a Moroccan consulate in the Netherlands before you pay for non-refundable flights.

Dutch and Moroccan nationality

If you hold both nationalities, Morocco treats you only as a Moroccan citizen. The Dutch embassy is not automatically informed if you run into difficulties, so you would have to contact it yourself. Travel on a valid Dutch passport as well, because returning to the Netherlands on an expired one is where the trouble usually starts.

Children

Every child needs their own valid passport. If one parent travels alone with a child under 18, the Royal Netherlands Marechaussee asks for a consent form signed with the other parent who has parental responsibility.

What stops working once you leave the EU
↑ Contents

The routine that works for Spain or Greece is exactly what trips people up here. Each difference is small, and each one costs time or money if you only discover it after landing.

A holiday inside the EU compared with a trip to Morocco
Item Inside the EU In Morocco
Travel document Dutch ID card usually enough Valid passport required
Health card EHIC gives access to care EHIC not valid; policy decides
Mobile roaming Roam like at home Provider's own tariffs apply
Debit card Default Europe setting works May need worldwide setting
Plugs Mostly European two-pin Types C and E, 220 V

Each of these is covered below. If you prefer a broader list to tick off week by week, this Dutch-language pre-departure checklist for trips abroad, published by a Dutch travel organiser, compares travel inside and outside the EU and walks through documents, insurance, money and luggage in general terms. For anything specific to Morocco, the official pages linked in this guide take precedence.

Insurance, vaccinations and medicines
↑ Contents

Health and travel insurance

Your Dutch basic health insurance still applies abroad, but what it reimburses depends on the country you visit, and the European Health Insurance Card does not help in Morocco. The government advises checking your policy and taking out extra health or travel insurance where needed. The Dutch travel advice adds a point that is specific to Morocco: medical care outside the large cities is limited. In practice, that makes cover for medical transport and repatriation more important than the size of a clinic bill.

Planning to trek in the High Atlas? Read your policy's wording on mountain walking and altitude before you go, not after a twisted ankle above the tree line.

Vaccinations

The Dutch travel-health centre LCR advises DTP and hepatitis A for everyone travelling to Morocco. Measles circulates more than in the Netherlands, and the LCR recommends vaccination for anyone born after 1965 who has neither had measles nor been vaccinated, and for children from six months who have not yet had their BMR shot. Rabies is a risk, so avoid touching dogs, cats and other mammals, and ask a travel clinic whether the vaccine is worth it for your trip. A GGD or private travel clinic appointment, made as soon as your trip is booked, settles all of this for your own situation.

Medicines

Pack enough for the whole trip, in the original packaging. If you take anything covered by the Opium Act, such as certain strong painkillers, you need a medicine declaration requested through the CAK. There are two versions, a Schengen declaration and an English-language one, and the CAK's online tool tells you which applies to your medicine, destination and trip length. Allow time for this; it is not something to sort out at the airport.

Dirhams, cards and cash
↑ Contents

The Moroccan dirham is a closed currency. Under the rules of the Office des Changes, travellers may carry no more than 2,000 dirhams in banknotes into or out of the country, so plan to get dirhams after you land instead of ordering a stack from a Dutch bank. Change money at banks or official exchange offices, never with someone offering a better rate on the street.

Moroccan dirham banknotes and coins beside an exchange receipt on a counter

Cards are accepted more and more in the larger cities, but a petit taxi, a small café or a stall in the souk will still expect cash. That is where Dutch debit cards cause the most frustration. Rabobank, for example, sets its debit cards to Europe by default, and ABN AMRO asks customers to change their card's payment profile to "Wereld" before it works worldwide. Whichever bank you use, check the region setting and your daily limits in the app before departure. Which machines to use, and why to refuse the conversion into euros the screen offers, is covered in our guide to using ATMs in Morocco.

Carrying €10,000 or more in cash, or the equivalent in other currencies, means filing a declaration when you leave or re-enter the EU. In the other direction, if you bring a large amount of foreign currency into Morocco and may want to take part of it back out, declare it to Moroccan customs on arrival: the Office des Changes ties re-export to that entry declaration.

Phone, data and emergency numbers
↑ Contents

Roam like at home stops at the edge of the EU, the EEA, Moldova and Ukraine. Morocco is outside it, so your provider sets its own price, and data in particular can get expensive. Some Dutch bundles include Morocco and some do not, which is a five-minute check in your provider's app. If yours does not, a local SIM or an eSIM is usually the simpler route, and we compare the options in our article on the best SIM cards for visitors.

Carry your passport or a copy of it at all times. Identity checks are common, especially on the roads in and out of towns. Keep a digital copy stored separately from the original, and save these numbers in your phone before you fly:

Police
19, or 190 from a mobile
Ambulance and fire
15, or 150 from a mobile
NederlandWereldwijd, 24/7
+31 247 247 247
NederlandWereldwijd WhatsApp
+31 85 773 7400

Laws that differ from home
↑ Contents

A few Moroccan rules catch Dutch visitors precisely because the Dutch norm is so different. The official advice is explicit on each of them.

  • Drugs. Using, possessing or selling any drug is illegal, soft drugs included, and penalties are heavier than in the Netherlands.
  • Alcohol. Drinking in the street is prohibited. Hotels, bars and licensed restaurants serve alcohol legally.
  • Photography. Photographing government buildings, military sites, police or soldiers is prohibited.
  • Drones. Bringing one in requires an import permit. Without it, expect confiscation and possibly a heavy fine or prison sentence.
  • Relationships. Sexual relations outside marriage and same-sex sexual acts are criminal offences under Moroccan law, the latter carrying up to three years in prison. Public displays of affection draw attention; the Dutch advice notes that a marriage certificate or proof of partnership can help when a couple shares a room.

Narrow lane in the Marrakech medina with shopfronts and passers-by in the morning
In residential lanes, ask before photographing people, not after.

Beyond the law, ordinary courtesy goes a long way. Dress that covers shoulders and knees draws less attention, especially away from tourist areas, and during Ramadan it is considerate not to eat, drink or smoke in public during daylight. None of this is complicated, and our piece on everyday Moroccan etiquette explains the gestures and habits that matter most in practice.

Getting around and judging distances
↑ Contents

Morocco looks compact next to Spain on a map. On the road it does not feel that way. Between Marrakech and the desert lies the High Atlas, crossed by winding mountain passes, and journeys take considerably longer than the distance on the map suggests. Check realistic driving times for each leg before you fix your overnight stops.

Winding road over the Tizi n'Tichka pass in the High Atlas mountains
The main road from Marrakech towards Ouarzazate and the desert crosses the High Atlas.

Trains link several of the large cities and work well for city to city travel. For mountain villages, kasbahs and the desert, most visitors use either a hire car or a private driver. If you drive down from the Netherlands, the Dutch advice notes that your car is registered when you enter Morocco and that you may only leave the country with the vehicle you arrived in. If you would rather not drive at all, our advice on hiring a reliable driver covers what to ask and which warning signs to watch for.

Arrival day deserves a plan too. Landing in the evening and then hunting for a riad in the medina with luggage is a poor start; arrange how you get from the airport to your accommodation before you fly.

Building a realistic itinerary
↑ Contents

The most common planning mistake is fitting Marrakech, Fes, Chefchaouen and the Sahara into one week. It can be done, but you spend the week in a vehicle. Two or three bases, each with time to slow down, give a much better trip than six one-night stops. Our breakdown of how many days Morocco really needs sets out what fits into five, seven and ten days.

The seasons need the same regional thinking. There is no single best month for the whole country: the High Atlas can be cold while Marrakech is mild, the desert is hot by day in summer and cold at night in winter, and conditions change quickly with altitude. The LCR notes that altitude sickness becomes more likely above 2,500 metres, which is relevant for anyone trekking towards the higher summits. The Dutch advice also mentions that heavy rain can cause flooding, so check road and valley conditions before a mountain trip after bad weather.

The desert is where this matters most: from Marrakech, it is a multi-day journey rather than a day out.

Private tour from Marrakech

3-Day Private Desert Tour: Marrakech to Merzouga

  • Crosses the Tizi n'Tichka pass and stops at Ait Ben Haddou and the Todra Gorge before the Erg Chebbi dunes.
  • Private, so the pace and the photo stops follow your group rather than a bus timetable.
  • Three days with long driving stretches: not the right choice for a short city break.

See the route and prices

Staying safe without overthinking it
↑ Contents

The Dutch advice warns of pickpocketing and theft throughout the country, mainly in busy and touristic places, and embassy staff single out Marrakech and Tangier. Keep your phone and wallet out of back pockets in crowds, and avoid walking alone through quiet areas late at night.

The advice also mentions a risk of terrorist attacks, with authorities able to increase security at short notice, and demonstrations that occasionally take place in large cities. Stay alert in crowded places and keep away from gatherings. Earthquakes do occur in Morocco; if one happens during your stay, follow the updates on the travel advice page and through the Informatieservice.

Day to day, what goes wrong for visitors is usually much smaller: an unofficial guide who attaches himself to you, a taxi without a running meter, a street that is supposedly closed. Our list of common tourist scams describes the usual ones and how to step around them politely.

Checklist before you fly
↑ Contents

  1. Read the current Dutch travel advice for Morocco and compare it with your route.
  2. Check that every traveller has a valid passport; non-Dutch passport holders check their own visa requirement.
  3. Get the Marechaussee consent form signed if one parent travels alone with a child.
  4. Confirm your health and travel insurance cover Morocco, including medical transport, repatriation and any trekking.
  5. Book a travel clinic appointment for DTP, hepatitis A and measles advice.
  6. Request a CAK declaration if you carry Opium Act medicines.
  7. Set your debit card to worldwide use and check your limits.
  8. Check roaming costs with your provider or plan for a local SIM or eSIM.
  9. Save emergency numbers and store copies of your documents separately.
  10. Leave the drone at home unless you hold a Moroccan import permit.
  11. Arrange your airport transfer for arrival day.

Plan around your time, not the map
↑ Contents

Most of what makes a first trip to Morocco smooth is decided in the Netherlands: the right passport, a card that works, insurance that fits the trip and an itinerary that leaves room to breathe. Check the official pages again in the week before you leave, since rules and advice change. If you would like help shaping the route itself, you can share your dates and interests through our tailor-made trip planner and receive a proposal with no obligation.

This guide was prepared by PROMYTHIC TOURS SARL AU, a travel agency based in Marrakech that organises private trips across Morocco. Official rules quoted here were checked against the sources listed below.

Last checked: October 2026.

(function(){ var w=document.querySelector('.mttnld-wrap'); if(!w) return; var lb=w.querySelector('#mttnld-lb'), lbi=lb.querySelector('img'); var imgs=[].slice.call(w.querySelectorAll('.mttnld-fig img')), i=0; function show(n){ if(!imgs.length) return; i=(n+imgs.length)%imgs.length; lbi.src=imgs[i].currentSrc||imgs[i].src; lbi.alt=imgs[i].alt||''; } function open(n){ show(n); lb.classList.add('on'); lb.setAttribute('aria-hidden','false'); document.body.style.overflow='hidden'; } function close(){ lb.classList.remove('on'); lb.setAttribute('aria-hidden','true'); lbi.src=''; document.body.style.overflow=''; } imgs.forEach(function(im,n){ im.addEventListener('click',function(){ open(n); }); }); lb.addEventListener('click',function(e){ if(e.target===lb) close(); }); lb.querySelector('.mttnld-lbc').addEventListener('click',close); lb.querySelector('.mttnld-lbp').addEventListener('click',function(e){ e.stopPropagation(); show(i-1); }); lb.querySelector('.mttnld-lbx').addEventListener('click',function(e){ e.stopPropagation(); show(i+1); }); document.addEventListener('keydown',function(e){ if(!lb.classList.contains('on')) return; if(e.key==='Escape') close(); if(e.key==='ArrowLeft') show(i-1); if(e.key==='ArrowRight') show(i+1); }); var x0=null,y0=null; lb.addEventListener('touchstart',function(e){ var t=e.changedTouches[0]; x0=t.clientX; y0=t.clientY; },{passive:true}); lb.addEventListener('touchend',function(e){ if(x0===null) return; var t=e.changedTouches[0], dx=t.clientX-x0, dy=t.clientY-y0; if(Math.abs(dx)>45&&Math.abs(dx)>Math.abs(dy)){ show(dx80&&Math.abs(dy)>Math.abs(dx)){ close(); } x0=null; y0=null; },{passive:true}); w.querySelectorAll('a[href^="#mttnld-"]').forEach(function(a){ a.addEventListener('click',function(e){ var t=w.querySelector(a.getAttribute('href')); if(t){ e.preventDefault(); t.scrollIntoView({behavior:'smooth',block:'start'}); } }); }); })();

Not sure where to start?

Tell us your dates and where you are staying

You get back a route, a price and what to expect. Nothing is paid until it is confirmed.