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

AufrufLiefert
GET /api/events?date=JJJJ-MM-TTVeranstaltungen eines Tages, einschließlich mehrtägiger, die den Tag berühren
GET /api/events?from=JJJJ-MM-TT&to=JJJJ-MM-TTVeranstaltungen eines Zeitraums (höchstens 731 Tage); ohne Angabe ab heute für ein Jahr
GET /api/events/calendar?month=JJJJ-MMAnzahl 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.

ParameterBedeutung
dateEin Tag, JJJJ-MM-TT. Hat Vorrang vor from/to.
from, toZeitraum, beide einschließlich. Fehlt from, gilt heute; fehlt to, gilt ein Jahr ab from.
categoryKategorien-Schlüssel, z. B. konzert,festival (Liste unten).
countryLänder als ISO-Code, z. B. DE,NL.
cityOrtsnamen, z. B. Meppen,Lingen; Groß-/Kleinschreibung egal, höchstens 20.
qSuchbegriffe, ODER-verknüpft, höchstens 10; jeder Begriff trifft Titel, Beschreibung, Ort, Stadt, Veranstalter oder Schlagworte.
lat, lng, radiusUmkreis in Kilometern (bis 1000) um einen Mittelpunkt; nur Veranstaltungen mit Koordinaten, Antwort enthält distance_km.
limitHö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üsselKategorie
konzertKonzert & Musik
festivalFestival
partyParty & Nachtleben
theaterTheater & Bühne
kunstKunst & Ausstellung
filmFilm & Kino
vortragVortrag, Lesung & Workshop
marktMarkt
stadtfestStadt- & Volksfest
sportSport
familieFamilie & Kinder
essenEssen & Trinken
messeMesse & Business
sonstigesSonstiges
CodeLand
DEDeutschland
ATÖsterreich
CHSchweiz
NLNiederlande
BEBelgien
LULuxemburg
FRFrankreich
DKDänemark
PLPolen
CZTschechien

Feeds und Widget

Nutzungsbedingungen

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.