Bundestag Tagesordnung

Inoffizielle iCal-, JSON-, XML- und CSV-API.

Hintergrund

Der Deutsche Bundestag stellt seine Tagesordnung online zur Verfügung – nur leider in keinem maschinenlesbaren Format. Da in Sitzungswochen mindestens 734 Abgeordnetenbüros händisch die Tagesordnungspunkte in ihren Kalendern aktualisieren müssen, war es Zeit für eine Alternative.

Aus diesem Grund stelle ich (ein einfacher MdB-Mitarbeiter) mithilfe eines Cloudflare-Workers diese API bereit, die die aktuelle Tagesordnung von der Website des Deutschen Bundestags scraped und in einer Key-Value-Datenbank zwischenspeichert.

Die Tagesordnungspunkte für die laufenden Sitzungswoche werden alle 15min aktualisiert. Außerdem können die Tagesordnungen vergangener Sitzungswochen oder gleich ganzer Jahre abgefragt oder heruntergeladen werden.

Falls etwas nicht funktioniert, wie es soll: Nicht wundern, das Projekt ist in der Beta-Phase. Ich freue mich über einen freundlichen Hinweis (*klick*).

Kalenderfeed abonnieren

Um die – in Sitzungswochen alle 15min aktualisiserten – Tagesordnungen des laufenden Jahres als iCal-Feed zu abonnieren, kann folgende URL verwendet werden: https://api.hutt.io/bt-to/ical.

Neben Startzeit, TOP und Thema enthalten die Kalendereinträge außerdem aktuelle Informationen zum Status des Tagesordnungspunktes, den etwas ausführlicheren Beschreibungstext und, falls vorhanden, einen Link zum zugehörigen Artikel im bundestag.de-Textearchiv.

Aus Performance-Gründen enthält dieses Feed nicht die Tagesordnungen vergangener Kalenderjahre. Sie können mit dieser API allerdings auch abgefragt oder händisch heruntergeladen werden.

iCal-Feed-Link-Generator

Optionen auswählen:

iCal-Feed-Link: https://api.hutt.io/bt-to/ical In Zwischenablage gespeichert!

Outlook (Windows)

  1. Öffnen Sie Ihren Outlook-Kalender, und wählen Sie auf der Registerkarte Start die Option Kalender hinzufügen > Aus dem Internet aus.
  2. Fügen Sie die URL https://api.hutt.io/bt-to/ical ein und klicken Sie auf OK.
  3. Outlook fragt, ob Sie diesen Kalender hinzufügen und Updates abonnieren möchten. Wählen Sie Ja aus.

Thunderbird

  1. Öffnen Sie Thunderbird und wählen Sie Datei > Neu > Kalender…
  2. Wählen Sie Im Netzwerk und klicken Sie auf Weiter.
  3. Wählen Sie in der „Format“-Liste den Auswahlknopf iCalendar (ICS).
  4. Fügen Sie den Link https://api.hutt.io/bt-to/ical in das Feld neben „Adresse“ ein. Klicken Sie danach auf Weiter.
  5. Klicken Sie auf Fertigstellen.

macOS Kalender-App

  1. Öffnen Sie die Kalender-App.
  2. Gehen Sie in der Menüleiste zu „Datei“ > „Neues Kalenderabonnement“.
  3. Fügen Sie nun den Link https://api.hutt.io/bt-to/ical ein und klicken Sie auf „Abonnieren“.

iOS Kalender-App

  1. Öffnen Sie die Kalender-App.
  2. Tippen Sie unten in der Mitte auf „Kalender“. Nun sollte sich eine Liste mit allen eingerichteten Kalendern öffnen.
  3. Tippen Sie nun unten links auf „Hinzufügen“ > „Kalenderabonnement hinzufügen“.
  4. Fügen Sie nun die URL https://api.hutt.io/bt-to/ical ein und tippen Sie dann auf „Abonnieren“.
  5. Jetzt sollte eine Übersicht geladen werden, in der man den Kalendernamen, die Farbe und den Account auswählen kann, zu dem das Kalenderabo hinzugefügt werden soll. Bestätigen Sie mit einem letzten Tippen auf den „Hinzufügen“-Button rechts oben.

Vorhandene Daten

Hier sind die mit dieser API abrufbaren Daten inklusive Download-Links für verschiedene Formate aufgelistet. Aktuell sind Abfragen auf Datensätze ab 2015 begrenzt.

Die Kalenderwochen können mit einem Klick auf das Jahr aufgeklappt werden.

API Endpoints

GET-Parameter, die für alle Abfragen genutzt werden können:

GET-Parameter, die nur für Abfragen an den iCal-Feed genutzt werden können:

Sind keine Parameter angegeben, werden die Daten für das laufende Kalenderjahr zurückgegeben. Aktuell sind Abfragen auf Datensätze ab dem Jahr 2015 begrenzt.

Beispiele

iCal / ICS

Dieser Endpoint bietet die Möglichkeit, zusätzliche Termine für Namentliche Abstimmungen zu erstellen. Diese beginnen unmittelbar nach Ende des Tagesordnungspunktes, zu dem abgestimmt werden soll und werden für eine Dauer von 15 min in den Kalender eingetragen. Um einen Feed mit solchen Einträgen zu generieren, muss der GET-Parameter na mit dem Wert true angehängt werden.

Beispiel-Request:

GET https://api.hutt.io/bt-to/ical

