Event Schema Markup für Rich Snippets in Google
Tech-SEO

Event Schema Markup: Veranstaltungen als Rich Snippets in Google anzeigen

Shift07 Team
16. April 2026
10 Min. Lesezeit
Tech-SEO

Wer Veranstaltungen auf seiner Website bewirbt — sei es ein Konzert, ein Workshop, ein Webinar oder ein lokales Stadtfest — hat mit Event Schema Markup einen mächtigen SEO-Hebel in der Hand. Google kann diese strukturierten Daten auswerten und die Veranstaltung direkt in den Suchergebnissen als Rich Snippet mit Datum, Ort und Ticket-Informationen anzeigen. Das erhöht die Sichtbarkeit erheblich und bringt qualifizierten Traffic auf deine Seite.

In diesem Artikel zeigen wir dir alles, was du über Event Schema Markup wissen musst: Welche Felder Google unterstützt, wie du gültige JSON-LD-Codes für verschiedene Veranstaltungstypen schreibst, und welche Fehler du unbedingt vermeiden solltest.

Was ist Event Schema Markup?

Event Schema Markup ist eine Form von strukturierten Daten, die auf dem Schema.org-Vokabular basiert. Mit dem Event-Typ teilst du Google mit, dass eine bestimmte Seite eine Veranstaltung beschreibt — komplett mit Zeitpunkt, Ort, Veranstalter und weiteren Details.

Google verwendet diese Informationen, um Event Rich Snippets zu generieren, die in den normalen Suchergebnissen erscheinen. Zusätzlich werden Events in der Google-Ereignissuche angezeigt — einem eigenen Bereich in Google Search, der bei veranstaltungsbezogenen Suchanfragen erscheint. Dort konkurrierst du nicht mit allen anderen Suchergebnissen, sondern direkt mit anderen Veranstaltungen — ein enormer Vorteil.

Welche Event-Typen unterstützt Google?

Schema.org definiert viele Untertypen von Event. Google erkennt und wertet folgende Typen als Rich Snippets aus:

  • Event — der generische Typ, funktioniert für fast alles
  • MusicEvent — Konzerte, Musikfestivals, Live-Auftritte
  • SportsEvent — Sportveranstaltungen und Turniere
  • TheaterEvent — Theater, Oper, Musicals
  • EducationEvent — Workshops, Seminare, Konferenzen
  • ExhibitionEvent — Ausstellungen, Messen
  • SaleEvent — Sonderverkäufe, Rabattaktionen
  • FoodEvent — Weinproben, Kochkurse, Galadinner
  • ChildrensEvent — Kinderveranstaltungen
  • ComedyEvent — Comedy-Shows, Kabarett
  • DanceEvent — Tanzveranstaltungen, Bälle
  • LiteraryEvent — Lesungen, Buchvorstellungen
  • VisualArtsEvent — Kunstausstellungen, Vernissagen

Wenn kein Untertyp passt, verwende einfach Event. Google verarbeitet das genauso zuverlässig.

Pflichtfelder und empfohlene Felder

Google unterscheidet zwischen Pflichtfeldern (ohne die kein Rich Snippet erscheint) und empfohlenen Feldern (die das Snippet bereichern).

Pflichtfelder

  • name — Der vollständige Name der Veranstaltung
  • startDate — Startdatum und -uhrzeit im ISO-8601-Format (2026-06-15T19:30:00+02:00)
  • location — Der Veranstaltungsort (Objekt mit name, address)

Empfohlene Felder

  • endDate — Enddatum und -uhrzeit
  • description — Beschreibung der Veranstaltung
  • image — URL eines Vorschaubildes (min. 720px breit, Verhältnis 16:9)
  • url — URL der Veranstaltungsseite
  • organizer — Veranstalter (Person oder Organisation)
  • offers — Ticket-Informationen (Preis, Verfügbarkeit)
  • performer — Auftretende Künstler oder Redner
  • eventStatus — Status der Veranstaltung (geplant, abgesagt, verschoben)
  • eventAttendanceMode — Online, Offline oder gemischt

Vollständiges Beispiel: Präsenz-Veranstaltung (Konzert)

