ICAO airport code

The ICAO airport code or location indicator is a four-letter code designating aerodromes around the world. These codes, as defined by the International Civil Aviation Organization and published quarterly in ICAO Document 7910: Location Indicators, are used by air traffic control and airline operations such as flight planning. ICAO codes are also used to identify other aviation facilities such as weather stations, international flight service stations or area control centers, regardless of whether they are located at airports. Flight information regions are also identified by a unique ICAO-code.
The recommendations for ICAO airport codes were adopted on 24 March 1959, and came into force on 1 October the same year.
ICAO codes are separate and different from IATA codes, the latter of which have three letters and are generally used for airline timetables, reservations, and baggage tags. For example, the IATA code for London's Heathrow Airport is LHR and its ICAO code is EGLL. IATA codes are used by flight-tracking services such as FlightAware.
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 more aerodromes (in the broad sense) have ICAO codes than IATA codes, which are sometimes assigned to railway 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; the remaining letters identify the airport. For example, the ICAO code for Heathrow International Airport in London, is EGLL, with EG reflecting that it is based in the United 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 is William T. Piper Memorial Airport in Lock Haven, Pennsylvania in the United States.
There are a few exceptions to the regional structure of the ICAO code for political or administrative reasons:
Western Sydney Airport, due to open in 2026 has the ICAO code YSWS. In Australia, the second letter is usually linked to the airport's FIR. However, Sydney's FIR has been non-existent since the introduction of TAAATS.
In the contiguous United States and Canada, many airports have ICAO codes that are simply copies of their three-letter IATA codes, with the geographical prefix added on (e.g., YEG and CYEG both refer to Edmonton International Airport, while IAD and KIAD both refer to Washington Dulles International Airport). This similarity does not extend to Alaska (PAxx), Hawaii (PHxx), or U.S. territories. Kahului Airport on Maui, for instance, has an IATA code of OGG and an ICAO code of PHOG.
ICAO airport codes do not begin with I or J or X or Q, though the Jezero Crater on Mars is assigned the special ICAO code JZRO. Codes beginning with I (Ixx and Ixxx) are often used for navigational aids such as radio beacons, while the Q code is reserved for international radiocommunications and non-geographical special use.
In Russia, Latin letter X, or its Morse/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. ZZZZ is a pseudo-code, used in flight plans for aerodromes with no ICAO code assigned.
ICAO codes are sometimes updated. Johannesburg Airport in Johannesburg, 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 in Frankfurt, Germany, for instance, has been assigned ICAO code EDDF while Rhein-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 in Brussels, Belgium, has the ICAO code EBBR for its civilian facilities, and Melsbroek 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 style LFddnn, where dd indicates the department while nn 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. In Antarctica many aerodromes have pseudo ICAO-codes with AT and two digits, while others have proper codes from countries performing air control such as NZ for New Zealand.