Card- und CalDAV im terminal
Um’s grad vorweg zu nennen: Vieles hier hab ich von Florian Heinle’s Blog abgeschaut, welchen ich beim initialen Testen als erste Anlaufstelle verwendet hab. Im Gegensatz zu ihm hab ich aber die Debian-Packages verwendet.
Wie’s halt so ist, hätte ich das gern bei mir selbst dokumentiert.
Als erstes monitiert man mal die Packages khard, khal und vdirsyncer.
Sync einrichten
~/.config/vdirsyncer/config (siehe auch vdirsyncer Tutorial)
# Move it to ~/.vdirsyncer/config or ~/.config/vdirsyncer/config and edit it. # Run `vdirsyncer --help` for CLI usage. # # Optional parameters are commented out. # This file doesn't document all available parameters, see # http://vdirsyncer.readthedocs.org/ for the rest of them. [general] # A folder where vdirsyncer can store some metadata about each pair. # pfad gequotet... https://github.com/pimutils/vdirsyncer/issues/645 status_path = "~/.vdirsyncer/status/" #Kontakte [pair privat_kontakte] a = "privat_kontakte_lokal" b = "privat_kontakte_remote" collections = ["from a", "from b"] [storage privat_kontakte_lokal] type = "filesystem" path = "~/.pim/contacts" fileext = ".vcf" [storage privat_kontakte_remote] type = "carddav" url = "https://mail.foo.bar/SOGo/dav/peter@foo.bar/Contacts/personal/" username = "peter@foo.bar" password = "password" auth = "basic" #Kalender [pair privat_kalender] a = "privat_kalender_lokal" b = "privat_kalender_remote" collections = ["from a", "from b"] metadata = ["color"] [storage privat_kalender_lokal] type = "filesystem" path = "~/.pim/calendars/" fileext = ".ics" [storage privat_kalender_remote] type = "caldav" url = "https://mail.foo.bar/SOGo/dav/peter@foo.bar/Calendar/personal/" auth = "basic" username = "peter@foo.bar" password = "password"
initiale Konfiguration
Dies ist nur einmalig nötig, oder falls neue Kalender- bzw. Kontakte-Folder hinzugefügt werden.
peter@jessie:~$ vdirsyncer discover Discovering collections for pair privat_kontakte privat_kontakte_lokal: privat_kontakte_remote: - "personal" ("Personal Address Book") warning: No collection "personal" found for storage privat_kontakte_lokal. Should vdirsyncer attempt to create it? [y/N]: y Saved for privat_kontakte: collections = ["personal"] Discovering collections for pair privat_kalender privat_kalender_lokal: privat_kalender_remote: - "personal" ("Personal Calendar") warning: No collection "personal" found for storage privat_kalender_lokal. Should vdirsyncer attempt to create it? [y/N]: y Saved for privat_kalender: collections = ["personal"] peter@jessie:~$ vdirsyncer metasync Metasyncing privat_kontakte/personal Metasyncing privat_kalender/personal Copying color to privat_kalender_lokal/personal
Nun kann der Sync durchgeführt werden
vdirsyncer sync
mit vdirsyncer -vdebug sync kann man sich mehr Details beim Sync anzeigen lassen.
Cron für automatischen Sync
Da man in der Regel nicht gern ständig manuell erst einen Sync macht, damit man up-to-date ist, richtet man am schlausten einen simplen cron ein. Ich mach’s alle 5 Minuten.
*/5 * * * * /usr/bin/vdirsyncer sync
Kontakte mit khard
Beim ersten Start wird gleich reklamiert, wenn das Config nicht vorhanden ist
peter@peanut:~$ khard Config file /home/peter/.config/khard/khard.conf not available
Also kopieren wir am einfachsten mal die Beispielconfig her und passen dort die Pfade entsprechend an
mkdir ~/.config/khard/ cp /usr/share/doc/khard/examples/khard/khard.conf.example ~/.config/khard/khard.conf
Usage
Mit ‘khard ls <suchbegriff>’ kann man recht bequem Kontakte suchen. verwendet man ‘details’, werden alle Informationen zum Kontakt angezeigt.
peter@peanut:~$ khard ls peter Address book: personal Index Name Phone E-Mail UID 1 Peter ABC work: peter.abc@example.com C6B7BE55-01 2 Peter Beck cell: +41 xx xx xxx xx xx home: peter@foobar.com 5E6 ...
Der Parameter ‘–help’ zeigt alle weiteren benötigten Parameter an. Recht selbsterklärend.
Integration in mutt
Mit dieser Ergänzung in .muttrc kann man Adressen mit dem Tabulator vervollständigen und khard sehr bequem mit Mutt verwenden.
set query_command= "khard email --parsable --search-in-source-files %s" bind editor <Tab> complete-query bind editor ^T complete macro index,pager A \ "<pipe-message>khard add-email<return>" \ "add the sender email address to khard"
Zudem kann man mit ‘A’ Adressen als neue Kontakte hinzufügen (in der Auflistung der Mails oder wenn das entsprechende Mail geöffnet wurde).
Kalender mit khal
Die Konfiguration von khal ist recht simpel, einfach die gewünschen Kalender, die wir in vdirsyncer definiert haben, angeben in .config/khal/config und schon läuft das Teil (inital etwas länger, was ja verständlich ist). Der muss wohl einfach wissen, wo er die ics-Files zu suchen hat.
[calendars] [[calendars]] path = ~/.pim/calendars/* type = discover
Um nur schnell die aktuellen Termine anzuzeigen, reicht es aus, einfach ‘khal’ einzugeben.
Möchte man Termine anlegen / bearbeiten, startet man ‘ikhal’. Mit ‘?’ kann man die wichtigsten Tasten anzeigen. Der Rest ist recht selbsterklärend, finde ich.
commands
Anstatt via ikhal kann man aber auch direkt via commanline einen Termin setzen, z.B.:
khal -a personal new 08.11. 19:30 19:35 Test via cli :: das ist ein test
ganztägige Termine gibt man einfach ohne Zeitangabe an
khal new -a personal 19.11. Abflug Ferien
mit der “-a”-Option kann der entsprechende Kalender gewählt werden. Das ganze wird nach diesem Schema abgesetzt:
Usage: khal new [OPTIONS] [START [END | DELTA] [TIMEZONE] [SUMMARY] [::DESCRIPTION]]
Die wichtigsten Optionen hier sind:
- -l, –location=LOCATION Ort festlegen
- -g, –categories=CATEGORIES kommagetrennte Liste von Kategoriern. Einige Server unterstützen nicht mehrere Kategorien…
- -r, –repeat=RRULE Ereignis-Wiederholung. Erlaubte Werte sind daily, weekly, monthly und yearly
- -u, –until=UNTIL spezifizieren, wie lange das Ereignis dauern soll
- –alarm DURATION Erinnerung vor dem Start des Ereignisses, sollte etwa so aussehen 1day 10minutes oder 1d3H10m, negative Werte starten nach dem Start des Ereignis.
weitere Beispiele
khal new 18:00 Awesome Event
Ereignis heute um 18 Uhr mit Standardzeit von 1 Stunde im Standardkalender
khal new tomorrow 16:30 Kaffeepause
Ereignis morgen um 16:30
khal new 25.10. 18:00 24:00 Another Event :: with Alice and Bob
adds a new event on 25th of October lasting from 18:00 to 24:00 with an additional description
khal new -a work 26.07. Great Event -g meeting -r weekly
Ein ganztägiges Ereignis am 26. Juli im Kalender “work”, welches wöchentlich wiederholt wird.
khal new 13:30 Meeting :: test --alarms 10minutes
Ein Meeting um 13:30 mit einem Reminder 10 Minuten davor.
Detailliertere Informationen findet man beispielsweise hier.
Android / EAS
Wenn ich Kontakte in khal anlege, werden die wunderbar zum Server synchronisiert, auch Thunderbird und Webmail zeigen alles an. Jedoch motzt mein Android, welches via EAS verbunden ist, dass es nicht synchronisieren konnte.
Ob das nun ein EAS, SOGo oder khal-Problem ist, ist mir nicht ganz klar. Ich tendiere, dass es mit EAS etwas zu tun hat, sonst würde TB und das Webmail ja auch nix anzeigen/motzen. Muss mal CalDAV am Handy einrichten und damit testen.
EDIT: Hab heute grad mal DAVdroid montiert – mittels Card- / CalDAV bestehen absolut keine Probleme mit dem Sync auf Android….
1 thought on “Card- und CalDAV im terminal”
Card- und CalDAV im terminal http://blog.datentraeger.li/?p=615
Comments are closed.