Hier ist ein vollständiges JSON-LD-Beispiel für ein Konzert mit allen wichtigen Feldern:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MusicEvent",
  "name": "Sommerfestival 2026 — Live unter freiem Himmel",
  "description": "Das größte Open-Air-Festival der Region mit nationalen und internationalen Künstlern. 3 Bühnen, 12 Stunden Musik.",
  "image": "https://example.de/images/sommerfestival-2026.jpg",
  "url": "https://example.de/events/sommerfestival-2026",
  "startDate": "2026-06-20T14:00:00+02:00",
  "endDate": "2026-06-20T02:00:00+02:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Stadtpark Hannover",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Clausewitzstraße 1",
      "addressLocality": "Hannover",
      "postalCode": "30175",
      "addressCountry": "DE"
    }
  },
  "organizer": {
    "@type": "Organization",
    "name": "Kulturbüro Hannover GmbH",
    "url": "https://example.de"
  },
  "performer": [
    {
      "@type": "MusicGroup",
      "name": "The Cosmic Waves"
    },
    {
      "@type": "Person",
      "name": "Jana Schröder"
    }
  ],
  "offers": {
    "@type": "Offer",
    "name": "Early-Bird-Ticket",
    "price": "29.00",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-03-01T00:00:00+01:00",
    "url": "https://example.de/tickets/sommerfestival-2026"
  }
}
</script>

Online-Events und Hybrid-Veranstaltungen

Seit 2020 unterstützt Google auch Online-Events. Für reine Online-Veranstaltungen wie Webinare, Online-Workshops oder virtuelle Konferenzen verwendest du eventAttendanceMode: VirtualEventAttendanceMode und gibst statt eines physischen Ortes eine Online-Plattform an:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "EducationEvent",
  "name": "SEO-Grundlagen Webinar — Sichtbarkeit aufbauen 2026",
  "description": "In diesem 90-minütigen Webinar lernst du die wichtigsten SEO-Grundlagen und wie du deine Website bei Google sichtbarer machst.",
  "image": "https://example.de/images/seo-webinar.jpg",
  "url": "https://example.de/webinar/seo-grundlagen",
  "startDate": "2026-05-10T18:00:00+02:00",
  "endDate": "2026-05-10T19:30:00+02:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
  "location": {
    "@type": "VirtualLocation",
    "url": "https://zoom.us/j/1234567890"
  },
  "organizer": {
    "@type": "Organization",
    "name": "Shift07",
    "url": "https://shift07.ai"
  },
  "offers": {
    "@type": "Offer",
    "name": "Webinar-Ticket",
    "price": "0",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "url": "https://example.de/webinar/seo-grundlagen/anmelden"
  }
}
</script>

Für Hybrid-Events — also Veranstaltungen, die sowohl vor Ort als auch online stattfinden — nutze MixedEventAttendanceMode und gib beide Locations als Array an:

"eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
"location": [
  {
    "@type": "Place",
    "name": "Kongresszentrum Berlin",
    "address": { ... }
  },
  {
    "@type": "VirtualLocation",
    "url": "https://livestream.example.de"
  }
]

EventStatus: Geplant, Verschoben oder Abgesagt

Das Feld eventStatus ist besonders wichtig, wenn sich Veranstaltungen kurzfristig ändern. Google zeigt den Status im Rich Snippet an — "Abgesagt" oder "Verschoben" sind klare Signale für Nutzer und vermeiden Beschwerden. Die möglichen Werte:

  • https://schema.org/EventScheduled — Die Veranstaltung findet wie geplant statt
  • https://schema.org/EventCancelled — Die Veranstaltung ist abgesagt
  • https://schema.org/EventPostponed — Die Veranstaltung ist verschoben (kein neues Datum bekannt)
  • https://schema.org/EventRescheduled — Die Veranstaltung wurde auf ein neues Datum verlegt
  • https://schema.org/EventMovedOnline — Die Veranstaltung findet jetzt online statt

Bei EventRescheduled solltest du zusätzlich das Feld previousStartDate mit dem ursprünglichen Datum befüllen, damit Google den Wechsel korrekt verarbeiten kann.

Ticket-Informationen mit offers