Beispiel-Antwort:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hutt.io//api.hutt.io/bt-to//
CALSCALE:GREGORIAN
X-WR-TIMEZONE:Europe/Berlin
X-WR-CALNAME:Tagesordnung Bundestag
DESCRIPTION:Dieses iCal-Feed stellt die aktuelle Tagesordnung des Plen
ums des Deutschen Bundestages zur Verfügung. Es aktualisiert sich alle
 15min selbst. Zwar ist der Sitzungsverlauf auch online unter bundesta
g.de/tagesordnung einsehbar, doch leider werden diese Daten nicht in e
inem maschinenlesbaren Format zur Verfügung gestellt. Deshalb war es Z
eit, das selbst in die Hand zu nehmen. Mehr Informationen über das Pro
jekt: https://api.hutt.io/bt-to/.
SOURCE;VALUE=URI:https://api.hutt.io/bt-to/ical
COLOR:#808080
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:STANDARD
TZNAME:CET
DTSTART:19701025T030000
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
BEGIN:DAYLIGHT
TZNAME:CEST
DTSTART:19700329T020000
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
END:VTIMEZONE
[…]
BEGIN:VEVENT
UID:1715777400000-fragestunde-top-2@api.hutt.io
DTSTAMP:20240521T100025Z
DTSTART;TZID=Europe/Berlin:20240515T125000
DTEND;TZID=Europe/Berlin:20240515T133500
SUMMARY:TOP 2: Fragestunde
DESCRIPTION:Status: beendet

Fragestunde
Drucksache 20/11319, 20/11
340
URL:https://bundestag.de/dokumente/textarchiv/2024/kw20-de-fragestunde
-999696
END:VEVENT
BEGIN:VEVENT
UID:1715780100000-aktuelle-stunde:-kernkraft-aus---vorgänge-um-bm-habe
ck-und-bmn-lemke-zp-1@api.hutt.io
DTSTAMP:20240521T100025Z
DTSTART;TZID=Europe/Berlin:20240515T133500
DTEND;TZID=Europe/Berlin:20240515T150000
SUMMARY:ZP 1: Aktuelle Stunde: Kernkraft-Aus - Vorgänge um BM Habeck u
nd BMn Lemke
DESCRIPTION:Status: beendet

Aktuelle Stunde
auf Verlangen der Frak
tion der CDU/CSU
Kernkraft-Aus – Vorgänge um Bundesminister Habeck un
d Bundesministerin Lemke transparent aufklären
URL:https://bundestag.de/dokumente/textarchiv/2024/kw20-de-aktuelle-st
unde-kernkraft-1002698
END:VEVENT
[…]
END:VCALENDAR

JSON

Beispiel-Request:

GET https://api.hutt.io/bt-to/json

Beispiel-Antwort:

[
    […]
    {
        "start":"2024-05-15T14:50:00.000",
        "end":"2024-05-15T15:35:00.000",
        "top":"TOP 2",
        "thema":"Fragestunde",
        "beschreibung":"Status: beendet

Fragestunde
Drucksache 20/11319, 20/11340",
        "url":"https://bundestag.de/dokumente/textarchiv/2024/kw20-de-fragestunde-999696",
        "status":"beendet",
        "namentliche_abstimmung": false,
        "uid":"1715784600000-fragestunde-top-2@api.hutt.io",
        "dtstamp":"2024-05-21T11:09:37.775Z"
    },
    […]
]

XML

Beispiel-Request:

GET https://api.hutt.io/bt-to/xml

Beispiel-Antwort:

<agenda>
    […]
    <event>
        <start>2024-05-15T14:50:00.000</start>
        <end>2024-05-15T15:35:00.000</end>
        <top>TOP 2</top>
        <thema>Fragestunde</thema>
        <status>beendet</status>
        <beschreibung>Status: beendet Fragestunde Drucksache 20/11319, 20/11340</beschreibung>
        <namentliche_abstimmung>false</namentliche_abstimmung>
        <url>https://bundestag.de/dokumente/textarchiv/2024/kw20-de-fragestunde-999696</url>
    </event>
    […]
</agenda>

CSV

Beispiel-Request:

GET https://api.hutt.io/bt-to/csv

Beispiel-Antwort:

Start;Ende;TOP;Thema;Beschreibung;URL;Status;NA
[...]
2024-05-15T14:50:00.000;2024-05-15T15:35:00.000;TOP 2;Fragestunde;"Status: beendet

Fragestunde
Drucksache 20/11319, 20/11340";https://bundestag.de/dokumente/textarchiv/2024/kw20-de-fragestunde-999696;beendet;false
[...]

Quellcode und Weiterentwicklung

Das Projekt ist unter MIT lizensiert und damit Open Source. Wer sich den Quellcode ansehen oder dazu beitragen möchte, findet die Repository dieses Projekts auf GitHub.

Die Entwicklung weiterer Funktionen, unter anderem von Themen- bzw. Ausschusszugehörigkeits-Filtern ist geplant. Da dieses Projekt nur ein Hobby ist, kann aber nicht gesagt werden, wie schnell das geht.

Sie haben Fehler zu berichten oder Ideen für die Weiterentwicklung? Hier können Sie mich kontaktieren.

Unterstützen

In solche Projekte fließt eine Menge Zeit und meistens auch ein bisschen Geld fürs Hosting. Wenn Sie die (Weiter-)Entwicklung und den Betrieb unterstützen wollen (worüber ich mich sehr freue), können Sie mir über den Link unten einen (digitalen) Kaffee kaufen.

Vielen Dank!

Buy Me A Coffee