In short. Use one Event with startDate and endDate for a continuous multi-day event, and use separate Event objects for distinct performances.
Definition: A continuous multi-day event is represented as one
EventwithstartDateset to the beginning of the event andendDateset to its ending date or time. Google recommends publishing both values, using date-only values when the hours are unknown and date-time values with a UTC offset when the hours are known.
Key facts
- Google's Event structured data documentation, updated 8 September 2026, says an event running over several days must include both its start and end dates.
- The same Google documentation gives
2019-07-01and2019-07-26as a recommended date-only range when the event time is unknown. - Schema.org's
Eventtype defines bothstartDateandendDateas acceptingDateorDateTimevalues in ISO 8601 date format. - Google interprets a date-only
endDateas the time when the event ends at its location during that date, regardless of timezone. - When separate performances have individual tickets, Google asks for a separate
Eventelement for each performance.
How do startDate and endDate describe one continuous event?
Google's Event guidance treats a multi-day event as one event when the same event runs across several days. The markup carries the opening date in startDate and the closing date in endDate. A date-only value identifies the calendar date in the event's location. In Google's interpretation, 2019-07-10 in startDate means that the event starts sometime on that date, while the same value in endDate means that it ends sometime on that date.
This model describes a continuous event such as a festival whose published information covers one occurrence. Schema.org defines an Event as something happening at a particular time and location, and says that repeated events may be represented as separate Event objects. The separate-object approach applies when the dates represent distinct occurrences rather than the opening and closing points of one occurrence.
Which date format should the markup use?
The choice depends on the precision available in the event information. For a multi-day event where the hours are unknown, Google's recommended form contains only the two calendar dates:
"startDate": "2019-07-01",
"endDate": "2019-07-26"
When the start and end hours are known, Google shows date-time values with a UTC offset, such as 2019-07-01T10:00:00-05:00 and 2019-07-26T17:00:00-05:00. Its guidance says to include the UTC or GMT offset. If no timezone is supplied, Google uses the timezone of the event's location. Schema.org describes the corresponding properties using ISO 8601 date format, so the two values should use the same representation.
A date-only value is different from a midnight timestamp. Google says that 2019-07-20T00:00:00 means midnight in the event's local timezone and is likely wrong unless the event begins at midnight. For a day-long event, the documentation allows the same date in both properties.
When should separate Event objects be used?
Separate objects represent separate performances across different days when each performance has its own ticket. Google's Event requirements also say that each event needs a unique leaf-page URL with markup on that URL, and that the event page should focus on a single event. The markup for the performances therefore identifies each distinct event rather than treating the whole schedule as one continuous occurrence.
Schema.org also provides Schedule for a repeating series. Its Event definition says an Event associated with a Schedule should not carry startDate or endDate; those values belong in the associated Schedule. That is a separate data model from a single multi-day occurrence with a known opening and closing date.
How can the implementation be checked?
Google recommends the Rich Results Test for validation and the URL Inspection tool for checking how Google sees the page. The Event documentation also lists location and name as required properties for eligibility and says the event page must be accessible to Google. The visible page should describe the same event and dates as the markup.
Related terms
- Structured data
- JSON-LD
- How do I mark a postponed event in structured data?
- How do I mark a cancelled event in structured data?
- How do I mark an online event's attendance mode and location?
FAQ
Should you set endDate to the day after the event?
No. For a date-only range, use the date on which the event ends. Google says a date used in endDate means that the event ends at its location sometime during that date, and its example ends with 2019-07-26.
What should you publish when the hours are unknown?
Use the calendar dates without a fabricated midnight or end-of-day time. Google's multi-day example uses 2019-07-01 and 2019-07-26, and its guidance says not to indicate the time when it is unknown.
Does each day of a continuous event need its own Event?
No. You can use one Event with both boundary values when the event runs continuously across the date range. Use separate objects when the days are distinct performances with individual tickets.
Sources
- Google Search Central, "Event (
Event) structured data", 8 September 2026 - Schema.org, "Event", 16 September 2026
Check how a page reads to answer engines. Open the GEO score analyzer