IATA Codes of Morocco’s Airports: the Complete List

Boeing 787 de Royal Air Maroc stationné à une passerelle de l'aéroport Mohammed V

Looking for the IATA codes of Morocco’s airports? They are all below, in a single table, with their matching ICAO codes and the city each one serves. Casablanca is CMN, Marrakech is RAK, Agadir is AGA, Tangier is TNG and Fez is FEZ. The full list, including the smaller airports where scheduled flights are rare, is a few lines further down.

This page does two things a plain code list does not. First, it tells you for each airport whether you can fly there direct from the UK or Ireland, because that is usually the real question behind looking up a code. Second, it sets out the codes that get confused most often at the booking stage: RAK and RBA are four hundred kilometres apart, and OUD and OZZ are further still. A wrong three-letter code is one of the most expensive typing mistakes you can make on a booking site.

In short

  • The big five: CMN Casablanca, RAK Marrakech, AGA Agadir, TNG Tangier, FEZ Fez.
  • IATA code: three letters, printed on your ticket, your bag tag and the departure boards.
  • ICAO code: four letters, always starting with GM in Morocco, used in aviation itself and on flight-tracking sites.
  • Watch out when booking: RAK is Marrakech and RBA is Rabat; OUD is Oujda and OZZ is Ouarzazate.
  • Direct from the UK and Ireland: six airports; the rest need a connection, usually in Casablanca.
  • Always read the city name next to the code before you pay, not just the letters.

Every IATA and ICAO code for Morocco’s airports

AirportIATAICAOCity or region
Mohammed VCMNGMMNCasablanca
Marrakech-MenaraRAKGMMXMarrakech
Agadir Al MassiraAGAGMADAgadir
Tangier Ibn BattoutaTNGGMTTTangier
Fez-SaissFEZGMFFFez
Rabat-SaleRBAGMMERabat and Sale
Nador Al ArouiNDRGMMWNador
Oujda-AngadsOUDGMFOOujda
Al Hoceima Cherif Al IdrissiAHUGMTAAl Hoceima
Tetouan Sania RamelTTUGMTNTetouan
Essaouira-MogadorESUGMMIEssaouira
OuarzazateOZZGMMZOuarzazate
Errachidia Moulay Ali CherifERHGMFKErrachidia
Beni MellalBEMGMMDBeni Mellal
ZagoraOZGGMAZZagora
Laayoune Hassan IEUNGMMLLaayoune, in the south
DakhlaVILGMMHDakhla, in the south
The codes are fixed and do not change, but the scheduled service at each airport does. Check your route with your airline.

Two codes are often circulated wrongly. Zagora’s IATA code is OZG and its ICAO code is GMAZ. You will sometimes see ZGR or GMMZ given instead, but GMMZ belongs to Ouarzazate. If you find the same ICAO code twice on an airport list, that list is wrong: an ICAO code is globally unique.

The difference between an IATA code and an ICAO code

Both identify the same airport, but they come from different organisations and are used for different things. That is why your boarding pass says one thing and the flight-tracking site your family is watching says another.

The IATA code is three letters and comes from the airlines’ own trade association. It is the commercial code: your ticket, your bag tag, the departure and arrival boards, the booking site. When you read “LGW to RAK”, those are IATA codes.

The ICAO code is four letters and comes from the International Civil Aviation Organization, a United Nations body. It is used operationally: flight plans, air traffic control, weather reports and technical documentation. ICAO codes are built geographically, and there is a useful logic in that, covered below.

What this means for you as a traveller: for booking and checking in, always use the three-letter IATA code. You need the ICAO code only if you are following a flight on a site that works in four letters, or looking up an airport weather report.

Why do all Moroccan ICAO codes start with GM?

ICAO codes are not arbitrary: the first letter stands for a world region and the second for a country or group of countries. G covers West and North-West Africa, and within it M stands for Morocco. That is why every Moroccan airport begins with GM, from GMMN at Casablanca to GMAZ at Zagora.

The third and fourth letters identify the airport itself, sometimes with a regional logic: the northern airports around Tangier and Tetouan carry GMT, the eastern ones around Oujda and Errachidia carry GMF. The pattern is not fully consistent, so use it to recognise a code rather than to guess one. For comparison, the United Kingdom uses EG, with EGLL for London Heathrow, and Ireland uses EI, with EIDW for Dublin. Same logic, different region.

Which Moroccan airports can you reach direct from the UK and Ireland?

This is what a code list usually leaves out, and what actually decides your trip. Six Moroccan airports have direct service from the UK or Ireland; the others need a connection, almost always in Casablanca.

