Ticket
Ticket is an Intangible type for event tickets, boarding passes, transit passes, and any admission document. It has 8 properties of its own: ticketNumber, ticketToken (barcode or QR code reference), ticketedSeat, issuedBy, underName (the ticket holder), dateIssued, totalPrice, and priceCurrency. Ticket is used inside Reservation via the reservedTicket property.
The type hierarchy is Thing → Intangible → Ticket. Google reads Ticket primarily inside FlightReservation (boarding passes) and EventReservation (event tickets) in Gmail emails. The ticketToken property is especially important: it can reference a barcode image or QR code that Gmail renders directly in the ticket card.
Full example of schema.org/Ticket 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": "Ticket",
"ticketNumber": "XOOCON-FP-0042",
"ticketToken": "qrCode:XOOCON2026FP0042",
"dateIssued": "2026-09-01",
"issuedBy": {
"@id": "https://xoocode.com#organization",
"@type": "Organization",
"name": "Xoo Code Inc."
},
"underName": {
"@type": "Person",
"name": "Tomás Herrera"
},
"ticketedSeat": {
"@type": "Seat",
"seatSection": "Full Pass"
},
"totalPrice": "349.00",
"priceCurrency": "USD"
}
</script>ticketToken
ticketToken takes a text string or URL. For QR codes, use the prefix format: "qrCode:XOOCON2026FP0042". For barcodes: "barcode128:1234567890". For a PDF ticket: use a URL pointing to the PDF. Gmail renders these as scannable codes on the ticket card.
ticketedSeat
ticketedSeat takes a Seat object with seatNumber, seatRow, and seatSection. For assigned seating (concerts, flights, theaters), include the seat details. For general admission, use seatSection alone: "General Admission" or "VIP".
Minimal valid version
The smallest markup that still produces a valid Ticket 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": "Ticket",
"ticketNumber": "XOOCON-FP-0042",
"underName": { "@type": "Person", "name": "Tomás Herrera" },
"ticketedSeat": { "@type": "Seat", "seatSection": "Full Pass" }
}
</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 ticket card (indirect)
Common Ticket 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
ticketToken as a plain description
Wrong"ticketToken": "Scan the QR code on your badge"Right"ticketToken": "qrCode:XOOCON2026FP0042"ticketToken should be a machine-readable reference: qrCode:VALUE, barcode128:VALUE, or a URL to a PDF/image. Gmail uses this to render a scannable code on the ticket card. A prose description cannot be scanned.
- 02
Missing underName
WrongTicket with ticketNumber but no underNameRight"underName": { "@type": "Person", "name": "Tomás Herrera" }underName identifies who the ticket is for. Without it, the ticket is unassigned. Gmail shows the ticket holder's name on the card.
Schema properties in this example
About the example data
An XooCon 2026 conference badge/ticket, referenced by the EventReservation example via reservedTicket.
Comments
Loading comments...