International Civil Aviation Organization airport code
The ICAO (pron.: //, "I-K-O") airport code or location indicator is a four-character alphanumeric code designating each airport around the world. These codes are defined by the International Civil Aviation Organization, and published in ICAO Document 7910: Location Indicators.
ICAO codes are used by air traffic control and airline operations such as flight planning. They differ 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. Most travelers usually see the IATA code on baggage tags and tickets and the ICAO code is used among other things by pilots, air traffic control and 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.
The International Civil Aviation Organization was formed in 1947 under the auspices of the United Nations, and it established Flight Information Regions (FIRs) 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 Cxxx. 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 could be classified in a more planned top-down manner, as they didn't have as much established aviation legacy. Thus Uxxx referred to the Soviet Union with the second letter denoting the specific region within it, and so forth. 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 drilled down: EGxx was the United Kingdom (G for Great Britain), EDxx was both West Germany and East Germany (D for Deutschland), LExx was Spain (E for España), LAxx was Albania, and so on. France was designated LFxx, as the counterpart EFxx was the unambiguously northern Finland. (originally OFxx, as the more rigid geographical structure evolved over time; in the beginning, countries usually had "blocks" of codes; for example, Finland still has the country identifier OH- in its aircraft registrations)
Unlike the IATA codes, the ICAO codes generally have a regional structure, are not duplicated, 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, ICAO codes generally provide geographical context unlike IATA codes. For example, if one knows that the ICAO code for Heathrow is EGLL, then one can deduce that the airport EGNH is somewhere in the UK (it is Blackpool International Airport). 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 (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 made for political or administrative reasons. For example, the RAF Mount Pleasant air 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 (Southern Europe), 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 (or its Morse/Baudot Cyrillic equivalent Ь) 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 (see Q code).
In the contiguous United States, Canada, and some airports in Mexico, most, but not all, airports have been assigned three-letter IATA codes which are the same as their ICAO code without the leading K, W, or C. e.g., YYC and CYYC (Calgary International Airport, Calgary, Alberta), IAD and KIAD (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, Hilo International Airport (PHTO vs ITO) and Juneau International Airport (PAJN vs JNU).
ZZZZ is a special code which is used when no ICAO code exists for the airport and is normally used in flight plans.
A list of airports, sorted by ICAO code, is available below.
See also 
- Airspace class
- Class A airport
- IATA airport code
- ICAO airline designators - A list of codes
- List of airports by IATA code
- List of airports by ICAO code
- ICAO On-line Publications Purchasing (official site)
- International Civil Aviation Organization (official site)
- ICAO airport codes worldwide, by country (not working on 30.04.2013)
- Airport IATA/ICAO Designator / Code Database Search (from Aviation Codes Central Web Site - Regular Updates)
- "Airport ABCs: An Explanation of Airport Identifier Codes". Air Line Pilot. Air Line Pilots Association. December, 1994.