Free Event Series Schema Generator

Fill in the facts visible on your page, copy the Event Series JSON-LD, and validate it before you publish. The guide, examples, and FAQs are below the tool. Generate this schema with AI

Type to filter 121 supported schema types.

Schema workflow

Use only facts a visitor can verify on the page, then validate the JSON-LD before publishing.

Required

  • Visible Event Series content
  • Canonical page URL
  • Clear page owner/publisher
  • Fields that match the visible page

Recommended

  • A representative image when the schema supports it
  • SameAs or related links when visible
  • Validation before publishing

Avoid

  • Adding properties that are not visible
  • Copying example URLs into production
  • Skipping Google and Schema.org validation

Schema stacks

Use Event Series schema in a stack

Complete JSON-LD bundles that combine Event Series with the other types a real page needs. Browse all stacks

  • Event Series / Pass Stack

    Tour/season pages linking recurring events with FAQs and breadcrumb context. Great for festivals, tours, or multi-date passes.

  • Fitness Challenge Stack

    Fitness challenge pages with EventSeries + Offer context, FAQs, and breadcrumb navigation.

  • Festival Lineup Stack

    Festival lineup pages with EventSeries + ItemList + Event context, FAQs, and breadcrumbs.

Next step

Validate, repair, and publish clean structured data.

Check the generated JSON-LD against the visible page, then run both SwiftSchema and external validators before publishing.

Event Series Schema Generator — Summarize Recurring Events

Generate clean EventSeries JSON‑LD to describe recurring events with organizer, dates, location or online mode, and link to each Event occurrence.

Try the EventSeries Generator

Why many series pages underperform

  • The series page doesn’t clarify attendance mode or date span.
  • Organizer and location details are missing, reducing context.
  • Individual Event instances aren’t marked up or linked from the series page.
  • Manual JSON‑LD is inconsistent with the per‑event pages.

How SwiftSchema helps

The EventSeries generator captures the series‑level details: name, optional start/end dates, attendance mode, organizer, and location name.

Mark up each occurrence with Event JSON‑LD and link them from the series page to create a cohesive structure that is easy to navigate and understand.

How it works

  1. 01

    Choose EventSeries in the generator below.

  2. 02

    Enter the series name and optional date span (startDate/endDate).

  3. 03

    Set attendance mode (online/offline/mixed) and include organizer and location name when applicable.

  4. 04

    Create separate Event pages/sections for each occurrence and link them from the series page.

  5. 05

    Copy JSON or Script, paste on the series page, and validate in the Rich Results Test.

Ready to build the markup?

Paste once per series. Validate. Ship.

Generate EventSeries JSON‑LD

What is EventSeries structured data?

EventSeries describes recurring or ongoing event programs (weekly meetups, lecture series, monthly webinars). It provides umbrella metadata (name, schedule span, attendance mode, organizer, location) while individual sessions use Event schema. Search engines use it to identify the overarching series, cluster related events, and understand recurrence patterns.

Essential properties

  1. name — official series title.
  2. startDate / endDate — optional span covering the series’ run (season, year).
  3. eventAttendanceMode — OnlineEventAttendanceMode, OfflineEventAttendanceMode, or MixedEventAttendanceMode.
  4. location — Place or VirtualLocation representing the default venue/platform.
  5. organizer — Person or Organization responsible for the series.
  6. description — summary describing the series theme and cadences.
  7. image — hero image or promotional graphic.
  8. eventSchedule — optional Schedule with recurrence rules.
  9. subEvent — list of Event objects representing upcoming occurrences.
  10. inLanguage — specify locale for localized series pages.

Content prep checklist

  • Publish a landing page describing the series theme, target audience, cadence, and registration info.
  • List upcoming occurrences (date/time) with links to detail pages.
  • Clarify whether sessions are free/paid, online/in-person, and provide registration CTA.
  • Introduce organizers/instructors and highlight notable guests.
  • Provide archive links to past sessions or recordings if available.
  • Note schedule patterns (every Thursday at 5 PM, monthly on first Tuesday) and holidays/exceptions in content; match them in eventSchedule.

Implementation workflow

  1. Update the series landing page with the information above.
  2. Generate EventSeries JSON‑LD with series-level data (name, description, attendance mode, organizer, location, span).
  3. List upcoming events in subEvent or via Event links; each occurrence should have its own Event schema (EducationEvent, MusicEvent, etc.).
  4. Include eventSchedule when sessions recur on a predictable cadence (weekly, monthly).
  5. Embed the EventSeries schema on the landing page; ensure you also include Event schema for the current occurrence on the relevant page.
  6. Validate via Rich Results Test; fix warnings about missing organizer or location.
  7. Localize: add inLanguage and localized URLs when relevant; align with hreflang/canonicals.

