Zum Inhalt

Termine auf der eigenen Webseite

In zehn Minuten zeigt Ihre Webseite automatisch die nächsten öffentlichen Fraktionssitzungen. Ohne Plugin, ohne Backend, mit einem kleinen JavaScript-Snippet. Grundlage ist die öffentliche Fraktions-API.

Schritt 1: API aktivieren

Im Work-Portal unter Organisation → Reiter „API“ die öffentliche API aktivieren und die Basis-URL kopieren. Sie enthält Ihr Zugangs-Token.

Origins einschränken

Beschränken Sie dort die „Erlaubten Origins“ auf die Domain Ihrer Webseite. Dann kann niemand sonst die Daten per Browser einbetten.

Schritt 2: Snippet einbauen

Diesen Block an die gewünschte Stelle Ihrer Webseite einfügen und IHRE_BASIS_URL durch die kopierte URL ersetzen. Der API-Reiter erzeugt das Snippet auch fertig ausgefüllt zum Kopieren.

<div id="fraktions-termine">Termine werden geladen…</div>
<script>
fetch("IHRE_BASIS_URLsitzungen/")
  .then(r => r.json())
  .then(data => {
    const el = document.getElementById("fraktions-termine");
    const kommende = data.meetings.filter(m => new Date(m.start) >= new Date() && !m.cancelled);
    if (!kommende.length) { el.textContent = "Aktuell keine öffentlichen Termine."; return; }
    el.innerHTML = kommende.map(m =>
      "<p><strong>" + new Date(m.start).toLocaleString("de-DE", {dateStyle: "medium", timeStyle: "short"}) +
      "</strong> – " + m.title + (m.location ? " (" + m.location + ")" : "") + "</p>"
    ).join("");
  })
  .catch(() => { document.getElementById("fraktions-termine").textContent = "Termine derzeit nicht verfügbar."; });
</script>

Schritt 3: Prüfen

Seite neu laden, die kommenden Termine erscheinen. Falls nicht:

Symptom Ursache und Lösung
„Termine derzeit nicht verfügbar“ Basis-URL prüfen (endet auf /). Ist die API im Work-Portal wirklich aktiviert?
Leere Liste Es gibt aktuell keine geplanten öffentlichen Sitzungen. Entwürfe und nicht-öffentliche Termine erscheinen nie.
CORS-Fehler in der Browser-Konsole Ihre Domain unter „Erlaubte Origins“ eintragen, oder das Feld leeren, um alle Origins zuzulassen.

WordPress und andere Systeme

Das Snippet funktioniert überall, wo Sie HTML einfügen können. Bei WordPress zum Beispiel über einen „Custom HTML“-Block, bei TYPO3 über ein HTML-Inhaltselement. Für Systeme, die kein JavaScript erlauben, können Sie die JSON-Daten auch serverseitig abrufen und rendern. Die Details stehen in der API-Referenz.

Tagesordnung mit anzeigen

Die Terminliste enthält keine Tagesordnung. Wenn Sie sie anzeigen wollen, rufen Sie je Sitzung den Detail-Endpunkt …/sitzungen/<id>/ auf. Er liefert das Feld agenda mit Nummer und Titel der öffentlichen Punkte. Ob die Tagesordnung überhaupt ausgeliefert wird, entscheiden Sie im API-Reiter.