In short. Set offers.validFrom to the ticket sales start time, use the documented availability value, and link offers.url to the ticket purchase page.
Definition: In an event's
Offer,offers.validFromgives the date and time when tickets go on sale.offers.availabilitydescribes the ticket state, whileoffers.urlidentifies the page where a person can buy tickets.
Key facts
- Google's Event structured data documentation describes
offers.validFromas the date and time when tickets go on sale, in ISO-8601 format. - Google lists
InStock,SoldOut, andPreOrderas the supportedoffers.availabilityvalues for event tickets. - Google says that a ticket offer not yet on sale to the general public can omit
availabilityand specifyvalidFrom. - The
offers.urlvalue points to a page that provides the ability to buy tickets and must satisfy Google's landing-page and crawlability requirements. - Schema.org's Event definition says that ticketing information may be added through the
offersproperty.
What does offers.validFrom represent?
Google's property documentation defines offers.validFrom as the date and time when tickets go on sale. It applies to date-restricted offers and uses ISO-8601 format. This is the sales start time, so it belongs inside the nested Offer, while the event's separate startDate describes when the event begins.
Google's example uses the following Offer fragment:
"offers": {
"@type": "Offer",
"url": "https://tickets.example/event",
"availability": "https://schema.org/InStock",
"validFrom": "YYYY-MM-DDThh:mm"
}
The same documentation's date and time guidance says to specify the timezone by including the UTC or GMT offset.
How should availability describe the tickets?
Google's availability guidance gives three values for event tickets. https://schema.org/InStock means tickets are in stock, https://schema.org/SoldOut means they are sold out, and https://schema.org/PreOrder means tickets are available for preorder. Schema.org's Offer definition also describes availabilityStarts as the beginning of availability for the product or service in an offer, but Google's Event documentation uses validFrom for the ticket sales start field.
If tickets are not yet on sale to the general public, Google says to omit availability and specify validFrom. Once a ticket state applies, use the corresponding value in the Offer object. If an event has several ticket types, Google's field definition describes offers as a nested Offer, one for each ticket type.
What should the ticket purchase URL contain?
Google's offers.url requirements say the URL must lead to a landing page that clearly and predominantly gives any member of the general public the opportunity to buy admission to that specific event. It must also be a link that a user could click from the event page and be crawlable by Googlebot, which means it must not be blocked by robots.txt.
The URL therefore belongs in the individual ticket Offer, alongside validFrom and availability when those fields apply. A missing or non-compliant offers.url is the documented cause when a site is not shown as an option for purchasing tickets in Google's event experience.
How can you check the markup?
Google's implementation steps say to add the required properties, follow the guidelines, validate the code with the Rich Results Test, and fix critical errors. After deployment, use URL Inspection to test how Google sees the page. The same documentation also says that the page must be accessible to Google and recommends a sitemap for future changes.
Schema.org describes an event as something happening at a certain time and location, and says repeated events may be structured as separate Event objects. Keep the ticket offer attached to the event object that represents the ticketed performance.
Related terms
- Offer structured data
- How should a free event's ticket offer be marked up?
- How do I test a URL or code snippet with Google's Rich Results Test?
- JSON-LD
FAQ
Is validFrom the event start time?
No. Google's Event documentation defines validFrom as the time tickets go on sale. The event's startDate is the separate property for the event's start date and time.
Should an unreleased ticket offer include availability?
When the ticket is not yet on sale to the general public, Google says you can omit availability and specify validFrom. Use PreOrder when tickets are available for preorder.
Can offers.url point to a general event listing?
Google requires a landing page that provides the opportunity to buy a ticket for the specific event. It also requires the URL to be linked from the event page and crawlable by Googlebot.
Sources
- Google Search Central, "Event (Event) structured data", 8 September 2026
- Schema.org, "Event", accessed 17 October 2026
- Schema.org, "Offer", accessed 17 October 2026
Check how a page reads to answer engines. Open the GEO score analyzer