Zurück zu den API-Schlüsseln

Veranstaltungen

Endpunkte zum Verwalten deiner Veranstaltungen. Jede Anfrage benötigt einen gültigen API-Schlüssel.

Endpunkte im Überblick

Methode & PfadZweck
GET /api/eventsAlle eigenen Veranstaltungen auflisten
POST /api/eventsVeranstaltung anlegen
GET /api/events/:idEine Veranstaltung inkl. Ausnahmen laden
POST /api/events/:id/update-occurrenceVeranstaltung / Termin bearbeiten
POST /api/events/:id/add-occurrenceZusätzlichen Termin hinzufügen
POST /api/events/:id/cancel-occurrenceTermin(e) absagen / reaktivieren
POST /api/events/:id/delete-occurrenceTermin(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

FeldTypBeschreibung
titlestringErforderlich. Titel der Veranstaltung.
descriptionstringBeschreibung.
locationstringAdresse/Ort – wird automatisch geokodiert.
allDaybooleantrue = ganztägig (ohne Uhrzeit).
startDatestringErforderlich. YYYY-MM-DD.
startTimestringHH:MM. Erforderlich außer bei allDay.
endDate / endTimestringOptionales Ende.
visibilitystringpublic, anbieter, subscribers oder hidden.
categoriesstringListe gültiger Kategorie-Slugs.
listIdnumberID einer eigenen Liste (siehe Listen).
genderstringgemischt, maennlich, weiblich, divers.
ageFrom / ageTonumberAltersangabe (0–120).
presaleEndstringVorverkaufsende YYYY-MM-DD.
presaleTickets / ticketsobjectTickets: { name, preis, preisBis, url }.
contactFirstNamecontactWebsitestringAnsprechpartner-Felder.
recurrenceobjectWiederholung – 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"
  }
}
FeldBeschreibung
freqdaily, weekly, monthly, yearly.
intervalAbstand (1–999), z. B. 2 = alle zwei Wochen.
daysWochentage 06 (0 = Sonntag) für daily/weekly/monthly.
monthPosBei monthly: Position(en) 14 oder -1 (= letzte).
endTypeforever, count oder until.
countAnzahl Termine (bei endType: "count").
untilEnddatum 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).

scopeWirkung
singleNur dieser eine Termin.
followingDieser und alle folgenden Termine.
allDie 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" }'
FeldBeschreibung
scopesingle (nur dieser Termin), following (dieser + folgende) oder all (gesamte Veranstaltung).
occurrenceStartBei single/following erforderlich (YYYY-MM-DDTHH:MM:SS).
reasonOptionale Begründung (max. 500 Zeichen), die Abonnent/innen sehen.
reactivatetrue, 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.