Event example in search results

Mark up your organized events so that users can discover events through Google Search results and other Google products like Google Maps.

You can add all types of events through markup — from performances by famous artists, to a neighborhood salsa class. Adding markup to your events makes it easier for users to discover and attend your event.

If you only have a few events on your website, you can use the Data Highlighter.


The image on the right shows event search results for "jazz concerts this weekend". See JSON-LD code for this example in the Structured Data Testing Tool. You can also use Microdata or RDFa syntax.


You must follow the general structured data quality guidelines and technical guidelines for your event to be eligible to be shown in Search results. In addition, the following guidelines apply to event structured data.

Technical guidelines

  • The target page must contain structured data items from event types on schema.org.
  • Each event MUST have a unique URL (a leaf page) and markup on that URL.

Content guidelines

  • Each event must accurately describe the event name, start date, and location.
  • Avoid marking non-events as events:
    • Don’t promote non-event products or services such as "Trip package: San Diego/LA, 7 nights" as events.
    • Don’t add short-term discounts or purchase opportunities, such as: "Concert — buy your tickets now," or "Concert - 50% off until Saturday."
    • Don’t mark business hours as events, such as: "Adventure park open 8 AM to 5PM."
    • Don't mark coupons or vouchers as events, such as: "5% off your first order."
  • Mark up multi-day events correctly:
    • If your event or ticket info is for an event that runs over several days, specify both the start and end dates of the event.
    • If there are several different performances across different days, each with individual tickets, add a separate Event element for each performance.

Structured data type definitions

The full definition of Event is available at schema.org/Event.

You must include the required properties for your content to be eligible for display in enhanced search results. You can also include the recommended properties to add more information about your content, which could provide a better user experience.

Required properties


A nested Place. For example:

"location": {
  "@type": "Place",
  "name": "Santa Clara City Library"


The venue's detailed address. For example:

"location": {
  "@type": "Place",
  "name": "Santa Clara City Library",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "2635 Homestead Rd",
    "addressLocality": "Santa Clara",
    "postalCode": "95051",
    "addressRegion": "CA",
    "addressCountry": "US"

Best practices:

  • If the event happens across several streets, define the starting location and mention the full details in description.
  • If the event happens without a well-defined location, use the city name or the most representative location.
  • If the event happens at multiple locations at the same time, create different events for each location.


Title of the event. For example:

"name": "Jan Lieberman Concert Series: Journey in Jazz"

Best practices:

  • Mention the full title of the event.
  • Highlight a unique aspect of the event in the title. This helps users make faster decisions (for example, "feat. Q&A with the artist").
  • Don't add short-term promotions (for example, "buy your tickets now").
  • Don't add prices in the title. Instead, use the price property.


The start date and start time of the event in the local timezone. For example:

"startDate": "2018-03-21T16:00"

You can also add time in the UTC zone using ISO-8601 format. For example:

"startDate": "2018-03-21T16:00"

If you don't know the start time, don't enter fake time or 00:00. Instead, only specify the start date. For example:

"startDate": "2018-03-21"
Recommended properties


Description of the event. Describe all details of the events to make it easier for users to understand and attend the event.



The end date and end time of the event. Use the same format as startDate. For example:

"endDate": "2017-04-24T23:00"

Don't enter fake time or 00:00 if the end time isn't known. Instead, only specify the end date. For example:

"endDate": "2017-04-24"

Repeated field of ImageObject or URL

URL of an image or logo for the event or tour. We recommend that images are 1920px wide (the minimum width is 720px).

Additional image guidelines:

  • Every page must contain at least one image (whether or not you include markup). Google will pick the best image to display in Search results based on the aspect ratio and resolution.
  • Image URLs must be crawlable and indexable.
  • Images must represent the marked up content.
  • Images must be in .jpg, .png, or. gif format.
  • For best results, provide multiple high-resolution images (minimum of 50K pixels when multiplying width and height) with the following aspect ratios: 16x9, 4x3, and 1x1.

For example:

"image": [


The venue's detailed name. For example:

"location": {
  "@type": "Place",
  "name": "Santa Clara City Library, Central Park Library"


A nested Offer, one for each ticket type. For example:
"offers": {
  "@type": "Offer"


One of the following:

For example:

"offers": {
  "@type": "Offer",
  "availability": "https://schema.org/InStock"


The lowest available price, including service charges and fees, of this type of ticket. For example:

"offers": {
  "@type": "Offer",
  "price": "30"


The 3-letter currency code. For example:

"offers": {
  "@type": "Offer",
  "priceCurrency": "USD"


The date and time when tickets go on sale (only required on date-restricted offers), in ISO-8601 format. For example:

"offers": {
  "@type": "Offer",
  "validFrom": "2017-01-20T16:20-08:00"


The URL of a page providing the ability to buy tickets. For example:
"offers": {
  "@type": "Offer",
  "url": "https://www.example.com/event_offer/123"

This URL must meet the following requirements:

  • Direct to a landing page that clearly and predominantly provides the opportunity to buy a ticket offering admittance to that specific event to any user from the general public.
  • Be a link that a user could click on the web page that contains the event.
  • Be followable by the Googlebot (not blocked by robots.txt).


A nested PerformingGroup or Person, one for each performer. For example:

"performer": {
  "@type": "PerformingGroup"


The performer's name. For example:

"performer": {
  "@type": "PerformingGroup",
  "name": "Andy Lagunoff"


If your site is not displaying as an option for purchasing tickets, follow the steps below:

  1. Make sure that your structured data includes the offers.url property.
  2. Ensure that your URL meets the URL requirements for offers.url.
  3. Ask Google to recrawl your site.
  4. Submit a request for (re)evaluation.