Flight
Flight is a Trip subtype for airline flights. It has 14 properties of its own covering everything a flight information display needs: flightNumber, departureAirport/arrivalAirport (with gate and terminal), estimatedFlightDuration, boardingPolicy, mealService, webCheckinTime, and seller (the airline or travel agent). Flight is the reservationFor target in FlightReservation.
The type hierarchy is Thing → Intangible → Trip → Flight. Google reads Flight in Gmail confirmation emails to build the flight card. On web pages, Flight markup feeds Google Flights and travel knowledge panels. The departureAirport and arrivalAirport should be Airport objects with iataCode.
Full example of schema.org/Flight json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@id": "https://nordicair.dk/flights/NA412-2026-11-13#flight",
"@type": "Flight",
"flightNumber": "NA 412",
"airline": {
"@id": "https://nordicair.dk#airline",
"@type": "Airline",
"name": "Nordic Air",
"iataCode": "NA"
},
"departureAirport": {
"@type": "Airport",
"name": "Copenhagen Airport",
"iataCode": "CPH"
},
"arrivalAirport": {
"@type": "Airport",
"name": "Lackawanna Valley Airport",
"iataCode": "LVA"
},
"departureTime": "2026-11-13T08:30:00+01:00",
"arrivalTime": "2026-11-13T12:45:00-05:00",
"departureGate": "B12",
"departureTerminal": "Terminal 2",
"arrivalTerminal": "Terminal 1",
"estimatedFlightDuration": "PT9H15M",
"boardingPolicy": "https://schema.org/ZoneBoardingPolicy",
"webCheckinTime": "2026-11-12T08:30:00+01:00",
"mealService": "Complimentary meal and beverage service",
"aircraft": "Airbus A330-300"
}
</script>flightNumber
flightNumber is the airline code plus flight number: "NA 412", "UA 110", "BA 247". Include the IATA airline code as a prefix. Google uses this to match the flight to real-time status data.
departure and arrival details
departureAirport and arrivalAirport take Airport objects with iataCode. departureGate/arrivalGate and departureTerminal/arrivalTerminal are text strings for gate and terminal identifiers. departureTime and arrivalTime (inherited from Trip) are ISO 8601 DateTimes with timezone offsets.
boardingPolicy
boardingPolicy takes a BoardingPolicyType enum: GroupBoardingPolicy or ZoneBoardingPolicy. This is the same enum used on Airline. On the Flight, it describes how this specific flight boards. On the Airline, it describes the airline's general policy.
Minimal valid version
The smallest markup that still produces a valid Flight entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Flight",
"flightNumber": "NA 412",
"airline": { "@type": "Airline", "name": "Nordic Air", "iataCode": "NA" },
"departureAirport": { "@type": "Airport", "iataCode": "CPH" },
"arrivalAirport": { "@type": "Airport", "iataCode": "LVA" },
"departureTime": "2026-11-13T08:30:00+01:00",
"arrivalTime": "2026-11-13T12:45:00-05:00"
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsGmail flight card (indirect)
Common Flight mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Missing iataCode on airports
Wrong"departureAirport": { "@type": "Airport", "name": "Copenhagen Airport" }Right"departureAirport": { "@type": "Airport", "name": "Copenhagen Airport", "iataCode": "CPH" }Google matches airports by iataCode, not by name. Without it, Google cannot connect the flight to real-time status data or show the route on a map.
- 02
departureTime without timezone offset
Wrong"departureTime": "2026-11-13T08:30:00"Right"departureTime": "2026-11-13T08:30:00+01:00"Flights cross time zones. Without the timezone offset, Google does not know which time zone the departure is in. Use the departure airport's local timezone for departureTime and the arrival airport's for arrivalTime.
Schema properties in this example
About the example data
Nordic Air flight NA 412 from Copenhagen to Lackawanna Valley Airport. This is the Flight entity that the FlightReservation references via reservationFor.
Comments
Loading comments...