The ICAOairport code or location indicator is a four-letter code designating aerodromesaround the world. These codes, as defined by the International Civil Aviation Organization and published 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, whether or not they are located at airports. Flight information regions are also identified by a unique ICAO-code.
History
The International Civil Aviation Organization was formed in 1947 under the auspices of the United Nations, and it established Flight Information Regions for controlling air traffic and making airport identification simple and clear. Code selections in North America were based on existing radio station identifiers. For example, radio stations in Canada were already starting with "C", so it seemed logical to begin Canadian airport identifiers with a C. The United States had many pre-existing airports with established mnemonic codes. Their ICAO codes were formed simply by prepending a K to the existing codes, as half the radio station identifiers in the US began with K. Most ICAO codes outside the US and Canada have a stronger geographical structure. Most of the rest of the world was classified in a more planned top-down manner. Europe had too many locations for only one starting letter, so it was split into Exxx for northern Europe and Lxxx for southern Europe. The second letter was more specific: EGxx was the United Kingdom, EDxx was West Germany, ETxx was East Germany, ECxx was for Czechoslovakia, LExx was Spain, LAxx was Albania, LYxx was for the former Socialist Yugoslavia and so on. France was designated LFxx, as the counterpart EFxx was unambiguously Finland. Thus Uxxx referred to the Soviet Union with the second letter denoting the specific region within it, and so forth. Following the fall of the Soviet Union, such as those, republics Estonia, Latvia and Lithuania created ICAO codes EExx, EVxx and EYxx, respectively, Moldova, another former Soviet republic, created a LUxx ICAO code inline with neighboring Romania, while the other republics retained the Uxxx code.
ICAO codes are separate and different from IATA codes, which 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. ICAO codes are commonly seen by passengers and the general public on flight-tracking services such as FlightAware, but passengers will more often see the IATA codes, such as on their tickets and their luggage tags. 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 have ICAO codes than IATA codes, which are sometimes assigned to railway stations as well. Historically, IATA codes were also used in flight plans and for other air traffic control purposes in certain jurisdictions.
Structure
Unlike the IATA codes, the ICAO codes generally have a regional structure and are comprehensive. In general, the first letter is allocated by continent and represents a country or group of countries within that continent. The second letter generally represents a country within that region, and the remaining two are used to identify each airport. The exception to this rule is larger countries that have single-letter country codes, where the remaining three letters identify the airport. In either case, and unlike IATA codes, ICAO codes generally provide geographical context. For example, if one knows that the ICAO code for Heathrow is EGLL, then one can deduce that the airport EGGP is somewhere in the UK. On the other hand, knowing that the IATA code for Heathrow is LHR does not enable one to deduce the location of the airport LHV with any greater certainty. There are a few exceptions to the regional structure of the ICAO code made for political or administrative reasons. For example, the RAF Mount Pleasantair base in the Falkland Islands is assigned the ICAO code EGYP as though it were in the United Kingdom, but a nearby civilian airport such as Port Stanley Airport is assigned SFAL, consistent with South America. Similarly Saint Pierre and Miquelon is controlled by France, and airports there are assigned LFxx as though they were in Europe. Further, in region L, all available 2-letter prefixes have been exhausted and thus no additional countries can be added. Thus when Kosovo declared independence, there was no space in the Lxxx codes to accommodate it, so airports in Kosovo were assigned BKxx, grouping Kosovo with Greenland and Iceland. The letters I, J and X are not currently used as the first letter of any ICAO identifier. In Russia and CIS, Latin letter X is 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. Q is reserved for international radiocommunications and other non-geographical special uses. In the contiguous United States and Canada and for some airports in Mexico, most, but not all, airports have been assigned three-letter IATA codes. These are the same as their ICAO code, but without the leading K, C, or M.; e.g., YEG and CYEG both refer toEdmonton International Airport, Edmonton, Alberta; IAD and KIAD are used for Washington Dulles International Airport, Chantilly, Virginia. These codes are not to be confused with radio or television call signs, even though both countries use four-letter call signs starting with those letters. However, because Alaska, Hawaii, and United States territories have their own 2-letter ICAO prefix, the situation there is similar to other smaller countries and the ICAO code of their airports is typically different from its corresponding 3-letter FAA/IATA identifier. For example, Kona International Airport and Juneau International Airport. Notably, the largest gateway to Hawaii, Honolulu International Airport's ICAO code contains the IATA identifier - PHNL, while Anchorage International Airport's ICAO code also does the same - PANC. ZZZZ is a pseudo-code, used in flight plans for aerodromes with no ICAO code assigned. A list of airports, sorted by ICAO code, is available below.
Pseudo ICAO-codes
In small countries like Belgium or the Netherlands, almost all aerodromes have an ICAO code. For bigger 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. In the case of France, an amateur organisation, the FFPLUM, was formally named the keeper of these codes. In Antarctica many aerodromes have pseudo ICAO-codes with AT and two digits, while others have proper codes from base owner countries such as NZ for New Zealand.