# Event 结构化数据

> 来源：Google Search Central (https://developers.google.com/search/docs/appearance-structured-data-event.txt)

---

* Ranking and search appearance
  ** Visual Elements gallery  **
  ** Title links  **
  ** Snippets  **
  ** Images  **
  ** Videos  **
  ** Structured data  **
  ** Favicons  **

  * Site-specific guides
  ** Ecommerce  **
  ** International and multilingual sites  **

  * Data analysis
  ** Get started with Search Console  **
  ** Debug traffic drops  **
  ** Using Search Console and Google Analytics data for SEO  **
  ** Get started with Google Trends  **

[ Support ](https://developers.google.com/search/help) [ Blog ](https://developers.google.com/search/blog) [ What's new ](https://developers.google.com/search/news)

  ** All updates  **
  ** Documentation updates  **
  ** Ranking updates  **
  ** New YouTube videos  **
  ** Recent podcast episodes  **

[ Events ](https://developers.google.com/search/events) [ Case studies ](https://developers.google.com/search/case-studies)

`/`

  * English
  * Deutsch
  * Español
  * Español – América Latina
  * Français
  * Indonesia
  * Italiano
  * Polski
  * Português – Brasil
  * Tiếng Việt
  * Türkçe
  * Русский
  * العربيّة
  * हिंदी
  * ภาษาไทย
  * 中文 – 简体
  * 中文 – 繁體
  * 日本語
  * 한국어

Sign in

  ** Documentation **

[Search Console](https://goo.gle/searchconsole)

[ ](https://developers.google.com/search)

  ** Google Search Central **

  ** Documentation  **
    * More 
  ** Support  **
  ** Blog  **
  ** What's new  **
    * More 
  ** Events  **
  ** Case studies  **

  **Introduction**
  * Search Essentials

    **Overview**
    **Technical requirements**
    **Spam policies**

  * SEO fundamentals

    **SEO Starter Guide**
    **How Google Search works**
    **Creating helpful, reliable, people-first content**
    **Do you need an SEO?**
    **Maintaining your site's SEO**
    **Developer's guide to Search**
    **Get your website on Google**
    **Guidance on using generative AI**

  * Crawling and indexing

    **Overview**
    **File types Google can index**
    **URL structure**
    **Links**
    * Sitemaps

      **Learn about sitemaps**
      **Build and submit a sitemap**
      **Manage sitemaps with sitemap index file**
      * Sitemap extensions

        **Image sitemaps**
        **News sitemaps**
        **Video sitemaps and alternatives**
        **Combining sitemap extensions**

    * Crawler management

      **Ask Google to recrawl your URLs**
      **Troubleshoot crawl errors**
      * Google crawlers

        **List of Google crawlers**
        **Googlebot**
        **Reduce the Google crawl rate**
        **Verifying Googlebot and other Google crawlers**

    * robots.txt

      **Introduction to robots.txt**
      **How Google interprets the robots.txt specification**

    * Canonicalization

      **What is URL canonicalization**
      **How to specify a canonical URL with rel="canonical" and other methods**
      **Fix canonicalization issues**

    **Mobile site and mobile-first indexing**
    * AMP

      **AMP on Google Search guidelines**
      **Understand how AMP works in search results**
      **Enhance AMP content**
      **Validate AMP content**
      **Remove AMP content**

    * JavaScript

      **Understand the JavaScript SEO basics**
      **Fix search-related JavaScript problems**
      **Fix lazy-loaded content**
      **Dynamic rendering as a workaround**

    * Page and content metadata

      **Page metadata**
      * Meta tags

        **Meta tags and HTML attributes that Google supports**
        **Robots meta tag, data-nosnippet, and X-Robots-Tag**
        **noindex**

      **rel attributes**

    * Removals

      **Control what you share with Google**
      **Page removals**
      **Image removals**
      **Redacted information**

    * Site moves and changes

      **Redirects and Google Search**
      * Site moves

        **Changing your hosting**
        **Move a site with URL changes**

      **A/B testing**
      **Temporarily pause or disable a website**

  * Ranking and search appearance

    **Overview**
    **AI features**
    **Byline dates**
    **Favicons**
    **Featured snippets**
    **Flexible Sampling**
    **Google Discover**
    **Images**
    * Local features

      **Business details**
      **Top Places List**
      **Opting out of local search results**

    * Page experience

      **Understanding page experience**
      **Core Web Vitals**
      **Interstitials and dialogs**
      **Get started with signed exchanges on Google Search**

    **Preferred sources**
    * Ranking systems

      **A guide to Google Search ranking systems**
      **Reviews system**

    * Ranking updates

      **List of ranking updates**
      **Core updates**
      **Spam updates**

    **Site names**
    **Sitelinks**
    **Snippets**
    * Structured data

      **Understand how structured data works**
      **Structured data general guidelines**
      **Enriched search results**
      **Generate structured data with JavaScript**
      * Feature guides

        **All structured data features**
        **Article**
        **Book actions**
        **Breadcrumb**
        **Carousel**
        **Course list**
        **Dataset**
        **Discussion forum**
        **Education Q&A**
        **Employer aggregate rating**
        **Fact check**
        **Event**
        **FAQ**
        **Image metadata**
        **Job posting**
        **Local business**
        **Math solver**
        **Movie carousel**
        **Organization**
        * Shopping

          **Overview**
          **Product snippet**
          **Merchant listing**
          **Variants**
          **Loyalty program**
          **Merchant return policy**
          **Merchant shipping policy**

        **Profile page**
        **Q&A**
        **Recipe**
        **Review snippet**
        **Software app**
        **Speakable**
        **Subscription and paywalled content**
        **Vacation rental**
        **Video**

    **Title links**
    * Translated features

      **Translated results**
      **Ad networks and translation-related Google Search features**

    **Videos**
    **Visual Elements gallery**
    * Web Stories

      **Enable Web Stories on Google**
      **Best practices for creating Web Stories**
      **Web Story content policy**

    * Early Adopters Program

      **Package tracking**
      **Structured data carousels (beta)**

  * Monitoring and debugging

    **Debug drops in Search traffic**
    * Monitor with Search Console

      **Get started with Search Console**
      **Improve SEO with a bubble chart**
      **Using Search Console and Google Analytics data for SEO**

    * Debug with search operators

      **Overview**
      **site: search operator**
      **Google Images search operators**

    * Preventing and monitoring abuse

      **Overview**
      **Prevent user-generated spam**
      **Malware and unwanted software**
      **Prevent a malware infection**
      **Social engineering (phishing and deceptive sites)**
      **Google Safe Browsing Repeat Offenders Policy**

    **Get started with Google Trends**

  * Site-specific guides

    * Ecommerce

      **Overview**
      **Where content can appear**
      **Share product data**
      **Include structured data**
      **Launch a new website**
      **Write high quality reviews**
      **Design a URL structure**
      **Ecommerce site structure**
      **Pagination, incremental page loading, and Search**

    * International and multilingual

      **Overview**
      **Managing multi-regional and multilingual sites**
      **Tell Google about localized versions of your page**
      **How Google crawls locale-adaptive pages**

    * Explicit content

      **Guidelines for sites with explicit content**
      **What to do if your site is incorrectly flagged as explicit**

  * SEO fundamentals 
  ** Introduction  **
  ** Search Essentials  **
  ** SEO Starter Guide  **
  ** How Google Search Works  **
  ** Do you need an SEO?  **
  * Crawling and indexing 
  ** Sitemaps  **
  ** robots.txt  **
  ** Meta tags  **
  ** Crawler management  **
  ** Removals  **
  ** Canonicalization  **
  ** Redirects  **
  ** JavaScript SEO  **
  * Ranking and search appearance 
  ** Visual Elements gallery  **
  ** Title links  **
  ** Snippets  **
  ** Images  **
  ** Videos  **
  ** Structured data  **
  ** Favicons  **
  * Site-specific guides 
  ** Ecommerce  **
  ** International and multilingual sites  **
  * Data analysis 
  ** Get started with Search Console  **
  ** Debug traffic drops  **
  ** Using Search Console and Google Analytics data for SEO  **
  ** Get started with Google Trends  **

  ** All updates  **
  ** Documentation updates  **
  ** Ranking updates  **
  ** New YouTube videos  **
  ** Recent podcast episodes  **

  ** Home **
  ** Search Central **
  ** Documentation **

Send feedback 

# Event (`Event`) structured data

The event experience on Google makes it easier for people to discover and attend events through Google Search results and other Google products, like Google Maps. This feature brings many benefits:

  * More interactive results: Your events can be eligible to be displayed in the event experience on Google, featuring your logo, description of the event, and more.
  * Increased chances of discovery and conversion: People have a new way to interact with your event posting and click through to your site. Learn how [Eventbrite saw a 100% increase](/search/case-studies/eventbrite-case-study) in the typical year-over-year growth of traffic from Google Search.

There are three options to make your events eligible to appear on Google: 

  * If you use a third-party website to post events (for example, you post events on ticketing websites or social platforms), check to see if your event publisher is already participating in the event search experience on Google. If your event publisher is integrated with Google, continue to post your events on the third-party website. You can stop reading here.
  * If you use a CMS (for example, WordPress) and you don't have access to your HTML, check with your CMS to see if there's a plugin that can add structured data to your site for you. Alternatively, you can use the [Data Highlighter](https://support.google.com/webmasters/answer/2774099) to tell Google about your events without editing the HTML of your site.
  * If you're comfortable editing your HTML, use structured data to directly integrate with Google. You'll need to edit the HTML of the event pages.

##  How to add structured data 

Structured data is a standardized format for providing information about a page and classifying the page content. If you're new to structured data, you can learn more about [how structured data works](/search/docs/appearance/structured-data/intro-structured-data). 

Here's an overview of how to build, test, and release structured data.

  1. Add the required properties. Based on the format you're using, learn where to [insert structured data on the page](/search/docs/appearance/structured-data/intro-structured-data#format-placement).  Using a CMS? It may be easier to use a plugin that's integrated into your CMS.   
Using JavaScript? Learn how to [generate structured data with JavaScript](/search/docs/appearance/structured-data/generate-structured-data-with-javascript).
  2. Follow the guidelines.
  3. Validate your code using the [Rich Results Test](https://search.google.com/test/rich-results) and fix any critical errors. Consider also fixing any non-critical issues that may be flagged in the tool, as they can help improve the quality of your structured data (however, this isn't necessary to be eligible for rich results). 
  4. Deploy a few pages that include your structured data and use the [URL Inspection tool](https://support.google.com/webmasters/answer/9012289) to test how Google sees the page. Be sure that your page is accessible to Google and not blocked by a robots.txt file, the `noindex` tag, or login requirements. If the page looks okay, you can [ask Google to recrawl your URLs](/search/docs/crawling-indexing/ask-google-to-recrawl). Note: Allow time for re-crawling and re-indexing. Remember that it may take several days after publishing a page for Google to find and crawl it.
  5. To keep Google informed of future changes, we recommend that you [submit a sitemap](/search/docs/crawling-indexing/sitemaps/build-sitemap). You can automate this with the [Search Console Sitemap API](/webmaster-tools/v1/sitemaps).

## Examples

###  Standard event 

Here's an example of standard `Event` in JSON-LD. A standard event means that the event is happening at a physical location only and the event is happened as scheduled. You can also use Microdata or RDFa syntax.

<html> <head> <title>The Adventures of Kira and Morrison</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Event", "name": "The Adventures of Kira and Morrison", "startDate": "2025-07-21T19:00-05:00", "endDate": "2025-07-21T23:00-05:00", "eventStatus": "https://schema.org/EventScheduled", "location": { "@type": "Place", "name": "Snickerpark Stadium", "address": { "@type": "PostalAddress", "streetAddress": "100 West Snickerpark Dr", "addressLocality": "Snickertown", "postalCode": "19019", "addressRegion": "PA", "addressCountry": "US" } }, "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ], "description": "The Adventures of Kira and Morrison is coming to Snickertown in a can't miss performance.", "offers": { "@type": "Offer", "url": "https://www.example.com/event_offer/12345_202403180430", "price": 30, "priceCurrency": "USD", "availability": "https://schema.org/InStock", "validFrom": "2024-05-21T12:00" }, "performer": { "@type": "PerformingGroup", "name": "Kira and Morrison" }, "organizer": { "@type": "Organization", "name": "Kira and Morrison Music", "url": "https://kiraandmorrisonmusic.com" } } </script> </head> <body> </body> </html>
    
    
    <html>
      <head>
        <title>The Adventures of Kira and Morrison</title>
        <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "Event",
          "name": "The Adventures of Kira and Morrison",
          "startDate": "2025-07-21T19:00-05:00",
          "endDate": "2025-07-21T23:00-05:00",
          "eventStatus": "https://schema.org/EventScheduled",
          "location": {
            "@type": "Place",
            "name": "Snickerpark Stadium",
            "address": {
              "@type": "PostalAddress",
              "streetAddress": "100 West Snickerpark Dr",
              "addressLocality": "Snickertown",
              "postalCode": "19019",
              "addressRegion": "PA",
              "addressCountry": "US"
            }
          },
          "image": [
            "https://example.com/photos/1x1/photo.jpg",
            "https://example.com/photos/4x3/photo.jpg",
            "https://example.com/photos/16x9/photo.jpg"
           ],
          "description": "The Adventures of Kira and Morrison is coming to Snickertown in a can't miss performance.",
          "offers": {
            "@type": "Offer",
            "url": "https://www.example.com/event_offer/12345_202403180430",
            "price": 30,
            "priceCurrency": "USD",
            "availability": "https://schema.org/InStock",
            "validFrom": "2024-05-21T12:00"
          },
          "performer": {
            "@type": "PerformingGroup",
            "name": "Kira and Morrison"
          },
          "organizer": {
            "@type": "Organization",
            "name": "Kira and Morrison Music",
            "url": "https://kiraandmorrisonmusic.com"
          }
        }
        </script>
      </head>
      <body>
      </body>
    </html>

###  Event with an updated status 

There are multiple ways to set the status of an event. Here are some common examples of events that have an updated status. For more information, refer to the `eventStatus` property. 

####  Canceled 

Here's an example of an event that's been canceled. 

<html> <head> <title>The Adventures of Kira and Morrison</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Event", "name": "The Adventures of Kira and Morrison", "startDate": "2025-07-21T19:00-05:00", "endDate": "2025-07-21T23:00-05:00", "eventStatus": "https://schema.org/EventCancelled", "location": { "@type": "Place", "name": "Snickerpark Stadium", "address": { "@type": "PostalAddress", "streetAddress": "100 West Snickerpark Dr", "addressLocality": "Snickertown", "postalCode": "19019", "addressRegion": "PA", "addressCountry": "US" } }, "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ], "description": "The Adventures of Kira and Morrison is coming to Snickertown in a can't miss performance.", "offers": { "@type": "Offer", "url": "https://www.example.com/event_offer/12345_202403180430", "price": 30, "priceCurrency": "USD", "availability": "https://schema.org/InStock", "validFrom": "2024-05-21T12:00" }, "performer": { "@type": "PerformingGroup", "name": "Kira and Morrison" }, "organizer": { "@type": "Organization", "name": "Kira and Morrison Music", "url": "https://kiraandmorrisonmusic.com" } } </script> </head> <body> </body> </html>   

    
    
    <html>
      <head>
        <title>The Adventures of Kira and Morrison</title>
        <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "Event",
          "name": "The Adventures of Kira and Morrison",
          "startDate": "2025-07-21T19:00-05:00",
          "endDate": "2025-07-21T23:00-05:00",
          "eventStatus": "https://schema.org/EventCancelled",
          "location": {
            "@type": "Place",
            "name": "Snickerpark Stadium",
            "address": {
              "@type": "PostalAddress",
              "streetAddress": "100 West Snickerpark Dr",
              "addressLocality": "Snickertown",
              "postalCode": "19019",
              "addressRegion": "PA",
              "addressCountry": "US"
            }
          },
          "image": [
            "https://example.com/photos/1x1/photo.jpg",
            "https://example.com/photos/4x3/photo.jpg",
            "https://example.com/photos/16x9/photo.jpg"
           ],
          "description": "The Adventures of Kira and Morrison is coming to Snickertown in a can't miss performance.",
          "offers": {
            "@type": "Offer",
            "url": "https://www.example.com/event_offer/12345_202403180430",
            "price": 30,
            "priceCurrency": "USD",
            "availability": "https://schema.org/InStock",
            "validFrom": "2024-05-21T12:00"
          },
          "performer": {
            "@type": "PerformingGroup",
            "name": "Kira and Morrison"
          },
          "organizer": {
            "@type": "Organization",
            "name": "Kira and Morrison Music",
            "url": "https://kiraandmorrisonmusic.com"
          }
        }
        </script>
      </head>
      <body>
      </body>
    </html>

####  Rescheduled 

Here's an example of an event that's been rescheduled. 

<html> <head> <title>The Adventures of Kira and Morrison</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Event", "name": "The Adventures of Kira and Morrison", "startDate": "2025-07-21T19:00-05:00", "endDate": "2025-07-21T23:00-05:00", "eventStatus": "https://schema.org/EventRescheduled", "previousStartDate": "2025-03-21T19:00-05:00", "location": { "@type": "Place", "name": "Snickerpark Stadium", "address": { "@type": "PostalAddress", "streetAddress": "100 West Snickerpark Dr", "addressLocality": "Snickertown", "postalCode": "19019", "addressRegion": "PA", "addressCountry": "US" } }, "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ], "description": "The Adventures of Kira and Morrison is coming to Snickertown in a can't miss performance.", "offers": { "@type": "Offer", "url": "https://www.example.com/event_offer/12345_202403180430", "price": 30, "priceCurrency": "USD", "availability": "https://schema.org/InStock", "validFrom": "2024-05-21T12:00" }, "performer": { "@type": "PerformingGroup", "name": "Kira and Morrison" }, "organizer": { "@type": "Organization", "name": "Kira and Morrison Music", "url": "https://kiraandmorrisonmusic.com" } } </script> </head> <body> </body> </html>   

    
    
    <html>
      <head>
        <title>The Adventures of Kira and Morrison</title>
        <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "Event",
          "name": "The Adventures of Kira and Morrison",
          "startDate": "2025-07-21T19:00-05:00",
          "endDate": "2025-07-21T23:00-05:00",
          "eventStatus": "https://schema.org/EventRescheduled",
          "previousStartDate": "2025-03-21T19:00-05:00",
          "location": {
            "@type": "Place",
            "name": "Snickerpark Stadium",
            "address": {
              "@type": "PostalAddress",
              "streetAddress": "100 West Snickerpark Dr",
              "addressLocality": "Snickertown",
              "postalCode": "19019",
              "addressRegion": "PA",
              "addressCountry": "US"
            }
          },
          "image": [
            "https://example.com/photos/1x1/photo.jpg",
            "https://example.com/photos/4x3/photo.jpg",
            "https://example.com/photos/16x9/photo.jpg"
           ],
          "description": "The Adventures of Kira and Morrison is coming to Snickertown in a can't miss performance.",
          "offers": {
            "@type": "Offer",
            "url": "https://www.example.com/event_offer/12345_202403180430",
            "price": 30,
            "priceCurrency": "USD",
            "availability": "https://schema.org/InStock",
            "validFrom": "2024-05-21T12:00"
          },
          "performer": {
            "@type": "PerformingGroup",
            "name": "Kira and Morrison"
          },
          "organizer": {
            "@type": "Organization",
            "name": "Kira and Morrison Music",
            "url": "https://kiraandmorrisonmusic.com"
          }
        }
        </script>
      </head>
      <body>
      </body>
    </html>

## Region and language availability

We are excited to bring the event search experience on Google to more regions around the world. The experience is available in the following regions and languages.

Region | Available languages  
---|---  
Australia  |  English   
Brazil  |  Portuguese   
Canada  |  English   
Germany | German  
India  |  English   
Latin America  |  Spanish   
Spain  |  Spanish   
United Kingdom  |  English   
United States  |  English   
  
## Guidelines

You must follow these guidelines to be eligible to appear in the event search experience on Google.

Warning: If your site violates one or more of these guidelines, then Google may take [manual action](https://support.google.com/webmasters/answer/2604824) against it. Once you have remedied the problem, you can submit your site for [reconsideration](https://support.google.com/webmasters/answer/35843).

  * Technical guidelines
  * Content guidelines
  * Date and time guidelines
  **Search Essentials**
  **General structured data guidelines**

### Technical guidelines

  * The target page must contain structured data items from [event types on schema.org](https://schema.org/Event).
  * Each event MUST have a unique URL (a leaf page) and markup on that URL.
  * The event experience on Google only supports pages that focus on a single event. We recommend focusing on adding markup to your event posting pages instead of pages that list schedules or multiple events.
  * 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.

### 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."
  * Events must be bookable to the general public. Events that require a membership, or invitation prior to purchasing the ticket or attending the event are ineligible for the event experience. 
  * Spectator events where the primary participants and audience are minors and occur on-premise of a school aren't eligible for the event experience. For example, student events occurring on school premises.
  * Virtual experiences that have no real-world component aren't supported. Events must take place in a physical location.

###  Date and time guidelines 

When implementing the `startDate`, `endDate`, and `previousStartDate` properties, follow these date and time guidelines. 

#### How to specify timezones

Specify the timezone by including the UTC or GMT time offset. If the event starts at 7pm on September 5 in New York, the `startDate` value would be GMT/UTC-5 during standard time and GMT/UTC-4 during daylight savings time. During standard time, `startDate` value would be `"2019-09-05T19:00:00-05:00"` or `"2019-09-05T19:00:00-04:00"` respectively. If no timezone is provided, Google uses the timezone of the event's location as specified in `location`.

#### Best practices

  * Event takes place over a range of dates: If the event takes place over the course of multiple days, indicate both the start and end date. Don't indicate the time if you don't know the time. 

Recommended
    
        "startDate": "2019-07-01T10:00:00-05:00",
    "endDate": "2019-07-26T17:00:00-05:00"

Recommended
    
        "startDate": "2019-07-01",
    "endDate": "2019-07-26"

Not recommended
    
        "startDate": "2019-07-01T00:00:00+00:00",
    "endDate": "2019-07-26T23:59:59+00:00"

  * Event starts at a specific hour: If the event starts at a specific time, such as 5pm locally, use `2019-07-20T17:00:00`. Include the appropriate UTC offset (for example, use `2019-07-20T17:00:00-07:00` if the event is in California).
  * Event is a day long event: If the event is happening all day, don't specify a granular hour for the start date. For example, you can use `2019-08-15` as both the `startDate` and `endDate` for a day-long event.
  * Event start hour isn't known: If you don't know the hour for the start time, don't specify a granular hour. For example, you can use `2019-08-15` as both the `startDate` and `endDate`. 

Recommended: `"startDate": "2025-07-21"`

Not recommended: `"startDate": "2019-08-15T00:00:00+00:00"`

Not recommended: `"startDate": "2019-07-20T00:00:00"`

#### Examples of how Google interprets dates

Here are some examples of how Google interprets start date and time: 

Start date and time interpretations  
---  
`2019-08-15T00:00:00+00:00` |  Google interprets the `startTime` to be `2019-08-14T17:00:00-07:00` (if `location` is set to California) or `2019-08-15T09:00:00` (if `location` is set to Korea).   
`2019-08-15T23:59:59+00:00` | This doesn't mean the end of `2019-08-15` unless the event happens in the GMT timezone. Google interprets the `startTime` to be `2019-08-15T16:59:59-07:00` (if `location` is set to California) or `2019-08-16T08:59:59` (if `location` is set to Korea).  
`2019-07-10` | This means the date regardless of the timezone. When used in `startDate`, it means the event starts in the `location` from sometime in that day. When used in `endDate`, it means the event ends in the `location` from sometime in that day.  
`2019-07-20T00:00:00` | This means midnight on `2019-07-20` for the timezone where the event happens. This is also likely wrong unless the event was meant to start at midnight.  
  
## Structured data type definitions

The full definition of `Event` is available at [schema.org/Event](https://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  
---  
`location` |  `[Place](https://schema.org/Place)` The location of the event. Set the `@type` to `Place`. Add the `location.address` and `location.name` properties.  
`location.address` |  `[PostalAddress](https://schema.org/PostalAddress)` The venue's detailed street address.  Not recommended: Sydney Recommended: Bennelong Point, Sydney NSW 2000, Australia United States example
    
    
    "location": {
      "@type": "Place",
      "name": "Snickerpark Stadium",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "100 West Snickerpark Dr",
        "addressLocality": "Snickertown",
        "postalCode": "19019",
        "addressRegion": "PA",
        "addressCountry": "US"
      }
    }

Japan examples You can write addresses for Japan in different ways, and Google still understands the address. Here's an example with the street address, locality, and country in different fields. 
    
    
    "location": {
      "@type": "Place",
      "name": "ダイバーシティ東京",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "江東区青海1-10",
        "addressLocality": "東京",
        "addressCountry": "日本"
      }
    }

Here's an example of the street address and address country in different fields. 
    
    
    "location": {
      "@type": "Place",
      "name": "ダイバーシティ東京",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "東京都江東区青海1-10",
        "addressCountry": "日本"
      }
    }

Here's an example of the entire address on one line. 
    
    
    "location": {
      "@type": "Place",
      "name": "ダイバーシティ東京",
      "address": {
        "@type": "PostalAddress",
        "name": "東京都江東区青海 1-1-10 ダイバーシティ東京プラザ"
       }
    }

Best practices for addresses:

  * 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.

  
`name` |  `[Text](https://schema.org/Text)` The full title of the event. DO NOT put the name of the event location. Instead, use `location.name` to specify the name of the location where the event is being held. Not recommended: Bill Graham Civic Auditorium Not recommended: **LIMITED TIME SALE - Kesha and Macklemore Concert - $25** Recommended: The Adventures of Kesha and Macklemore Recommended: Meet and Greet: Kesha and Macklemore Best practices:

  * Don't use the type of event as the name of the event. For example, "Concert" is not a descriptive name for an event.
  * Don't include extraneous information like URLs, prices, or performers. Instead, use the appropriate properties for those values.
  * 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").

  
`startDate` |  `[DateTime](https://schema.org/DateTime)` The start date and start time of the event in [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). Add both the date and time so users can find events that fit into their schedule. Make sure to follow the Date and time guidelines. 
    
    
    "startDate": "2025-07-21T19:00"  
  
Recommended properties  
---  
`description` |  `[Text](https://schema.org/Text)` Description of the event. Describe all details of the event to make it easier for users to understand and attend the event. Best practices: 

  * Add a clear and concise description of the specific event.
  * Focus on the event details and not your site's features. 
  * Don't repeat other facts like date and location; instead, add that information to the respective properties.

    
    
    "description": "The Adventures of Kira and Morrison is coming to Snickertown in a can't miss performance."

Google only shows a snippet of the full description.  
`endDate` |  `[DateTime](https://schema.org/DateTime)` The end date and end time of the event in [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). Use the same format as `startDate`. Add both the date and time so users can find events that fit into their schedule. Make sure to follow the Date and time guidelines. 
    
    
    "endDate": "2025-07-21T23:00"  
  
`eventStatus` | `[EventStatusType](https://schema.org/EventStatusType)` Warning: When the event status changes, DON'T remove the `startDate`. The `startDate` property is required to help identify the unique event. The status of the event. If you don't use this field, Google understands the `eventStatus` to be `EventScheduled`. You can use multiple statuses, if applicable. Here are the supported values.  | [`EventCancelled`](https://schema.org/EventCancelled) |  The event has been canceled. Don't remove or change other properties (for example, don't remove `startDate` or `location`); instead, keep all values as the same as they were before the cancelation, and update the `eventStatus` to `EventCancelled`.   
  
Why? Properties like `startDate` and `location` help identify the unique event and make sure people understand the new status of the event.
    
    
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "eventStatus": "https://schema.org/EventCancelled",
      "startDate": "2020-07-21T19:00"
    }  
  
---|---  
[`EventPostponed`](https://schema.org/EventPostponed) |  The event has been postponed to a later date, but the date isn't known yet. Keep the original date in the `startDate` of the event until you know when the event will take place. Once you know the new date information, change the `eventStatus` to `EventRescheduled` and update the `startDate` and `endDate` with the new date information.  Don't remove or change other properties (for example, don't remove the `startDate` or `location`); instead, keep all values as the same as they were before the postponement, and update the `eventStatus` to `EventPostponed`.   
  
Why? Properties like `startDate` and `location` help identify the unique event and make sure people understand the new status of the event.
    
    
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "eventStatus": "https://schema.org/EventPostponed",
      "startDate": "2020-07-21T19:00"
    }  
  
[`EventRescheduled`](https://schema.org/EventRescheduled) |  The event has been rescheduled to a later date. Update the `startDate` and `endDate` with the relevant new dates. Optionally, you can also mark the `eventStatus` field as rescheduled and add the `previousStartDate`. 
    
    
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "eventStatus": "https://schema.org/EventRescheduled",
      "startDate": "2020-07-21T19:00",
      "endDate": "2025-07-21T23:00",
      "previousStartDate": "2025-03-21T19:00"
    }  
  
[`EventScheduled`](https://schema.org/EventScheduled) |  The event is scheduled to happen. This value is the default status for events. If you don't set `eventStatus`, Google understands the event to be happening on schedule. 
    
    
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "eventStatus": "https://schema.org/EventScheduled",
      "startDate": "2020-07-21T19:00"
    }  
  
`image` |  Repeated `[ImageObject](https://schema.org/ImageObject)` or `[URL](https://schema.org/URL)` URL of an image or logo for the event or tour. Including an image helps users understand and engage with your event. We recommend that images are 1920px wide (the minimum width is 720px). Additional image guidelines: 

  * Image URLs must be crawlable and indexable. To check if Google can access your URLs, use the [URL Inspection tool](https://support.google.com/webmasters/answer/9012289).
  * Images must represent the marked up content.
  * Images must be in a file format that's [supported by Google Images](/search/docs/appearance/google-images#supported-image-formats).
  * For best results, we recommend providing 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": [
      "https://example.com/photos/1x1/photo.jpg",
      "https://example.com/photos/4x3/photo.jpg",
      "https://example.com/photos/16x9/photo.jpg"
    ]  
  
`location.name` |  `[Text](https://schema.org/Text)` The detailed name of the place or venue where the event is being held. This property is only recommended for events that take place at a physical location. DO NOT put the title of the event in this field. Instead, use `name` to specify the name of the event. Not recommended: San Francisco, CA Recommended: Bill Graham Civic Auditorium Best practices: 

  * Don't include a city name unless it is a city-wide event.
  * The `location.name` property must be the name of the venue or location, not a repeat of the title of the event. If you don't know the name of the location, don't use this property.

  
`offers` |  `[Offer](https://schema.org/Offer)` A nested `[Offer](https://schema.org/Offer)`, one for each ticket type.   
`offers.availability` |  `[Text](https://schema.org/Text)` One of the following:

  * `[InStock](https://schema.org/InStock)`: Event tickets are in stock.
  * `[SoldOut](https://schema.org/SoldOut)`: Event tickets are sold out.
  * `[PreOrder](https://schema.org/PreOrder)`: Event tickets are available for preorder.

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

Note: If the ticket is not yet on sale to the general public, you can omit availability and specify `validFrom`.  
`offers.price` |  `[Number](https://schema.org/Number)` The lowest available price available for your tickets, including service charges and fees. Don't forget to update it as prices change or tickets sell out. If the event is available without payment, fees, or service charges, set the `price` to `0`. 
    
    
    "offers": {
      "@type": "Offer",
      "price": 30
    }  
  
`offers.priceCurrency` |  `[Text](https://schema.org/Text)` The 3-letter ISO 4217 currency code.
    
    
    "offers": {
      "@type": "Offer",
      "priceCurrency": "USD"
    }  
  
`offers.validFrom` |  `[DateTime](https://schema.org/DateTime)` The date and time when tickets go on sale (only required on date-restricted offers), in [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
    
    
    "offers": {
      "@type": "Offer",
      "validFrom": "2024-05-21T12:00"
    }  
  
`offers.url` |  [URL](https://schema.org/URL) The URL of a page providing the ability to buy tickets. 
    
    
    "offers": {
      "@type": "Offer",
      "url": "https://www.example.com/event_offer/12345_201803180430"
    }

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 the web page that contains the event.
  * Be crawlable by Googlebot (not blocked by robots.txt).

  
`organizer` |  `[Organization](https://schema.org/Organization)` or `[Person](https://schema.org/Person)` The person or organization that is hosting the event. If you include `organizer`, we encourage you to add the following properties:

  * `organizer.name`
  * `organizer.url`

  
`organizer.name` |  `[Text](https://schema.org/Text)` The name of the person or organization that's hosting the event.  
`organizer.url` |  `[URL](https://schema.org/URL)` The event host's domain URL.  
`performer` |  `[Person](https://schema.org/Person)` The participants performing at the event, such as artists and comedians. Use a nested `[PerformingGroup](https://schema.org/PerformingGroup)` or `[Person](https://schema.org/Person)`, one for each performer.  
`performer.name` |  [Text](https://schema.org/Text) The name of the participant performing at the event, such as the name of the artist or comedian.
    
    
    "performer": {
      "@type": "PerformingGroup",
      "name": "Kira and Morrison"
    }  
  
`previousStartDate` |  [DateTime](https://schema.org/DateTime) The previously scheduled start date for the event if an event has been rescheduled. If you add `previousStartDate`, you must also add the `eventStatus` property and set the `eventStatus` to `EventRescheduled`. Don't use other event statuses. Make sure to follow the Date and time guidelines.  For rescheduled events, the `startDate` property must only be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated. 
    
    
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "previousStartDate": ["2020-03-21T19:00-05:00", "2020-03-20T19:00-05:00", "2020-03-21T19:00-05:00"],
      "eventStatus": "https://schema.org/EventRescheduled",
      "startDate": "2020-07-21T19:00-05:00"
    }  
  
## Monitor rich results with Search Console

Search Console is a tool that helps you monitor how your pages perform in Google Search. You don't have to sign up for Search Console to be included in Google Search results, but it can help you understand and improve how Google sees your site. We recommend checking Search Console in the following cases: 

  1. After deploying structured data for the first time
  2. After releasing new templates or updating your code
  3. Analyzing traffic periodically

###  After deploying structured data for the first time 

After Google has indexed your pages, look for issues using the relevant [Rich result status report](https://support.google.com/webmasters/answer/7552505). Ideally, there will be an increase of valid items, and no increase in invalid items. If you find issues in your structured data:

  1. Fix the invalid items.
  2. [Inspect a live URL](https://support.google.com/webmasters/answer/9012289#test_live_page) to check if the issue persists.
  3. [Request validation](https://support.google.com/webmasters/answer/13300208) using the status report.

###  After releasing new templates or updating your code 

When you make significant changes to your website, monitor for increases in structured data invalid items. 

  * If you see an increase in invalid items, perhaps you rolled out a new template that doesn't work, or your site interacts with the existing template in a new and bad way.
  * If you see a decrease in valid items (not matched by an increase in invalid items), perhaps you are no longer embedding structured data in your pages. Use the [ URL Inspection tool](https://support.google.com/webmasters/answer/9012289) to learn what is causing the issue.

###  Analyzing traffic periodically 

Analyze your Google Search traffic using the [Performance Report](https://support.google.com/webmasters/answer/7576553). The data will show you how often your page appears as a rich result in Search, how often users click on it and what is the average position you appear on search results. You can also automatically pull these results with the [Search Console API](/webmaster-tools/search-console-api-original/v3/how-tos/search_analytics). 

## Troubleshooting

If you're having trouble implementing or debugging structured data, here are some resources that may help you. 

  * If you're using a content management system (CMS) or someone else is taking care of your site, ask them to help you. Make sure to forward any Search Console message that details the issue to them.
  * Google does not guarantee that features that consume structured data will show up in search results. For a list of common reasons why Google may not show your content in a rich result, see the [General Structured Data Guidelines](/search/docs/appearance/structured-data/sd-policies).
  * You might have an error in your structured data. Check the [list of structured data errors](https://support.google.com/webmasters/answer/13300873) and the [Unparsable structured data report](https://support.google.com/webmasters/answer/9166415).
  * If you received a structured data manual action against your page, the structured data on the page will be ignored (although the page can still appear in Google Search results). To fix [structured data issues](https://support.google.com/webmasters/answer/9044175#zippy=%2Cstructured-data-issue), use the [Manual Actions report](https://support.google.com/webmasters/answer/9044175). 
  * Review the guidelines again to identify if your content isn't compliant with the guidelines. The problem can be caused by either spammy content or spammy markup usage. However, the issue may not be a syntax issue, and so the Rich Results Test won't be able to identify these issues. 
  **Troubleshoot missing rich results / drop in total rich results**.
  * Allow time for re-crawling and re-indexing. Remember that it may take several days after publishing a page for Google to find and crawl it. For general questions about crawling and indexing, check the [Google Search crawling and indexing FAQ](/search/help/crawling-index-faq). 
  * Post a question in the [Google Search Central forum](https://support.google.com/webmasters/community).

If your event isn't appearing in the event experience on Google or if you've received a manual action for [Spammy Structured Markup](https://support.google.com/webmasters/answer/3498001?&ref_topic=6003164) in Search Console, resolve the most common issues and review our guidelines. If you're still experiencing issues, check the [Event FAQ](https://support.google.com/webmasters/thread/10549347) or post in the [Google Search Central forum](https://support.google.com/webmasters/community).

Google does not guarantee that your structured data will show up in search results, even if your page is marked up correctly according to the [Rich Results Test](https://search.google.com/test/rich-results). For a list of common reasons why Google may not show your structured data in search results, see the [General Structured Data Guidelines](/search/docs/appearance/structured-data/sd-policies).

### Event location is missing or incorrect

error What caused the issue: Google doesn't understand the values provided for the `eventLocation`, `addressLocality`, or `addressRegion` properties. Google tries to match the location information to a physical location, and the location provided is either missing or incorrect. 

done Fix the issue

  1. Make sure the structured data includes values for `eventLocation`, `addressLocality`, or `addressRegion` (depending on the location, since not all of the location properties are applicable).
  2. Check that the `location.name` field uses the location name, or leave it blank if it does not have a name. A common issue is accidentally placing the event name in the `location.name` field.
  3. Validate the fix: 
    1. Open the [Rich Results Test](https://search.google.com/test/rich-results).
    2. Enter the event posting URL in the Fetch URL box.
    3. Click Validate.
    4. Click Preview. 

Success: The Rich Results Test displays the correct `eventLocation` in the Google Search Preview Tool.

Try again: The Rich Results Test displays "false" for the event location in the Google Search Preview Tool. Make sure the location is a real location. 

### My site isn't showing up as an option for purchasing tickets

error What caused the issue: The `offers.url` property is missing or doesn't meet the URL requirements.

done Fix the issue

  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](/search/docs/crawling-indexing/ask-google-to-recrawl).
  4. Submit a [request for (re)evaluation](https://docs.google.com/forms/d/e/1FAIpQLSeoRYNFmYPdoj81jJAl9wS_0RsU-y8b9rVjHgZ1hZzCFXJ8hw/viewform).

### Time or date is incorrect

error What caused the issue: The time or date is incorrect. Common errors include not offsetting for the time zone or specifying an incorrect start time (for example, midnight as a start time).

done Fix the issue

  1. Specify the correct local time offset. For example, if your event starts at 7pm in New York (UTC - 5) and ends at 9pm, then the value for `startDate` is `2019-08-15T19:00:00-05:00` and the value for `endDate` is `2019-08-15T21:00:00-05:00`. If you are unable to fill in the offset for your events, don't offset the time (for example, use `2019-08-15T19:00:00`).
  2. Make sure the start or end time is accurate. One common mistake is setting an event to start at midnight when the event doesn't actually start at midnight. If the event is a day long event, or the start hour hasn't been announced, only specify the day. For example: 

Recommended: `2019-07-20`

Not recommended: `2019-07-20T00:00:00`

Not recommended: `2019-08-15T00:00:01+00:00`

Not recommended: `2019-08-15T00:00:00+00:00`

Send feedback 

Except as otherwise noted, the content of this page is licensed under the [Creative Commons Attribution 4.0 License](https://creativecommons.org/licenses/by/4.0/), and code samples are licensed under the [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0). For details, see the [Google Developers Site Policies](https://developers.google.com/site-policies). Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-10 UTC.

Need to tell us more?  [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-12-10 UTC."],[],["To enhance event visibility on Google Search and Maps, implement structured data on event pages. This involves adding properties like `name`, `startDate`, `location` (physical or virtual), and `offers` in formats like JSON-LD. Follow Google's guidelines, validate the code using the Rich Results Test, and deploy with a sitemap for indexing. Ensure accurate descriptions, proper date/time formats with timezones, and use the correct `eventAttendanceMode` (online, offline, or mixed) and `eventStatus`. Correct errors in the Search console and address invalid structured data to ensure proper event markup.\n"]] 

  ** LinkedIn  **

Join us on LinkedIn

  ** YouTube  **

Watch our videos

  ** Blog  **

Subscribe to our RSS feed

  ** Podcast  **

Listen to Search Off the Record

  ** X (Twitter)  **

Join us on X (Twitter)

  * ### Get support

    ** Go to the help forum **
    ** Submit a question for office hours **
    ** Report spam, phishing, or malware **
    ** More support resources **
  * ### Resources

    ** Do you need an SEO? **
    ** SEO Starter Guide **
    ** Status of Search systems **
    ** Search Console documentation **
    ** Case Studies **
  * ### Tools

    ** Search Console **
    ** Rich Results Test **
    ** PageSpeed Insights **
    ** AMP Test **

[ ](https://developers.google.com/)

  ** Android **
  ** Chrome **
  ** Firebase **
  ** Google Cloud Platform **
  ** Google AI **
  ** All products **

  ** Terms **
  ** Privacy **
  * Manage cookies 

  * English
  * Deutsch
  * Español
  * Español – América Latina
  * Français
  * Indonesia
  * Italiano
  * Polski
  * Português – Brasil
  * Tiếng Việt
  * Türkçe
  * Русский
  * العربيّة
  * हिंदी
  * ภาษาไทย
  * 中文 – 简体
  * 中文 – 繁體
  * 日本語
  * 한국어
