BusTrip
BusTrip is a Trip subtype for bus journeys. It has 4 properties of its own: departureBusStop and arrivalBusStop (BusStation or BusStop objects), busName (service name), and busNumber (route number). All Trip properties apply: departureTime, arrivalTime, offers, provider. BusTrip is the reservationFor target in BusReservation.
The type hierarchy is Thing → Intangible → Trip → BusTrip. Google reads BusTrip in Gmail booking confirmations to show a bus ticket card. For transit schedules on a public-facing website, BusTrip can also be used to describe individual bus services.
Full example of schema.org/BusTrip json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BusTrip",
"busName": "Lackawanna Express",
"busNumber": "Route 14",
"departureBusStop": {
"@type": "BusStation",
"name": "Scranton Central Station",
"address": { "@type": "PostalAddress", "addressLocality": "Scranton", "addressRegion": "PA", "addressCountry": "US" }
},
"arrivalBusStop": {
"@type": "BusStop",
"name": "Dunmore Main Street"
},
"departureTime": "2026-11-14T08:15:00-05:00",
"arrivalTime": "2026-11-14T08:45:00-05:00",
"provider": { "@type": "Organization", "name": "Lackawanna County Transit Authority" },
"offers": { "@type": "Offer", "price": "4.50", "priceCurrency": "USD" }
}
</script>departureBusStop and arrivalBusStop
Both take BusStation (a major station/terminal) or BusStop (a street-level stop). Use BusStation for intercity terminals and BusStop for individual stops on a route. Include at least the name on each.
Minimal valid version
The smallest markup that still produces a valid BusTrip 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": "BusTrip",
"busNumber": "Route 14",
"departureBusStop": { "@type": "BusStation", "name": "Scranton Central Station" },
"arrivalBusStop": { "@type": "BusStop", "name": "Dunmore Main Street" },
"departureTime": "2026-11-14T08:15: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 bus card (indirect)
Common BusTrip 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
Using BusStation for every stop
Wrong"departureBusStop": { "@type": "BusStation" } for a street-level bus stopRightUse BusStation for terminals; BusStop for individual stopsBusStation is a larger terminal (like a central bus station). BusStop is a street-level stop. Using the right type helps transit apps and Google Maps classify the stop correctly.
Schema properties in this example
About the example data
The Lackawanna Express route from Scranton to Dunmore Main Street, the bus service referenced by the BusReservation stub.
Comments
Loading comments...