Das offers-Feld ist eines der wertvollsten in Event Schema — Google zeigt Ticketpreise direkt in den Suchergebnissen an, was die Klickrate massiv erhöht. Du kannst sowohl ein einzelnes Angebot als auch mehrere Preiskategorien (Array) angeben:

"offers": [
  {
    "@type": "Offer",
    "name": "Frühlingsticket (Standardpreis)",
    "price": "49.00",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-04-01T00:00:00+02:00",
    "url": "https://example.de/tickets"
  },
  {
    "@type": "Offer",
    "name": "VIP-Ticket",
    "price": "149.00",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/LimitedAvailability",
    "validFrom": "2026-04-01T00:00:00+02:00",
    "url": "https://example.de/tickets/vip"
  }
]

Wichtige Availability-Werte für das availability-Feld:

  • https://schema.org/InStock — Tickets verfügbar
  • https://schema.org/LimitedAvailability — Wenige Tickets verbleibend
  • https://schema.org/SoldOut — Ausverkauft
  • https://schema.org/PreOrder — Vorverkauf

Mehrere Events auf einer Seite

Wenn du eine Übersichtsseite mit mehreren Veranstaltungen hast (z.B. eine Eventkalender-Seite), kannst du mehrere Event-Objekte in einem Array einbinden. Google verarbeitet jeden Eintrag separat:

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Event",
    "name": "Stadtfest Berlin — Eröffnungsabend",
    "startDate": "2026-07-01T18:00:00+02:00",
    "location": { "@type": "Place", "name": "Alexanderplatz Berlin", "address": { ... } }
  },
  {
    "@context": "https://schema.org",
    "@type": "Event",
    "name": "Stadtfest Berlin — Hauptprogramm",
    "startDate": "2026-07-02T10:00:00+02:00",
    "location": { "@type": "Place", "name": "Alexanderplatz Berlin", "address": { ... } }
  }
]
</script>

Typische Fehler bei Event Schema Markup

In unserer Analyse von 198 deutschen Unternehmens-Websites zeigen sich immer wieder die gleichen Fehler beim Einsatz von strukturierten Daten. Beim Event Schema sind es vor allem:

  • Falsches Datumsformat — Nur ISO-8601 ist gültig. "15.06.2026" funktioniert nicht. Richtig: 2026-06-15T19:30:00+02:00
  • Vergangenheitsdaten — Google indexiert keine Events, die bereits stattgefunden haben. Halte die Daten immer aktuell.
  • Fehlende Location — Ein Event ohne location gilt als unvollständig und erscheint nicht als Rich Snippet.
  • Inkonsistente Inhalte — Der Inhalt im Schema muss mit dem sichtbaren Seiteninhalt übereinstimmen. Ein Event das im Schema "kostenlos" ist, aber auf der Seite als kostenpflichtig beworben wird, verstößt gegen Googles Richtlinien.
  • Veraltete eventStatus-Werte — Wenn eine Veranstaltung abgesagt wurde, muss das Schema sofort aktualisiert werden. Vergisst du das, können verärgerte Nutzer deine Website besuchen und finden, dass das Event längst vorbei oder gecancelt ist.
  • Kein Bild angegeben — Ohne image zeigt Google möglicherweise keinen visuellen Rich Snippet.

Beispiel: Workshop mit mehreren Terminen

Viele Anbieter — Yoga-Studios, Bildungseinrichtungen, Coaches — bieten Kurse mit Wiederholungsterminen an. Hier gibt es zwei Ansätze:

Ansatz 1: Eigene Seite pro Termin

Erstelle für jeden Termin eine eigene URL und ein eigenes Event-Schema. Das ist sauberer und Google kann jeden Termin einzeln indexieren. Für wöchentliche Kurse kann das aufwendig sein, lohnt sich aber bei hochwertigen Veranstaltungen.

Ansatz 2: Wiederkehrendes Event mit mehreren offers

Alternativ kannst du ein Event mit dem nächsten Datum angeben und im description-Feld auf weitere Termine hinweisen. Füge außerdem mehrere offers-Einträge für verschiedene Termine hinzu:

