Das Loch in der Zeit: Warum wir den Wandkalender digitalisieren

Post image

Wie es begann

Mein Klavierlehrer ist ein moderner Mensch mit einem alten Problem.

Es begann mit einer halben Stunde Fahrt durch die Stadt, an deren Ende ich vor der verschlossenen Tür seines Musikstudios stand. Die Klinke blieb starr, die Räume dunkel. Ein Anruf bei ihm klärte die Lage, lieferte aber keine Lösung: „Der heutige Termin war nicht in meinem Hauptkalender eingetragen“, erklärte er mir mit der Ruhe eines Mannes, der seinem eigenen System vertraut, „ich bin gerade in Spanien.“

Die Klavierstunde fiel aus, doch das eigentliche Problem kam erst beim nächsten Unterrichtstermin zur Sprache. Es ist ein klassischer Medienbruch: Wie viele Menschen arbeitet mein Klavierlehrer in zwei Welten, die nicht miteinander kommunizieren.

Zuerst ist da sein Smartphone, mit dem er Termine digital erfasst. Doch die eigentliche Instanz, sein „Hauptkalender“, ist analog: Das bekannte, fast ein Quadratmeter große Plakat aus Papier, das an seiner Bürowand hängt. Seine gesamte Planung beruht auf einem fehleranfälligen Zwischenschritt: Er liest die Daten vom Display ab und schreibt sie dann händisch auf das Papier. Das funktioniert meistens. Doch wenn diese manuelle Übertragung ausbleibt, bricht die Logik zusammen – und es klafft ein Loch in der Zeit.

Seine Vision war so simpel wie naheliegend: Ein digitaler Wandkalender. Das ganze Jahr auf einem Monitor, steuerbar per App, immer synchron.

Ich hielt das für eine Standardlösung, die einfach erhältlich ist. Doch ich suchte vergeblich. Die digitale Welt bot nur ein frustrierendes Entweder-Oder: Entweder eine kahle Jahresübersicht ohne Details, um Platz zu sparen. Oder eine kleinteilige Wochenansicht, bei der der Rest des Jahres im digitalen Off verschwand. Das große Ganze gab es nicht.

Kein Kalender zeigte das Bild, das mein Lehrer an seiner Wand hängen hatte: zwölf Monate, alle Termine auf einen Blick.

Ich brachte die Idee ins attempto-lab. Nach einer kurzen Machbarkeitsanalyse fiel die Entscheidung: Wir bauen das selbst. Das Projekt tauften wir „Year-round-calendar“. Es war die Suche nach der verlorenen Übersicht.

Das Lastenheft war schnell diktiert:

  • Die Hardware: Ein 4k-Monitor in der Größe eines klassischen Wandkalenders. Nur die hohe Auflösung erlaubt es, Termindetails ohne Lupe zu lesen.

  • Das Gehirn: Ein Raspberry Pi hinter dem Display. Klein, leistungsfähig und durch eine riesige Community krisenfest.

  • Die Basis: iCloud. Wir wollten keine eigenen Serverparks verwalten, sondern auf Bestehendes aufsetzen. Bei Apple ist der Zugang stabil und die Authentifizierung unkompliziert.

  • Das Ziel: Technik, die sich unsichtbar macht. Die Bedienung muss so intuitiv sein, dass auch ein IT-Laie nicht vor der eigenen Wand kapituliert.

Damit ergibt sich folgender Aufbau der beteiligten Komponenten:

Hardware-Architektur der Kalendersoftware
Hardware-Struktur

Auswahl der Hardware

Die Technik hinter dem Bildschirm war eine Frage der Balance. Um die 4k-Auflösung stabil zu liefern, war ein Raspberry Pi 4 die logische Wahl. Das neuere Modell der fünften Generation schied aus. Sein hoher Stromverbrauch hätte eine aktive Kühlung erfordert – niemand will einen summenden Lüfter an der Bürowand.

Die eigentliche Herausforderung war der Arbeitsspeicher. Ein moderner Webbrowser ist ressourcenhungrig, besonders wenn er ein komplexes Jahreslayout flüssig darstellen soll. Ein Testlauf mit 1 GB RAM und Firefox scheiterte: Das System kam sofort an seine Grenzen. Erst der Wechsel auf den effizienteren Chromium-Browser brachte die nötige Stabilität. Um für den Alltag bei meinem Klavierlehrer auf Nummer sicher zu gehen, fiel die finale Wahl auf die 2-GB-Variante. Die Verbindung zum Monitor erfolgt simpel und kompakt per Mini-HDMI.

Details zur Entwicklung

Da das Hosting des Kalenders bei einem etablierten Web-Service liegt, konnten wir uns bei der Entwicklung voll auf die Software für den Raspberry Pi konzentrieren. Die Architektur besteht aus einem effizienten Duo: einer Angular-Anwendung für die Visualisierung (Frontend) und einer Node.js-Anwendung für das Datenmanagement im Hintergrund.

