datentraeger

geistige Umweltverschmutzung

Card- und CalDAV im terminal

November 8, 2017 cli Debian/GNU Linux Groupware IT

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….

 

Notifications für (Neo)Mutt

Network Manager Verbindung via cli

1 thought on “Card- und CalDAV im terminal”
  1. Peter V. Beck, I.
    November 8, 2017 at 2:24 am

    Card- und CalDAV im terminal http://blog.datentraeger.li/?p=615

Comments are closed.

Search
Posts
  • tt-rss update
  • freerdp ERRCONNECT_TLS_CONNECT_FAILED
  • Windose – kein Internet
  • Rechner ohne IP
  • Goodbye Nvidia
Archives
Categories
Tags
3D-Printing Android Apple Arch BBOS/QNX cli Container Database Debian/GNU Linux Docker foo.li FSFE fvwm git Gnome Gnusocial Groupware irc IT Java LaTeX lvm Mail Mobile Movies Multimedia Music Nonsense Office Packaging PHP Puppet Redmine SQL Think-About Uncategorized Vaping vim Virtualisierung Web Win WTF www-links X11 XMPP
Meta
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Blogroll
  • Datentraeger Pics
  • foo.li systeme + software
  • GnuSocial.li
Proudly powered by WordPress | Theme: Doo by ThemeVS.