CodeAirportDirect from the UK or Ireland?From which airports
RAKMarrakechYes, by far the widest choiceLondon Stansted, Gatwick, Luton and Heathrow, Manchester, Birmingham, Bristol, Liverpool, Edinburgh, Glasgow, Newcastle, Dublin
AGAAgadirYes, strong winter serviceLondon Stansted and Gatwick, Manchester, Birmingham, Bristol, Edinburgh, Glasgow, Dublin
TNGTangierYesLondon Stansted and Gatwick
RBARabatYesLondon Gatwick and Luton, Manchester, Dublin
FEZFezYes, limitedLondon Stansted
ESUEssaouiraYes, seasonal and limitedLondon Stansted
CMNCasablancaMainly a connecting airportVia other European hubs; direct long-haul to Montreal and the United States
NDR, OUD, AHU, TTU, OZZ, ERH, BEM, EUN, VIL, OZGThe othersNoConnect, generally in Casablanca
Our own route survey, October 2026. Service changes by season and by year; check current routes with your airline before booking.

A detail worth knowing if you are travelling from North America: Marrakech has direct service to Montreal, Atlanta and Newark, and Casablanca to Montreal. Everything else in Morocco is a connection. A per-airport overview, with live departure and arrival times, sits in our guide to the airports in Morocco.

The codes people mix up when booking

A booking site will accept any valid code without asking whether you really meant it. These pairs cause the most trouble in practice, and it is almost never ignorance that causes it; it is typing too fast.

  • RAK and RBA. Marrakech and Rabat, roughly four hundred kilometres apart. Both start with R, and this is the pair confused most often.
  • OUD and OZZ. Oujda sits in the north-east near the border, Ouarzazate in the south beyond the Atlas. More than seven hundred kilometres between them.
  • OZZ and OZG. Ouarzazate and Zagora, in the same region but not the same town, and Zagora barely has scheduled flights.
  • TNG and TTU. Tangier and Tetouan are an hour’s drive apart; only Tangier has a proper schedule.
  • AGA and AHU. Agadir in the south-west and Al Hoceima on the Mediterranean, at opposite corners of the country.
  • VIL for Dakhla. The code looks nothing like the place name, so search by city rather than by letters.

Where the code appears on your travel documents

Knowing where to look saves a surprising amount of worry at the airport. The IATA code turns up in four places, and they should all agree.

  • On your ticket or booking confirmation, next to the city name. This is the one to check before you pay.
  • On your bag tag, as the three letters of your final destination. If you have a connection, check that the tag shows the end point and not the stopover.
  • On the departure boards, where destinations are shown by code as often as by name.
  • In your airline’s app, in the flight reference, usually in the form of the two codes joined by a dash.

If the code on your bag tag does not match the code on your ticket, say so at the desk before you leave the counter. Once your bag is on the belt, the matter becomes considerably more complicated.

Airports with and without scheduled flights

Having a code does not mean having flights. Several airports on the list above hold a valid IATA code while carrying very little or no scheduled traffic, and that is the most common source of confusion when a search returns nothing.

  • Busy all year: CMN, RAK, AGA, TNG, FEZ, NDR, OUD, RBA.
  • Limited or seasonal: AHU, ESU, OZZ, ERH, TTU, BEM, EUN, VIL.
  • Virtually no scheduled service: OZG at Zagora, which is why it so often looks like a mistake on booking sites.

If your destination has no flights, search the nearest large airport instead and cover the last stretch by road. Essaouira is often quicker through Marrakech Menara, and the Rif towns through Tangier Ibn Battouta. For a long connection, it is worth knowing what is waiting for you at Casablanca Mohammed V, which is where most Moroccan connections happen.

FAQ about the airport codes

What is the IATA code for Marrakech?

RAK, for Marrakech-Menara airport, with GMMX as its ICAO code. Be careful not to type RBA, which is Rabat, about four hundred kilometres away.

What is the code for Casablanca?

CMN, for Mohammed V airport, with GMMN as its ICAO code. It is the country’s largest airport and its main connecting point; if you are flying to a smaller Moroccan city, this is usually where you change.

How many airports does Morocco have?

The country has a network of more than fifteen airports with their own IATA code, five of which handle the great majority of international traffic. The rest serve regional, domestic or seasonal routes, and at a few of them service is very thin.

Why do the ICAO codes start with GM?

Because ICAO codes are built geographically: the first letter is a world region and the second is the country. G covers North-West and West Africa, and M within it stands for Morocco. The United Kingdom uses EG in the same way, and Ireland EI.

Which code do I use to book?

Always the three-letter IATA code. It is on your ticket, your bag tag and the departure boards. The four-letter ICAO code is only needed if you are tracking a flight on a site that uses four letters, or checking an airport weather report.

What is the code for Zagora?

OZG as the IATA code and GMAZ as the ICAO code. You will sometimes see ZGR or GMMZ given instead, but that is wrong: GMMZ belongs to Ouarzazate, and an ICAO code is globally unique. Zagora also has almost no scheduled flights.

How do I avoid booking the wrong airport?

Read the city name next to the code before you pay, and read it again in your confirmation email. Pay particular attention to RAK and RBA, OUD and OZZ, TNG and TTU, and AGA and AHU. With most airlines, changing an airport after payment costs more than the ticket did.

My destination has no flights. What now?

That is not an error in your search: at several smaller Moroccan airports, service is limited or seasonal. Search the nearest large airport and cover the last stretch by road. Essaouira is often faster through Marrakech, and Chefchaouen through Tangier.

Sources

Scroll to Top