{
  "@context": "https://schema.org",
  "@type": "EducationEvent",
  "name": "Yoga für Anfänger — 8-Wochen-Kurs",
  "description": "Unser Anfängerkurs startet jeden Monat neu. Nächste Termine: Mai, Juni und Juli 2026.",
  "startDate": "2026-05-04T09:00:00+02:00",
  "endDate": "2026-05-04T10:30:00+02:00",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": {
    "@type": "Place",
    "name": "Yoga Studio Mitte",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Lindenstraße 12",
      "addressLocality": "Berlin",
      "postalCode": "10969",
      "addressCountry": "DE"
    }
  },
  "offers": {
    "@type": "Offer",
    "price": "120.00",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "url": "https://example.de/yoga/anmelden"
  }
}

Wie du Event Schema Markup in deine Website einbindest

Am einfachsten ist es, das JSON-LD-Skript direkt in den <head>-Bereich deiner Event-Seite einzufügen. Das geht in praktisch jedem CMS:

WordPress

In WordPress kannst du das Schema entweder über ein Plugin wie "RankMath" oder "Yoast SEO" (Premium) automatisch generieren lassen, oder du fügst den Code manuell über das Theme-Customizer-Feld "Zusätzliches HTML" im Header ein. Für maximale Kontrolle empfehlen wir die manuelle Einbindung über einen Child-Theme-Hook oder ein Plugin wie "Head, Footer and Post Injections".

Statische Websites

Bei statischen Websites oder selbst entwickelten Seiten fügst du das <script type="application/ld+json">-Tag direkt in den <head>-Bereich jeder Event-Seite ein. Für Websites mit vielen Events empfiehlt sich eine Template-Engine, die das Schema dynamisch aus einer Datenbank befüllt.

Event Schema validieren

Bevor du das Event Schema live schaltest, solltest du es unbedingt validieren. Zwei kostenlose Tools helfen dabei:

  • Google Rich Results Test — Zeigt dir, ob dein Schema korrekt ist und ob ein Rich Snippet generiert wird. Tipp: Nutze unseren JSON-LD Structured Data Validator für eine schnelle Prüfung direkt im Browser.
  • Schema Markup Validator (validator.schema.org) — Prüft, ob das Schema dem Schema.org-Standard entspricht, unabhängig von Googles Anforderungen.

Achte auf folgende Punkte in der Validierung:

  • Keine Pflichtfelder dürfen fehlen (name, startDate, location)
  • Datumsformat muss ISO-8601 sein
  • URLs müssen vollständig und erreichbar sein
  • Preisangaben müssen als Dezimalzahl formatiert sein (49.00, nicht "49,00 €")

Zusammenfassung: Event Schema Markup Checkliste

Nutze diese Checkliste für jede neue Veranstaltungsseite:

  • ✅ Richtigen Event-Typ gewählt (Event, MusicEvent, EducationEvent, etc.)
  • name vollständig und aussagekräftig
  • startDate im ISO-8601-Format mit Zeitzone
  • location mit vollständiger Adresse (oder VirtualLocation für Online-Events)
  • eventStatus gesetzt (EventScheduled/EventCancelled/EventRescheduled)
  • eventAttendanceMode angegeben
  • image mit mindestens 720px Breite
  • offers mit Preis, Währung und Verfügbarkeit
  • organizer mit Name und URL
  • ✅ Schema stimmt mit sichtbarem Seiteninhalt überein
  • ✅ Validierung mit Google Rich Results Test bestanden

Wenn du alle diese Punkte beachtest, steht deinen Veranstaltungs-Rich-Snippets in Google nichts mehr im Wege. Die Klickrate auf Seiten mit Event-Rich-Snippets liegt erfahrungsgemäß deutlich über dem Durchschnitt — weil Nutzer sofort sehen, wann und wo die Veranstaltung stattfindet, ohne erst die Seite öffnen zu müssen.

Nutze außerdem unsere weiteren Artikel zur Schema-Markup-Serie: Strukturierte Daten für SEO, FAQPage Schema oder BreadcrumbList Schema — und erstelle dein Event-Schema mit unserem kostenlosen Schema Generator.

Teste deine Website jetzt kostenlos

Erhalte eine vollständige SEO-Analyse mit konkreten Verbesserungsvorschlägen.

Analyse starten