Veranstaltungen auf der eigenen Website zeigen (Event-Feed)

Du kannst einzelne Veranstaltungen für einen öffentlichen, key-losen JSON-Feed freigeben und damit deinen eigenen Website-Kalender aus Univents speisen — inklusive Ab-Preis und Ausverkauft-Hinweis.

Willst du deine Veranstaltungen zusätzlich auf deiner eigenen Website zeigen — im eigenen Design, nicht als eingebettete Univents-Seite —, kannst du dafür einzelne Events freigeben. Univents liefert sie dann über einen öffentlichen, schreibgeschützten Feed aus, den deine Website (oder die deiner Agentur) abrufen und selbst darstellen kann.

Eine Veranstaltung auf der Website zeigen

Die Freigabe passiert direkt am Event, nicht zentral an einer Stelle:

  1. Öffne die gewünschte Veranstaltung.
  2. Klicke in der Kopfzeile der Detailansicht auf den Schalter Auf Website zeigen.
  3. Univents speichert die Änderung sofort und bestätigt mit einer kurzen Meldung.

Ist der Schalter aktiv, taucht die Veranstaltung innerhalb weniger Minuten im Feed auf. Schaltest du sie wieder aus oder löschst du die Veranstaltung, verschwindet sie ebenso automatisch wieder daraus. Der Schalter wirkt nur auf diese eine Veranstaltung — es gibt keine Sammel-Freigabe für alle Events auf einmal.

Was im Feed steht

Der Feed liefert ausschließlich Angaben, die für eine öffentliche Kalenderdarstellung gedacht sind: Titel, Beschreibung, Start- und Endzeit, ob das Datum bereits final ist, Veranstaltungsort, Titelbild, Tags, einen Link zum Ticketverkauf (falls die Veranstaltung eine Ticket-Buchungsseite hat) sowie den günstigsten noch verfügbaren Ticketpreis und einen Ausverkauft-Hinweis. Interne Angaben wie Budget, Gästezahl, Notizen, Kontaktdaten, Status oder Finanzdaten stehen nie im Feed, unabhängig davon, ob die Veranstaltung öffentlich geschaltet ist. Auch Kontingente, Kategorienamen und Verkaufszahlen bleiben drinnen — nach außen geht nur der Preis und die Information „ausverkauft ja/nein“.

Ab-Preis und Ausverkauft

Verkaufst du Tickets über Univents, liefert der Feed zwei zusätzliche Angaben, aus denen deine Website ein „ab 25 €“ und ein „Ausverkauft“ bauen kann:

  • price_from — der günstigste Ticketpreis, den ein Besucher gerade noch kaufen kann, als Brutto-Betrag (also das, was im Ticketshop an der Kategorie steht). Ist deine günstigste Kategorie vergriffen, rückt automatisch die nächstteurere nach. So verspricht die Website nie einen Preis, den es im Shop nicht mehr gibt.
  • price_from_currency — die Währung deines Workspace als Kürzel, z. B. EUR oder CHF.
  • tickets_sold_outtrue, sobald keine Ticketkategorie mehr kaufbar ist. Solange irgendeine Kategorie noch Tickets hat, bleibt der Wert false, auch wenn einzelne Kategorien schon voll sind.

Ist alles ausverkauft, ist price_from leer (null) — ein „ab“-Preis neben „Ausverkauft“ würde zu einem Kauf einladen, den es nicht gibt. Eine Veranstaltung ohne Ticketverkauf liefert price_from: null und tickets_sold_out: false: Sie verkauft nichts, also ist sie auch nicht ausverkauft.

Stornierst du ein Ticket, wird der Platz sofort wieder frei — die Kategorie ist dann wieder kaufbar und taucht wieder im „ab“-Preis auf. Weil der Feed kurz zwischengespeichert wird, kann eine gerade ausverkaufte Veranstaltung auf deiner Website noch ein paar Minuten als verfügbar erscheinen.

Bild und Beschreibung: Veranstaltung, nicht Ticketseite

Für den Website-Kalender zählen Bild und Beschreibung der Veranstaltung selbst — also das, was du in der Veranstaltung unter Darstellung pflegst. Bild und Beschreibung einer Buchungs- oder Ticketseite gehören zu dieser Seite und wandern nicht automatisch in den Website-Kalender. Beides ist Absicht: Viele Betriebe zeigen im Ticketshop bewusst ein anderes Motiv als im Kalender der eigenen Website.

Wenn du beides gleich haben willst, musst du das einmal sagen:

  1. Öffne die Buchungs- bzw. Ticketseite und dort den Abschnitt Details.
  2. Unter Bild und Beschreibung findest du den Hinweis samt Schaltfläche Auch für den Website-Kalender übernehmen.
  3. Bestätige die Rückfrage. Bild und Beschreibung der Seite werden dann in die verknüpfte Veranstaltung übertragen; die dort bisher hinterlegten Angaben werden überschrieben.

