TouristTrip Schema — Tours and Itineraries
TouristTrip describes a planned route through places of interest: the stops, the order, who runs it, and who it is for.
Generate TouristTrip JSON-LDWhat is TouristTrip?
Schema.org defines TouristTrip as "a created itinerary of visits to one or more places of interest (TouristAttraction/TouristDestination) often linked by a similar theme, geographic area, or interest to a particular touristType." It is a subtype of Trip.
Use it for pages like:
- A guided city tour or a food tour
- A day trip or excursion from a tour operator
- A self-guided itinerary, such as "3 days in Lisbon"
- A themed route, such as a wine trail or a scenic drive
Schema.org lists TouristTrip in its "new" area, which means the definition may still be refined based on how sites use it.
TouristTrip, Event, or something else?
This is the question most people have:
- TouristTrip describes the tour itself: the route, the stops, the operator, and the price. Use it on the tour's page.
- Event is for one specific occurrence with a date and start time, like "Old Town walk, Saturday at 10:00". Google's Event guidelines are explicit: "Don't promote non-event products or services such as 'Trip package: San Diego/LA, 7 nights' as events." A tour page is not an event page.
- TravelAgency describes the business that sells trips. Put it on your about or contact pages, and reference it as the
providerof each trip. - TouristAttraction or Place describes each stop. You use them inside the trip's
itinerary.
Google Search status
Google Search has no rich result for TouristTrip. The markup is still valid schema.org. It gives search engines, travel platforms, and AI assistants a structured version of your tour: where it goes, in what order, who runs it, and what it costs.
Properties worth including
Defined on TouristTrip:
touristType: who the trip suits, as text or an Audience. For example "Families" or "Wine lovers".
Inherited from Trip:
itinerary: the places the trip visits. Use an ItemList to give them an order, or a single Place for a one-stop trip.provider: the organization or person running the trip.offers: the price and booking link, as an Offer.subTripandpartOfTrip: split a long trip into days or legs, or link a leg back to its trip.departureTimeandarrivalTime: when the trip leaves and returns, if it runs on a fixed schedule.tripOrigin: where the trip starts, such as a meeting point.
Plus the usual name, description, image, and url.
How to build one here
- 01
Write the tour page first: name, route, stops, operator, and price.
- 02
Enter the name and description as they appear on the page.
- 03
Add each stop to the itinerary in order.
- 04
Add the provider, and an Offer with the price and booking link.
- 05
For multi-day trips, add one subTrip per day.
- 06
Copy the JSON-LD into the page and check it in the Schema Markup Validator.
Common mistakes
- Marking the tour as an Event. Use Event only for a dated occurrence, not for the tour or package itself.
- Stops as plain text. Use TouristAttraction or Place objects inside an ItemList so the stops and their order are clear.
- Prices that don't match. Keep the Offer price in sync with the booking page.
- One giant itinerary for a long trip. Use subTrip for each day or leg.
Recommended properties
namedescriptionitineraryproviderofferstouristTypesubTripdepartureTimearrivalTimetripOrigin
{
"@context": "https://schema.org",
"@type": "TouristTrip",
"name": "Historic Old Town Walking Tour",
"description": "A three-hour guided walk through the old town, with stops at the cathedral, the market hall, and the river walls.",
"touristType": [
"History lovers",
"Families"
],
"provider": {
"@type": "Organization",
"name": "Example City Tours",
"url": "https://www.example.com"
},
"itinerary": {
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "TouristAttraction",
"name": "St. Mary's Cathedral"
}
},
{
"@type": "ListItem",
"position": 2,
"item": {
"@type": "TouristAttraction",
"name": "Old Market Hall"
}
},
{
"@type": "ListItem",
"position": 3,
"item": {
"@type": "TouristAttraction",
"name": "River Walls"
}
}
]
},
"offers": {
"@type": "Offer",
"price": 35,
"priceCurrency": "EUR",
"url": "https://www.example.com/tours/old-town"
}
}{
"@context": "https://schema.org",
"@type": "TouristTrip",
"name": "Three Days in the Lake District",
"description": "A self-guided three-day itinerary covering the northern lakes, with a different base each night.",
"provider": {
"@type": "Organization",
"name": "Example Travel Co."
},
"subTrip": [
{
"@type": "TouristTrip",
"name": "Day 1: Keswick and Derwentwater",
"itinerary": {
"@type": "Place",
"name": "Derwentwater"
}
},
{
"@type": "TouristTrip",
"name": "Day 2: Buttermere and Honister Pass",
"itinerary": {
"@type": "Place",
"name": "Buttermere"
}
},
{
"@type": "TouristTrip",
"name": "Day 3: Ullswater",
"itinerary": {
"@type": "Place",
"name": "Ullswater"
}
}
]
}FAQs
TouristTrip or Event for a tour?ShowHide
Use TouristTrip for the tour itself: the route, the stops, and who runs it. Use Event only for a specific scheduled occurrence, like a guided walk that starts at 10:00 on a set date. Google's Event guidelines say not to mark up trip packages as events.
How do I list the stops in order?ShowHide
Set itinerary to an ItemList whose itemListElement entries are ListItems with a position and an item, usually a TouristAttraction or Place.
How do I describe a multi-day trip?ShowHide
Describe the whole trip, then add one subTrip per day or leg, each with its own itinerary.
Does TouristTrip get a rich result?ShowHide
No. Google has no rich result for it. The markup still describes the tour clearly for search engines, travel platforms, and AI assistants.