How to use event schema for multiple dates

Event Schema is a type of structured data that provides search engines with detailed information about events. This includes details such as the event name, date, location, and ticket availability.

By using Event Schema, you enhance the way your events appear in search results, potentially leading to higher click-through rates and better attendance.

What if you have events that occur on multiple dates?

If your event lasts several days, specify both the start and end dates. For recurring events with separate tickets on different days, create a separate Event item for each performance.

Note: Event schema is only available for selected regions, don’t forget check if your target country is eligible for it.

Scenario 1: Multi-Day event

If you have an event that occurs across multiple days, then use both the start and end date to cover the whole event period. This can include events like conferences, festivals, or workshops, which may have activities and sessions spread over several days.

Let’s take a look at the schema from a Conference listed on EventBrite:

Schema markup for multiple-day event

The Conference is considered as a single event that happens between October 3rd to 4th. Using one single markup helps search engines understand that the event is continuous over the specified period.

Example for multi-day event

Let’s say we want to create an Event structured data for brightonSEO.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "brightonSEO Conference 2025",
  "description": "brightonSEO is a search marketing conference and series of training courses designed to help search marketers meet, learn, and do their jobs a little better.",
  "startDate": "2025-04-10T09:00",
  "endDate": "2025-04-11T17:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Brighton Centre",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Kings Road",
      "addressLocality": "Brighton",
      "addressRegion": "East Sussex",
      "postalCode": "BN1 2GR",
      "addressCountry": "GB"
    }
  },
  "image": "https://brightonseo.com/assets/images/brightonseo-conference.jpg",
  "organizer": {
    "@type": "Organization",
    "name": "Rough Agenda",
    "url": "https://brightonseo.com/"
  }
}
</script>


If your event includes multiple talks, sessions, or workshops, and each has its own dedicated page with detailed information, you can add subEvent property to provide additional information.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "brightonSEO Conference 2025",
  "description": "brightonSEO is a search marketing conference and series of training courses designed to help search marketers meet, learn, and do their jobs a little better.",
  "startDate": "2025-04-10T09:00",
  "endDate": "2025-04-11T17:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Brighton Centre",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Kings Road",
      "addressLocality": "Brighton",
      "addressRegion": "East Sussex",
      "postalCode": "BN1 2GR",
      "addressCountry": "GB"
    }
  },
  "image": "https://brightonseo.com/assets/images/brightonseo-conference.jpg",
  "organizer": {
    "@type": "Organization",
    "name": "Rough Agenda",
    "url": "https://brightonseo.com/"
  },
  "subEvent": {
    "@type": "Event",
    "name": "Advanced SEO Techniques with .htaccess",
    "description": "Learn advanced SEO techniques using .htaccess to optimize server performance and SEO outcomes.",
    "startDate": "2025-04-10T14:00",
    "endDate": "2025-04-10T15:00",
    "location": {
      "@type": "Place",
      "name": "Auditorium 1 - Brighton Centre",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "Kings Road",
        "addressLocality": "Brighton",
        "addressRegion": "East Sussex",
        "postalCode": "BN1 2GR",
        "addressCountry": "GB"
      }
    },
    "url": "https://brightonseo.com/talks/advanced-seo-techniques-with-htaccess",
    "eventStatus": "https://schema.org/EventScheduled"
  }
}
</script>

Scenario 2: Recurring event

When dealing with recurring events where each occurrence requires a separate ticket, such as weekly theatre shows or monthly concerts, it’s essential to create individual Event schema markup for each date

This ensures that each event instance is indexed separately, providing clear and precise information to potential attendees. 

Here’s an the schema from London Theatre Direct:

Markup each event with individual schema

As you can see from the screenshot, each event has an individual Event markup with its own start date and end date. Even though you can book the ticket for Moulin Rouge through 16 November 2024, they didn’t create a schema that ends on 16 November. 

Instead, what you will see on the same event page, you can see multiple different event structured data are used for each performance:

Use multiple structured data for different dates

Pro Tips:
Schema.org has a eventSchedule property that allows you to create a schedule for repeating events. However, Google currently does not support it at the time of writing.

Conclusion

Using Event schema for multiple dates depends on how your events are scheduled and ticketed. 

By structuring your schema markup accurately and keeping it updated, you can improve your event’s visibility, drive more traffic to your site, and increase attendance rates.

Aubrey Yung

Aubrey Yung

Aubrey is an SEO Consultant with 5+ years of B2B and B2C marketing experience.