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.
Why many series pages underperform
Pain points we solve
- 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
Solution
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
How it works
- Choose EventSeries in the generator below.
- Enter the series name and optional date span (startDate/endDate).
- Set attendance mode (online/offline/mixed) and include organizer and location name when applicable.
- Create separate Event pages/sections for each occurrence and link them from the series page.
- Copy JSON or Script, paste on the series page, and validate in the Rich Results Test.
Paste once per series. Validate. Ship.
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
- name— official series title.
- startDate/endDate— optional span covering the series’ run (season, year).
- eventAttendanceMode—OnlineEventAttendanceMode,OfflineEventAttendanceMode, orMixedEventAttendanceMode.
- location—PlaceorVirtualLocationrepresenting the default venue/platform.
- organizer— Person or Organization responsible for the series.
- description— summary describing the series theme and cadences.
- image— hero image or promotional graphic.
- eventSchedule— optionalSchedulewith recurrence rules.
- subEvent— list of Event objects representing upcoming occurrences.
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.
Implementation workflow
- Update the series landing page with the information above.
- Generate EventSeries JSON‑LD with series-level data (name, description, attendance mode, organizer, location, span).
- List upcoming events in subEventor via Event links; each occurrence should have its own Event schema (EducationEvent, MusicEvent, etc.).
- Include eventSchedulewhen sessions recur on a predictable cadence (weekly, monthly).
- Embed the EventSeries schema on the landing page; ensure you also include Event schema for the current occurrence on the relevant page.
- Validate via Rich Results Test; fix warnings about missing organizer or location.
Linking EventSeries and Event schema
- Each Event should reference the series via superEvent.
- EventSeries can list subEvententries or simply link to the detail pages.
- Keep start/end dates in sync; update the series’ endDatewhen the season wraps.
Troubleshooting checklist
- Missing organizer/location: include these to build trust and clarity.
- Confusing attendance mode: set eventAttendanceModeand 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/endDateannually or per season.
- Duplicate schema: avoid embedding both EventSeries and Event for the same data block unless you differentiate series vs occurrence clearly.
Required properties
name
Recommended properties
startDateendDateeventAttendanceModelocation.nameorganizer.name
{
"@context": "https://schema.org",
"@type": "EventSeries",
"name": "Weekly Tech Meetup",
"startDate": "2026-03-01",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode"
}