Veranstaltungen
Endpunkte zum Verwalten deiner Veranstaltungen. Jede Anfrage benötigt einen gültigen API-Schlüssel.
Endpunkte im Überblick
| Methode & Pfad | Zweck |
|---|---|
GET /api/events | Alle eigenen Veranstaltungen auflisten |
POST /api/events | Veranstaltung anlegen |
GET /api/events/:id | Eine Veranstaltung inkl. Ausnahmen laden |
POST /api/events/:id/update-occurrence | Veranstaltung / Termin bearbeiten |
POST /api/events/:id/add-occurrence | Zusätzlichen Termin hinzufügen |
POST /api/events/:id/cancel-occurrence | Termin(e) absagen / reaktivieren |
POST /api/events/:id/delete-occurrence | Termin(e) löschen |
Veranstaltung anlegen
POST /api/events
curl -X POST https://eventfalcon.de/api/events \
-H "Authorization: Bearer ef_dein_schluessel" \
-H "Content-Type: application/json" \
-d '{
"title": "Sommerkonzert",
"location": "Rathausplatz, Düsseldorf",
"startDate": "2026-08-15",
"startTime": "19:30",
"visibility": "public"
}'
Antwort 201:
{ "data": { "id": 123 } }
Felder
| Feld | Typ | Beschreibung |
|---|---|---|
title | string | Erforderlich. Titel der Veranstaltung. |
description | string | Beschreibung. |
location | string | Adresse/Ort – wird automatisch geokodiert. |
allDay | boolean | true = ganztägig (ohne Uhrzeit). |
startDate | string | Erforderlich. YYYY-MM-DD. |
startTime | string | HH:MM. Erforderlich außer bei allDay. |
endDate / endTime | string | Optionales Ende. |
visibility | string | public, anbieter, subscribers oder hidden. |
categories | string | Liste gültiger Kategorie-Slugs. |
listId | number | ID einer eigenen Liste (siehe Listen). |
gender | string | gemischt, maennlich, weiblich, divers. |
ageFrom / ageTo | number | Altersangabe (0–120). |
presaleEnd | string | Vorverkaufsende YYYY-MM-DD. |
presaleTickets / tickets | object | Tickets: { name, preis, preisBis, url }. |
contactFirstName … contactWebsite | string | Ansprechpartner-Felder. |
recurrence | object | Wiederholung – siehe unten. |
Wiederholung (recurrence)
Für Serientermine. Weglassen für Einzeltermine.
{
"recurrence": {
"freq": "weekly",
"interval": 1,
"days": [1, 3],
"endType": "until",
"until": "2026-12-31"
}
}
| Feld | Beschreibung |
|---|---|
freq | daily, weekly, monthly, yearly. |
interval | Abstand (1–999), z. B. 2 = alle zwei Wochen. |
days | Wochentage 0–6 (0 = Sonntag) für daily/weekly/monthly. |
monthPos | Bei monthly: Position(en) 1–4 oder -1 (= letzte). |
endType | forever, count oder until. |
count | Anzahl Termine (bei endType: "count"). |
until | Enddatum YYYY-MM-DD (bei endType: "until"). |
Veranstaltungen auflisten
GET /api/events liefert alle eigenen Veranstaltungen samt aufgelöster Termine:
{ "data": { "events": [ { "id": 123, "title": "…", "occurrences": [ … ] } ] } }
Bearbeiten
POST /api/events/:id/update-occurrence
Der Body enthält dieselben Felder wie beim Anlegen, zusätzlich einen scope
und – außer bei scope: "all" – die occurrenceStart des betroffenen Termins
(YYYY-MM-DDTHH:MM:SS).
scope | Wirkung |
|---|---|
single | Nur dieser eine Termin. |
following | Dieser und alle folgenden Termine. |
all | Die gesamte Veranstaltung. |
curl -X POST https://eventfalcon.de/api/events/123/update-occurrence \
-H "Authorization: Bearer ef_dein_schluessel" \
-H "Content-Type: application/json" \
-d '{ "scope": "all", "title": "Sommerkonzert (Open Air)", "startDate": "2026-08-15", "startTime": "20:00" }'
Termin hinzufügen
POST /api/events/:id/add-occurrence fügt einer Veranstaltung einen weiteren
Termin hinzu. Der Body entspricht dem Anlegen (Datum/Uhrzeit + Felder).
Absagen (statt löschen)
Wenn ein Termin abgesagt wird, bleibt er erhalten – im Gegensatz zum Löschen.
Abonnent/innen erhalten dadurch in ihrem Kalender eine STATUS:CANCELLED-Aktualisierung
(der Termin verschwindet also nicht kommentarlos), und auf der Website wird er als
„Abgesagt" mit optionaler Begründung angezeigt. Nutze Löschen nur, um eine
Veranstaltung wirklich spurlos zu entfernen (z. B. Fehleingaben).
POST /api/events/:id/cancel-occurrence
curl -X POST https://eventfalcon.de/api/events/123/cancel-occurrence \
-H "Authorization: Bearer ef_dein_schluessel" \
-H "Content-Type: application/json" \
-d '{ "scope": "single", "occurrenceStart": "2026-08-22T19:30:00", "reason": "Wegen schlechten Wetters abgesagt" }'
| Feld | Beschreibung |
|---|---|
scope | single (nur dieser Termin), following (dieser + folgende) oder all (gesamte Veranstaltung). |
occurrenceStart | Bei single/following erforderlich (YYYY-MM-DDTHH:MM:SS). |
reason | Optionale Begründung (max. 500 Zeichen), die Abonnent/innen sehen. |
reactivate | true, um eine Absage rückgängig zu machen. |
Ein einzelner abgesagter Termin (scope: "single") eignet sich z. B., wenn ein
Termin einer Serie wegen schlechten Wetters ausfällt; all sagt die gesamte
Veranstaltung ab. Import-Schnittstellen legen Veranstaltungen an – Absagen erfolgen
anschließend über diesen Endpunkt.
Termin löschen
POST /api/events/:id/delete-occurrence
curl -X POST https://eventfalcon.de/api/events/123/delete-occurrence \
-H "Authorization: Bearer ef_dein_schluessel" \
-H "Content-Type: application/json" \
-d '{ "scope": "single", "occurrenceStart": "2026-08-22T19:30:00" }'
scope verhält sich wie beim Bearbeiten. Bei all wird die gesamte
Veranstaltung entfernt.