Wyrd und Remind: Erinnerungen per E-Mail erhalten

Damit die Idee nicht ganz in Vergessenheit gerät, bekommt sie einen eigenen kurzen Beitrag. Remind, ein Terminplaner für die Konsole, hatte ich im Zusammenspiel mit Wyrd letztes Jahr vorgestellt. Beide zusammen kombinieren eine mächtige Syntax zur Beschreibung von Terminen mit einer effizienten und eleganten Benutzerschnittstelle auf Basis von Ncurses.
Nun habe ich in den letzten Monaten ebenfalls festgestellt, dass ich gar nicht alle Funktionen brauche, die dieses Programm mir zur Verfügung stellt, um Wyrd und Remind wirklich vollkommen auszureizen. Eine wiederkehrende Anforderung an Terminplaner und Erinnerer gibt es dennoch. Geburtstage!
Natürlich, in Zeiten von Sozialen Netzwerken war es nie einfacher an das Geburtsdatum eines flüchtig bekannten zu gelangen und darüber benachrichtigt zu werden. Doch nehmen wir an, wir kennen die Geburtstage unserer Freunde und Bekannten aus erster Hand, haben einen fertig eingerichteten Mailserver, der nur E-Mails versenden kann, dann funktioniert das Ganze unter Umständen nach diesem netten Tipp aus der FAQ von Remind.

  • Startet wyrd
  • Wählt das Datum aus und tragt einen beliebigen Geburtstag ein (Taste t)
  • Beispiel: REM Jul 10 +14 MSG Annas Geburtstag %b (14 Tage vorher möchte man eine Mail erhalten)
  • Tragt weitere Geburtstage nach dem selben Schema ein.
  • Startet Remind als Daemon. remind -z -k'echo "%s" | mail -s "Erinnerung" apo' ~/.reminders &

Mit der Option -z wird Remind als Daemon im Hintergrund ausgeführt und greift dabei auf die Textdatei ~/.reminders zu, in der Wyrd die Termine speichert. Durch die Option -k führt Remind ein Kommando aus, in diesem Fall den Echo-Befehl. Der Platzhalter %s wird durch den Text nach MSG ersetzt, also "Annas Geburtstag in 14 Tagen" und danach der gesamte Inhalt durch eine Pipe an mail geschickt.
Die E-Mail hat also den Inhalt %s, den Betreff "Erinnerung" und geht an den Benutzer apo. In /etc/aliases könnt ihr eine externe Mailadresse für diesen Benutzer definieren und schon erhaltet ihr zu jedem Geburtstag 14 Tage im Voraus eine Erinnerung.
Wenn man das jetzt noch mit etwas Skriptkunst kombiniert, einen Zufallsgenerator bemüht, sich Inhalte für die Variablen $ANREDE, $FLOSKELN, $GLUECKWUENSCHE ausdenkt, kann man aus der Erinnerungsmail direkt eine Glückwunschmail machen. Ah, die Wunder des Informationszeitalters. 🙄

wyrd und remind: Kalender und Terminplaner für die Konsole

Wyrd ist ein Frontend für remind, welches wiederum ein fortschrittliches Kalender- und Alarmprogramm für UNIX-artige Systeme ist. Warum du es benutzen solltest? Zitat des Wyrd Entwicklers: "Weil du keine Lust hast auf dein aufgeblasenes Kalenderprogramm zu warten"
Natürlich kann ich ihm hier nur zustimmen. Sicher, in der heutigen Zeit sind alle Computer so weit entwickelt, dass es schier unmöglich erscheint, dass irgendwelche Art von Software einen modernen Rechenknecht in die Knie zwingen könnte. Mit Sicherheit wird dieser Computerkauf der letzte gewesen sein. Schwer vorstellbar, dass dieser Rechner einmal zu langsam für die Büroarbeit, meine E-Mails und Terminplanung sein sollte. Dachte man vor 30 Jahren.
Nein, das Problem beim Finden des richtigen Terminplaners ist nicht die Hardware, sondern du. Oder besser gesagt die Person, für die du einen Kalender führst. Es müssen nicht zwangsläufig die eigenen Termine sein, an die man sich und andere erinnern soll und nicht immer hat man die Wahl, welche Anwendungen man zum Erinnern benutzen darf. Die Methoden reichen dabei von der Wiedervorlagemappe, über Outlook, Lotus Notes, den Terminplaner im Blackberry, das andere Smartphone, das neue Tablet, bis hin zu Evolution in Gnome, Thunderbird Lightning und schließlich wyrd plus remind.
Terminplaner sind nicht gerade die spannendsten Anwendungen. Je nach dem wie beschäftigt du bist sind sie entweder essentiell wichtig, um nicht den Überblick zu verlieren oder bestenfalls ein nettes Gimmick auf deinem Desktop.
Ich habe mir nie groß den Kopf darüber zerbrochen, warum es gerade diese oder jene Anwendung war. Sie erfüllte zum jeweiligen Zeitpunkt einfach ihren Zweck. Gerade für Privates brauche ich hier keine ausschweifenden Funktionen. In der Regel genügt mir nun das Lightning Addon von Thunderbird/Icedove und im Moment bin ich dabei Gefallen an wyrd zu finden.
Wie schon gesagt ist das Prinzip eines Terminplaners recht simpel. Schon vor Jahren hat sich jemand die Mühe gemacht remind zu schreiben. Mit dessen Syntax lässt sich jede Art von Termin beschreiben. Ein Beispiel:

REM Jul 10 +14 Annas Geburtstag %b
REM Jul 5 2011 *14 +2 AT 14:00 + 10 DURATION 2:00 AFTER MSG zweiwöchentliches Vereinstreffen

Die erste Zeile zeigt die wiederkehrende Aufgabe sich einen Geburtstag merken zu wollen. Mit REM wird die Erinnerung definiert. Zuerst folgt das Datum des Geburtstags. +14 bedeutet, dass man vierzehn Tage vor dem Termin eine Erinnerung erhalten möchte und das dann die Nachricht "Annas Geburtstag in 14 Tagen" angezeigt werden soll. %b ist der Platzhalter für die Anzahl der Tage bis zu diesem Termin, die kontinuierlich heruntergezählt werden.
Im zweiten Beispiel wird wieder eine Erinnerung mit REM definiert. Beginnend vom 5. Juli 2011 wird alle vierzehn Tage (*14) ein Vereinstreffen einberufen. Man möchte zwei Tage vor dem jeweiligen Termin eine Erinnerung erhalten (+2). Das Treffen findet immer um 14.00 Uhr statt. Zehn Minuten davor möchte man erneut daran erinnert werden (+10). Das Treffen dauert zwei Stunden (2:00). Fällt der Termin auf einen Feiertag wird er auf den nächstmöglichen Tag gelegt. (AFTER)
Nach diesem Prinzip funktioniert remind. Die Syntax ist noch wesentlich umfangreicher und so mächtig, dass sich damit noch komplexere Erinnerung definieren lassen. Sehr gut dokumentiert ist das Ganze im Handbuch man remind. Der Nachteil von remind ist aber auch schnell offensichtlich. Man muss jede Erinnerung in eine Textdatei tippen und sich dabei noch Gedanken um die Syntax machen. Damit es leichter geht, hat man die Wahl entweder tkremind als GUI zu benutzen oder das angesprochene wyrd als Konsolenapplikation zu nehmen, welches sich wie auf dem folgenden Screenshot präsentiert.

Wyrd ist wirklich sehr klar strukturiert. Die wichtigsten Kommandos werden am oberen Bildschirmrand dargestellt. Im Hauptbereich trägt man den Termin ein, rechts davon befindet sich ein Monatskalender, dessen einzelne Tage je nach Termindichte unterschiedlich farblich hinterlegt sind. Darunter gibt es ein weiteres Feld, indem alle nicht zeitlich begrenzten Aufgaben des aktuellen Tages im Überblick dargestellt werden. Mit ? erhält man eine komplette Übersicht der Tastenbelegung.
Ideal für den Einstieg ist die Flash Demo zu wyrd, mit der innerhalb von nur acht Minuten das Prinzip von remind und wyrd erklärt wird und die ich für jeden Beginner sehr empfehlen kann. Zwar wird auch Deutsch als Sprache unterstützt, doch scheinbar muss man dieses Feature beim Kompilieren explizit angeben. Voreingestellt ist auf jeden Fall Englisch.
Wyrd erzeugt auf Tastendruck automatisch ein Remind-Template, welches wiederum eine Erinnerung definiert. Lediglich die Botschaft, an die man gerne erinnert werden möchte, muss man mit Hilfe eines Editors noch eingeben. Welcher Editor das ist, wird wyrd durch die Umgebungsvariable EDITOR mitgeteilt. Am besten man legt diesen Wert in der ~/.bashrc oder seiner bevorzugten Shell fest, z.B. export EDITOR=vim.
Es lassen sich bei entsprechender Kenntnis der Remind-Syntax weitere Templates definieren, die dann innerhalb von wyrd an eine Taste gebunden werden können. Die Tastenbelegung und weitere Optionen lassen sich in ~/.wyrdrc ändern. Wer sich noch unsicher ist, ob es eine Möglichkeit gibt den bestehenden Google Kalender umzuwandeln, sollte auch mal einen Blick in die FAQ von remind werfen.
Es gibt mehr als genug Auswahl an Terminplanern, aber ich denke für die Konsole habe ich den passenden mit wyrd und remind nun gefunden. Wer schon immer mit dem Gedanken gespielt hat, seinen Freunden automatisierte E-Mails mit Glückwünschen zum Geburtstag oder Hochzeitstag zu schicken, brauch in Zukunft nur noch remind und einen Cron Job aufzusetzen. Das klingt abwegig? Nun, sagen wir mal so, ich kenne jemanden, der das lästige Geburtstagsproblem auf eine ähnliche Art gelöst hat. 😀