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
- Der ganze Kalender muss in einer Textdatei liegen
- Das Format soll
- Aus einem Texteditor bearbeitbar sein
- Automatisch bearbeitbar sein
- 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 Plugin für Syntax-highlighting und ein 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.