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.
- 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
- 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.
- Localize: add inLanguageand localized URLs when relevant; align with hreflang/canonicals.
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.
- For hybrid series, ensure both Place and VirtualLocation are represented consistently across subEvententries.
- If sessions move or cancel, update eventStatuson 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 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.
On-page parity checklist
- Series title on-page matches name; hero image matchesimageURL.
- Date range, cadence, and attendance mode in copy align with startDate/endDateandeventAttendanceMode.
- Organizer and venue details shown on-page match organizerandlocation.
- Upcoming sessions listed on-page correspond to subEventor 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/endDateeach season; updateeventSchedulewhen cadence shifts.
- Adjust subEventlist weekly as sessions publish or sell out; mark canceled sessions witheventStatus.
- Keep organizer/staff changes reflected in organizerand 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 eventAttendanceModeandlocationare present.
- Spot-check timezone handling in eventScheduleand individual EventstartDatevalues.
- 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 lastReviewedwhen cadence, organizer, or venue changes.
- If you publish calendars (ICS), confirm dates match eventScheduleand subEvent instances to avoid attendee confusion.
Required properties
name
Recommended properties
startDateendDateeventAttendanceModelocation.nameorganizer.namedescriptionimageeventSchedulesubEvent
{
"@context": "https://schema.org",
"@type": "EventSeries",
"name": "Weekly Tech Meetup",
"startDate": "2026-03-01",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode"
}