Linking EventSeries and Event schema

  • Each Event should reference the series via superEvent.
  • EventSeries can list subEvent entries or simply link to the detail pages.
  • Keep start/end dates in sync; update the series’ endDate when the season wraps.
  • For hybrid series, ensure both Place and VirtualLocation are represented consistently across subEvent entries.
  • If sessions move or cancel, update eventStatus on affected Event entries and adjust the series page copy.

Troubleshooting checklist

  • Missing organizer/location: include these to build trust and clarity.
  • Confusing attendance mode: set eventAttendanceMode and clarify in the content if sessions alternate formats.
  • No linked events: make sure each occurrence has Event schema and is linked from the series page.
  • Stale schedules: update startDate/endDate annually or per season.
  • Duplicate schema: avoid embedding both EventSeries and Event for the same data block unless you differentiate series vs occurrence clearly.

On-page parity checklist

  • Series title on-page matches name; hero image matches image URL.
  • Date range, cadence, and attendance mode in copy align with startDate/endDate and eventAttendanceMode.
  • Organizer and venue details shown on-page match organizer and location.
  • Upcoming sessions listed on-page correspond to subEvent or linked Event pages.
  • Registration/CTA links in content resolve and match any URLs shown in schema.

Content depth (avoid thin series pages)

  • Add session highlights, speaker bios, and value props for attendees.
  • Publish FAQs on access (recordings, slides), pricing, and cancellation.
  • Include accessibility details (captions, wheelchair access, language availability).
  • Share past-session recaps or recordings to show continuity and credibility.
  • Provide a simple calendar download (ICS) and align it with eventSchedule.

Maintenance and governance

  • Refresh startDate/endDate each season; update eventSchedule when cadence shifts.
  • Adjust subEvent list weekly as sessions publish or sell out; mark canceled sessions with eventStatus.
  • Keep organizer/staff changes reflected in organizer and on-page bios.
  • Log schema validation results after each update; track diffs for compliance reviews.

Validation and QA

  • Validate with Rich Results Test and Schema Markup Validator; confirm eventAttendanceMode and location are present.
  • Spot-check timezone handling in eventSchedule and individual Event startDate values.
  • Ensure only one EventSeries block exists per landing page; keep Events on their respective detail pages.
  • Inspect structured data in Search Console (Events) for crawling/processing errors.
  • Keep a recurring update log for series seasons; update lastReviewed when cadence, organizer, or venue changes.
  • If you publish calendars (ICS), confirm dates match eventSchedule and subEvent instances to avoid attendee confusion.

Required properties

  • name

Recommended properties

  • startDate
  • endDate
  • eventAttendanceMode
  • location.name
  • organizer.name
  • description
  • image
  • eventSchedule
  • subEvent
Minimal JSON-LD
Validate
{
  "@context": "https://schema.org",
  "@type": "EventSeries",
  "name": "Weekly Tech Meetup",
  "startDate": "2026-03-01",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode"
}
EventSeries with schedule, organizer, and sub-events
Validate
{
  "@context": "https://schema.org",
  "@type": "EventSeries",
  "name": "Weekly Tech Meetup",
  "description": "Weekly talks on engineering practices and product delivery.",
  "startDate": "2026-03-01",
  "endDate": "2026-12-15",
  "eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Tech Hub",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "99 Campus Blvd",
      "addressLocality": "Austin",
      "addressRegion": "TX",
      "postalCode": "78701",
      "addressCountry": "US"
    }
  },
  "organizer": {
    "@type": "Organization",
    "name": "Tech Community"
  },
  "image": "https://example.com/images/weekly-tech-meetup-hero.webp",
  "eventSchedule": {
    "@type": "Schedule",
    "repeatFrequency": "P1W",
    "byDay": "Thursday",
    "startTime": "17:00",
    "endTime": "18:30",
    "scheduleTimezone": "America/Chicago"
  },
  "subEvent": [
    {
      "@type": "Event",
      "name": "Scaling backend services",
      "startDate": "2026-03-07T17:00:00-06:00",
      "endDate": "2026-03-07T18:30:00-06:00",
      "superEvent": "https://example.com/events/weekly-tech-meetup",
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "name": "Tech Hub"
      }
    },
    {
      "@type": "Event",
      "name": "Building resilient frontends",
      "startDate": "2026-03-14T17:00:00-05:00",
      "endDate": "2026-03-14T18:30:00-05:00",
      "superEvent": "https://example.com/events/weekly-tech-meetup",
      "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
      "location": {
        "@type": "VirtualLocation",
        "url": "https://example.com/live"
      }
    }
  ]
}

FAQs

Do I still mark up individual events?Show

Yes, include Event for each instance and link from the series page.

Online series?Show

Use OnlineEventAttendanceMode and include registration URL on page.

Related types

Browse all schema types

References