Map of the world's ICAO classifications according to the first letter of its ICAO airport codeMap of countries classified with ICAO airport code prefixes and subnational regions with their respective second ICAO letterFlag of the ICAO
ICAO codes are separate and different from the three-letterIATA codes, which are generally used forairline timetables, reservations, andbaggage tags. For example, the IATA code forLondon'sHeathrow Airport is LHR and its ICAO code is EGLL.
In general IATA codes are usually derived from the name of the airport or the city it serves, while ICAO codes are distributed by region and country. Far moreaerodromes (in the broad sense) have ICAO codes than IATA codes, which are sometimes assigned torailway stations as well. The selection of ICAO codes is partly delegated to authorities in each country, while IATA codes, which have no geographic structure, must be decided centrally by IATA.
The first one or two letters of the ICAO code indicate the country or large region of a country; the remaining letters identify the airport. For example, the ICAO code forHeathrow International Airport in London, is EGLL, with EG reflecting that it is based in theUnited Kingdom. By contrast, IATA codes do not provide geographic reference. For example, LHR, representing Heathrow, does not enable one to deduce the location of the airport LHV with any greater certainty; it isWilliam T. Piper Memorial Airport inLock Haven, Pennsylvania in theUnited States.
There are a few exceptions to the regional structure of the ICAO code for political or administrative reasons:
Saint Pierre and Miquelon is controlled by France, and airports there are assigned LFxx as though they were in Europe.
Kosovo is assigned the code BKxx grouping it withGreenland andIceland rather than its geographical neighbors which have Lxxx (described below).
Jerusalem International Airport was assigned both LLJR (its Israeli persona) as well as OJJR (its Jordanian persona), but the airport itself fell into disuse.
Western Sydney Airport, due to open in 2026 has the ICAO code YSWS. In Australia, the second letter is usually linked to the airport'sFIR. However, Sydney's FIR has been non-existent since the introduction ofTAAATS.
In the contiguous United States and Canada, many airports have ICAO codes that are simply copies of their three-letterIATA codes, with the geographical prefix added on (e.g., YEG and CYEG both refer toEdmonton International Airport, while IAD and KIAD both refer toWashington Dulles International Airport). This similarity does not extend toAlaska (PAxx),Hawaii (PHxx), or U.S. territories.Kahului Airport onMaui, for instance, has an IATA code of OGG and an ICAO code of PHOG.
ICAO airport codes do not begin with I, J, X, or Q, though theJezero Crater onMars is assigned the special ICAO code JZRO, and some have used this to deduce that J must be the code for Mars, even though it has never been officially reserved by ICAO.[2] Codes beginning with I (Ixx and Ixxx) are often used fornavigational aids such as radio beacons, while theQ code is reserved for international radiocommunications and non-geographical special use.
InRussia, the Latin letter X, or itsMorse/Baudot Cyrillic equivalentЬ, are used to designate government, military, and experimental aviation airfields in internal airfield codes similar in structure and purpose to ICAO codes but not used internationally.[3] ZZZZ is a pseudo-code, used inflight plans for aerodromes with no ICAO code assigned.
ICAO codes are sometimes updated.Johannesburg Airport inJohannesburg, South Africa, for instance, was formerly known as Jan Smuts International Airport, with code FAJS. When the airport was renamed O. R. Tambo International Airport, its ICAO code was updated to FAOR.
Some airports have two ICAO codes, usually when an airport is shared by civilian and military users.Frankfurt Airport inFrankfurt, Germany, for instance, has been assigned ICAO code EDDF whileRhein-Main Air Base was assigned ICAO code EDAF until its closure.Sion Airport in Switzerland has code LSGS while its military facilities have the ICAO code LSMS.Brussels Airport inBrussels, Belgium, has the ICAO code EBBR for its civilian facilities, andMelsbroek Air Base has been assigned ICAO code EBMB, even though the two airports share runways and ground and air control facilities.
In small countries like Belgium or the Netherlands, almost all aerodromes have an ICAO code. For larger countries like the UK or Germany this is not feasible, given the limited number of letter codes. Some countries have addressed this issue by introducing a scheme of sub-ICAO aerodrome codes; France, for example, assigns pseudo ICAO codes in the styleLFddnn, wheredd indicates thedepartment whilenn is a sequential counter. The French Federation of Ultralight Motorized Gliders was formally named the keeper of these codes. Aerodrome de Torreilles in France, for instance, has code LF6651.[4] InAntarctica many aerodromes have pseudo ICAO-codes with AT and two digits, while others have proper codes from countries performing air control such as NZ forNew Zealand.