Die Trennung war keine Design-Spielerei, sondern eine technische Notwendigkeit. Die Bibliothek, die die rohen Kalenderdaten im iCal-Format verarbeitet, ließ sich nicht direkt in das Angular-Frontend integrieren. Doch ihr Einsatz war alternativlos: Sie beherrscht das „Ausrollen“ wiederkehrender Termine – eine komplexe Rechenaufgabe, die sicherstellt, dass der wöchentliche Jour fixe auch in sechs Monaten noch an der richtigen Stelle im digitalen Raster erscheint.

Der Datenaustausch zwischen diesen beiden Welten folgt dem Prinzip der Einfachheit. Statt einer komplizierten Schnittstelle nutzt das System das Dateisystem als Übergabepunkt:

Der Node.js-Teil ruft regelmäßig die Daten aus der Cloud ab und speichert sie als übersichtliche JSON-Datei im Arbeitsspeicher (RAM). So wird verhindert, dass häufige Schreibvorgänge die SD-Karte unnötig abnutzen.

Die Angular-App liest diese Datei ebenso regelmäßig ein und bringt sie auf den Schirm.

Im Inneren der Angular-Anwendung sorgen schließlich drei spezialisierte Bausteine für Ordnung, von denen zwei als eigenständige Services fungieren:

  • Der calender-api.service fungiert als digitaler Türsteher. Er liest die Daten zyklisch vom Dateisystem ein und vergleicht sie sofort mit dem Stand des letzten Durchlaufs. Nur wenn sich tatsächlich etwas geändert hat, werden die Informationen weitergereicht. Das spart wertvolle Rechenleistung und verhindert unnötige Aktualisierungen auf dem Display.

  • Hinter dem Türsteher übernimmt der calender-data.service die Feinarbeit. Er sortiert die Termine eines jeden Tages chronologisch aufsteigend und bringt sie in ein Format, das die Anwendung direkt verarbeiten kann. Sobald ein Jahresdatensatz fertig aufbereitet ist, wird er über ein sogenanntes RxJS-Subject – eine Art digitaler Datenstrom – in Echtzeit an die Anzeigekomponente gefeuert.

  • Das sichtbare Ergebnis liefert schließlich die calendar.component Sie ist für die Darstellung des gesamten Jahres verantwortlich. Dank der spezialisierten Bibliothek „cdk-table“ bleibt der dahinterliegende HTML-Code schlank und übersichtlich, obwohl er hunderte Termine gleichzeitig verwalten muss. Die Komponente klinkt sich einfach in den Datenstrom des Vor-Service ein: Sobald dort neue Daten fließen, aktualisiert sich die Ansicht.

Damit kann der Aufbau der Gesamtanwendung wie folgt dargestellt werden:

Software-Architektur der Kalendersoftware
Software-Architektur

Die Bedienung bleibt im Alltag unsichtbar. Ein Griff hinter den Monitor genügt: Dort erlaubt eine kompakte Zwei-Tasten-Tastatur den schnellen Wechsel zwischen den Jahren. Auf dem Bildschirm selbst dominiert die reine Information. Im sogenannten „Kiosk-Modus“ verschwinden alle Browser-Leisten – was bleibt, ist das pure digitale Abbild des Jahres.

Das System ist auf totale Wartungsfreiheit und Sicherheit ausgelegt. Aus Brandschutzgründen fährt der Raspberry Pi jeden Abend zeitgesteuert herunter und startet morgens neu. Bei diesem Kaltstart prüft das Gerät automatisch, ob auf GitHub ein neues Release der Kalendersoftware bereitsteht. Ist das der Fall, wird das Update selbstständig installiert. So bleibt der Kalender ohne jeden administrativen Eingriff immer auf dem neuesten Stand.

Inbetriebnahme und Feedback

Im Sommer 2025 war es so weit, ich fuhr zu meinem Klavierlehrer und wir legten los: Ein großer Fernseher – für das statische Jahresbild qualitativ völlig ausreichend – ersetzte das Papier an der Wand des Musikstudios. Der Raspberry Pi war schnell verkabelt, der Kaltstart verlief fehlerfrei. Wir machten die Probe aufs Exempel: Ein neuer Termin, eingetippt ins Smartphone, erschien Sekunden später auf dem 4k-Bildschirm. Die Ära der Missverständnisse war vorbei. „Seitdem ist mein Leben strukturierter“, sagt mein Klavierlehrer heute.

Das Loch in der Zeit ist gestopft. Doch die Möglichkeiten für diese Art der digitalen Planung fangen gerade erst an.

Klavierlehrer sitzend vor Monitor dargestelltem Kalender
Mein Klavierlehrer im Büro seines Tonstudios ‘Beatonal’

You May Also Like