Schnittstelle für Entwickler
Alle veröffentlichten Veranstaltungen stehen als JSON, als Kalender (iCal), als RSS und als Einbett-Widget bereit. Kein Schlüssel, keine Anmeldung.
Endpunkte
| Aufruf | Liefert |
|---|---|
GET /api/events?date=JJJJ-MM-TT | Veranstaltungen eines Tages, einschließlich mehrtägiger, die den Tag berühren |
GET /api/events?from=JJJJ-MM-TT&to=JJJJ-MM-TT | Veranstaltungen eines Zeitraums (höchstens 731 Tage); ohne Angabe ab heute für ein Jahr |
GET /api/events/calendar?month=JJJJ-MM | Anzahl je Tag für eine Kalenderansicht, gleiche Filter möglich |
GET /api/events/{id} | Eine Veranstaltung mit vollständiger Beschreibung |
GET /feed/ical?… | Kalender-Abonnement (iCalendar), gleiche Filter, ohne Datum die kommenden 8 Wochen |
GET /feed/rss/{ort}, /feed/rss/{ort}/{kategorie} | RSS 2.0 je Ort, optional je Kategorie (Ort als Slug wie in /veranstaltungen/{ort}) |
GET /embed?… | Einbett-Widget als HTML für einen iframe, siehe Generator |
Antworten sind UTF-8; Zeiten sind in ISO 8601 mit Zeitzone (Europe/Berlin) angegeben. Die lesenden Endpunkte senden Access-Control-Allow-Origin: *, lassen sich also direkt aus dem Browser abrufen. Antworten der Liste und der Feeds dürfen eine Stunde zwischengespeichert werden.
Filterparameter
Alle Filter gelten gleichermaßen für /api/events, /api/events/calendar, /feed/ical und /embed. Mehrere Werte werden mit Komma getrennt.
| Parameter | Bedeutung |
|---|---|
date | Ein Tag, JJJJ-MM-TT. Hat Vorrang vor from/to. |
from, to | Zeitraum, beide einschließlich. Fehlt from, gilt heute; fehlt to, gilt ein Jahr ab from. |
category | Kategorien-Schlüssel, z. B. konzert,festival (Liste unten). |
country | Länder als ISO-Code, z. B. DE,NL. |
city | Ortsnamen, z. B. Meppen,Lingen; Groß-/Kleinschreibung egal, höchstens 20. |
q | Suchbegriffe, ODER-verknüpft, höchstens 10; jeder Begriff trifft Titel, Beschreibung, Ort, Stadt, Veranstalter oder Schlagworte. |
lat, lng, radius | Umkreis in Kilometern (bis 1000) um einen Mittelpunkt; nur Veranstaltungen mit Koordinaten, Antwort enthält distance_km. |
limit | Höchstzahl der Einträge, Standard 500, höchstens 2000. Die Antwort meldet in total die Gesamtzahl und in truncated, ob gekürzt wurde. |
Nur für /embed: days (Zeitraum ab heute in Tagen, bis 365), limit (bis 50), map=1 (kleine Karte), theme=dark, title (eigene Überschrift).
Beispiele
Konzerte und Festivals in Hamburg am Wochenende:
curl "https://eventsimple.de/api/events?from=2026-11-07&to=2026-11-08&city=Hamburg&category=konzert,festival"
Alles im Umkreis von 30 km um Meppen in den nächsten vier Wochen, aus JavaScript:
const to = new Date(Date.now() + 28 * 864e5).toISOString().slice(0, 10);
const res = await fetch(`https://eventsimple.de/api/events?lat=52.6906&lng=7.2910&radius=30&to=${to}`);
const { events, total } = await res.json();
events.forEach(e => console.log(e.date_label, e.title, e.city, e.distance_km + ' km'));
Kalender-Abonnement für Kabarett in Osnabrück (in Google, Apple oder Outlook „per URL abonnieren“):
https://eventsimple.de/feed/ical?city=Osnabr%C3%BCck&category=kabarett
Antwortformat
Die Liste liefert from, to, count, total, truncated, center (bei Umkreis) und events. Jede Veranstaltung hat diese Felder; description, external_id, researched_at und updated_at kommen nur beim Einzelabruf hinzu. detail_url ist relativ zu https://eventsimple.de.
{
"id": 2024,
"title": "Zehn Leben",
"excerpt": "Die Ausstellung von Delschad Numan Khorschid und Jan-Hendrik Pelz vermittelt künstlerische Perspektiven auf Flucht, Trauma und Migration in Gemälden, Fotografien, Texten und Skulpturen",
"category": "kunst",
"category_label": "Kunst & Ausstellung",
"category_color": "#0dcaf0",
"category_icon": "bi-palette",
"starts_at": "2026-05-15T00:00:00+02:00",
"ends_at": "2026-11-18T23:59:59+01:00",
"start_date": "2026-05-15",
"end_date": "2026-11-18",
"all_day": true,
"multi_day": true,
"date_label": "Fr., 15.05.2026 – Mi., 18.11.2026",
"time_label": "ganztägig",
"venue": "Museum Villa Stuck",
"street": "Prinzregentenstraße 60",
"postal_code": "81675",
"city": "München",
"country": "DE",
"address": "Prinzregentenstraße 60, 81675 München",
"latitude": 48.1404871,
"longitude": 11.5996612,
"has_coordinates": true,
"url": "https://www.muenchen.de/veranstaltungen/freizeit/ausstellung-museen/zehn-leben-villa-stuck",
"image_url": null,
"organizer": null,
"price": null,
"tags": [
"Ausstellung",
"Migration",
"Malerei"
],
"source": "Meldung",
"detail_url": "/veranstaltung/2024-zehn-leben",
"route_url": "https://www.openstreetmap.org/directions?to=48.1404871%2C11.5996612",
"distance_km": null,
"description": "Die Ausstellung von Delschad Numan Khorschid und Jan-Hendrik Pelz vermittelt künstlerische Perspektiven auf Flucht, Trauma und Migration in Gemälden, Fotografien, Texten und Skulpturen",
"external_id": "openclaw:villa-stuck-munich:zehn-leben",
"researched_at": "2026-10-24",
"updated_at": "2026-10-27T12:21:43+01:00"
}
Fehlerhafte Parameter beantwortet die API mit Status 400 und {"error": "…"}; unbekannte Veranstaltungen mit 404.
Kategorien und Länder
| Schlüssel | Kategorie |
|---|---|
konzert | Konzert & Musik |
festival | Festival |
party | Party & Nachtleben |
theater | Theater & Bühne |
kunst | Kunst & Ausstellung |
film | Film & Kino |
vortrag | Vortrag, Lesung & Workshop |
markt | Markt |
stadtfest | Stadt- & Volksfest |
sport | Sport |
familie | Familie & Kinder |
essen | Essen & Trinken |
messe | Messe & Business |
sonstiges | Sonstiges |
| Code | Land |
|---|---|
DE | Deutschland |
AT | Österreich |
CH | Schweiz |
NL | Niederlande |
BE | Belgien |
LU | Luxemburg |
FR | Frankreich |
DK | Dänemark |
PL | Polen |
CZ | Tschechien |
Feeds und Widget
- iCal:
/feed/icalmit beliebigen Filtern, abonnierbar in Kalender-Apps. Ganztägige Termine als Datumswerte, Termine mit Uhrzeit in UTC, Ort, Koordinaten und Link zur Detailseite sind enthalten. - RSS: je Ort unter
/feed/rss/{ort}, je Kategorie unter/feed/rss/{ort}/{kategorie}; die Adressen stehen auf jeder Ortsseite. - Widget: eine Zeile Skript oder ein iframe, Vorschau und Code im Generator. Das Widget setzt keine Cookies und lädt keine Analysedienste.
Nutzungsbedingungen
- Frei nutzbar, auch in kommerziellen Angeboten, ohne Schlüssel und ohne Gebühr.
- Nennung: Wo die Daten erscheinen, steht „Daten: Eventsimple“ mit Link auf eventsimple.de. Das Widget und die Feeds enthalten den Hinweis bereits.
- Faire Nutzung: höchstens eine Anfrage pro Sekunde, Antworten mindestens 15 Minuten zwischenspeichern, keine vollständigen Kopien des Bestands anlegen oder weiterverbreiten. Bei dauerhaft hoher Last sprechen wir dich an oder drosseln den Zugriff.
- Keine Gewähr: Die Daten stammen aus öffentlichen Quellen und werden automatisiert aufbereitet. Termine können sich ändern oder ausfallen; maßgeblich ist die Angabe des Veranstalters. Eventsimple haftet nicht für Fehler oder Ausfälle der Schnittstelle.
- Änderungen: Neue Felder kommen hinzu, bestehende Felder und Parameter bleiben erhalten; Abschaltungen kündigen wir hier an.
Ergänzend gelten die Nutzungsbedingungen von Eventsimple.
Fehlende Veranstaltungen und neue Quellen kannst du über die Seite Melden einreichen. Fragen und Wünsche: info@eventsimple.de. Betreiberin ist die Kursimple GmbH, siehe Impressum und Datenschutz.