Die Schaltfläche erscheint nur, wenn die Seite mit einer Veranstaltung verknüpft ist (bei Ticketseiten ist das immer der Fall). Übernommen wird der zuletzt gespeicherte Stand der Seite, und Felder, die auf der Seite leer sind, bleiben an der Veranstaltung unverändert — eine leere Seite löscht dir also nie ein Bild. Bis die Änderung im Website-Kalender ankommt, können ein paar Minuten vergehen, weil der Feed kurz zwischengespeichert wird.

Den Feed abrufen

Der Feed ist öffentlich und ohne Anmeldung oder API-Key abrufbar — eine Website oder ein externes Tool kann ihn direkt per fetch laden:

GET https://univents.app/api/public/dein-workspace/events
GET https://univents.app/api/public/dein-workspace/events/{eventId}

dein-workspace ist der Slug deines Workspaces, den du auch in der Adresszeile deines Rechners hinter /home/ findest. Über die Parameter from und to grenzt du den Zeitraum ein, über limit die Anzahl der Ergebnisse (Standard 50, maximal 100). limit ist auf drei Stufen gerastert — 25, 50 oder 100 —, damit der Cache mit wenigen Antworten auskommt: Ein angefragter Wert wird immer auf die nächsthöhere Stufe aufgerundet, z. B. liefert ?limit=10 genauso 25 Einträge wie ?limit=25, und alles über 100 wird auf 100 gedeckelt. Ohne Angabe liefert der Feed alle freigegebenen Veranstaltungen ab heute.

Eine Beispielantwort sieht so aus:

{
  "workspace": "dein-workspace",
  "count": 2,
  "events": [
    {
      "id": "…",
      "title": "Sommerkonzert",
      "description": "…",
      "start": "2026-08-20T18:00:00Z",
      "end": "2026-08-20T23:00:00Z",
      "date_is_confirmed": true,
      "venue": "Großer Saal",
      "image_url": "https://…",
      "tags": ["Konzert"],
      "ticket_url": "https://univents.app/book/dein-workspace/deine-seite",
      "price_from": 25,
      "price_from_currency": "EUR",
      "tickets_sold_out": false,
      "updated_at": "2026-08-05T09:00:00Z"
    }
  ]
}

Für Entwickler und Agenturen

Der Feed ist bewusst so gebaut, dass er sich direkt in eine bestehende Website integrieren lässt, ohne Zugangsdaten zu verwalten:

  • Kein Auth, kein API-Key — die Route ist öffentlich erreichbar, liefert aber ausschließlich Veranstaltungen mit aktiviertem Schalter des jeweiligen Workspaces.
  • CORS ist offen, ein Abruf per fetch funktioniert direkt aus dem Browser jeder Website.
  • Gecacht — Antworten sind kurz cachebar (wenige Minuten), damit häufige Abrufe schnell bleiben. Eine frisch freigegebene Veranstaltung erscheint dadurch nicht sofort, sondern innerhalb weniger Minuten.
  • Rate-limitiert — bei sehr vielen Abrufen in kurzer Zeit von derselben Quelle antwortet die Route mit einem Fehler statt mit leeren Daten; für normale Website-Nutzung ist das nicht relevant.
  • Ein unbekannter Workspace-Slug liefert einen Fehler, keine leere Liste — so merkst du sofort, wenn der Slug falsch ist.

Häufige Fragen

Sehe ich im Feed auch Locations, die nur belegt, aber nicht öffentlich geschaltet sind? Nein. Der Feed zeigt ausschließlich Veranstaltungen, bei denen du den Schalter Auf Website zeigen aktiv gesetzt hast — nie deine allgemeine Locations-Auslastung.

Enthält der Feed Preise? Ja, einen: den günstigsten noch verfügbaren Ticketpreis (price_from, brutto) samt Währung. Die vollständige Preisliste steht weiterhin nur auf der Buchungsseite, auf die ticket_url zeigt.

Warum zeigt meine Website einen höheren Preis als gestern? Weil die günstigere Kategorie inzwischen ausverkauft ist. Der Feed nennt immer den günstigsten Preis, den man noch kaufen kann — nicht den günstigsten, den es einmal gab.

Warum steht bei meiner Veranstaltung ohne Tickets nicht „ausverkauft“? Weil sie keine Tickets verkauft. tickets_sold_out ist nur dann true, wenn es einen Ticketverkauf gibt und dort nichts mehr zu haben ist.

Muss ich für jede Veranstaltung einzeln freigeben? Ja, aktuell gibt es keine Sammel-Freigabe. Der Schalter sitzt bewusst an jeder Veranstaltung einzeln, damit du volle Kontrolle darüber hast, was öffentlich sichtbar ist.

Ist die Funktion an einen bestimmten Plan gebunden? Der Feed zeigt ausschließlich, was du selbst freigibst — es gibt keine zusätzlichen Voraussetzungen über die normale Event-Berechtigung hinaus.

Kostet der Aufruf des Feeds mich etwas? Nein, der Feed ist ein reiner Lesezugriff auf Daten, die du bereits freigegeben hast — es fallen keine gesonderten Kosten an.

Univents-Newsletter

Produkt-Neuigkeiten und Praxistipps für Event- und Catering-Betriebe. Etwa einmal im Monat, nicht öfter.