Inspiration

Der Anlass war todo.txt einen Plaintext basierenden Kalender zu definieren. Nach einigem Googlen fand ich als Lösungen Calvin und verticalCal, jedoch fand ich die Formate unausgereift bzw. zu umständlich.

Ziel

  1. Der ganze Kalender muss in einer Textdatei liegen
  2. Das Format soll
    1. Aus einem Texteditor bearbeitbar sein
    2. Automatisch bearbeitbar sein
  3. 1 Termin = 1 Zeile

Spezifikation

Zeitpunkt

YYYY-MM-DD/HH:MM
Beispiel: 2019-07-23/12:56

Ort

@Ort (Leerzeichen werden durch Unterstrich ersetzt)
Beispiel: @Musterstraße_5._Musterstadt

Kategory

+Kategorie
Beispiel: +Schule

Termin

Startzeitpunkt [Endzeitpunkt] Name [Kategorie] [Ort]
Der Name hat keine Einschränkungen in der Schreibweise oder Länge.
Beispiele:

2019-08-02/15:00 Friseur @Friseur_Maier
2019-08-01/13:00 Farbe Kaufen +Familie @BaumarktXY

Anmerkungen

  • Da Kommentare (fast) nie genutzt werden, können sie, wenn zwingend Notwendig, anderswo gespeichert und verknüpft werden.
  • Wiederholende Termine sollen über eigene Scripte gelößt werden. Dies war eins der Kernfeatures, die ich als Ziel hatte

Implementierung

Die Implementierung habe ich in Python3 vorgenommen. Ziel war hier ein Kommandozeilentool für das Anzeigen, Bearbeiten, Löschen und Erstellen von Terminen. Ich bisher zwei halbe Implementierungen vorgenommen. Ein %[vim-calendar.zip][Vim Plugin] für Syntax-highlighting und ein %[calendar.zip][cli] für das Erstellen, Sortieren und Auflisten der Termine. Im Vim-Plugin fehlen noch Features, wie das Bearbeiten, Sortieren und vielleicht komfortables Erstellen. Mal schauen, wann ich dies hinzufüge. Dem Cli fehlt noch das Feature von Bearbeiten und dem Entfernen von Events.

Da alles unter GPL v.3 lizensiert ist, kann man gerne Verbesserungen vornehmen. Ich freue mich über Verbersserungsvorschläge.