meta données pour cette page
Ceci est une ancienne révision du document !
Khal pour un agenda synchronisé avec nextcloud
Dans le but d'utiliser de moins en moins thunderbird qui me permettait d'ouvrir plusieurs boites mails ainsi que consulter mon agenda synchronisé avec mon instance nextcloud faisant office de cloud personnel. En ce qui concerne les mails, j'utilise maintenant le client irssi et pour mon agenda, nous allons dans ce tutoriel expliquer la mise en place de khal qui permet de récupérer les agenda (Caldav) entre autre celle créer par mon cloud.
Installation
D'abord, nous installons les dépendances de python 3 :
apt install python3 python3-pip
Et on installe depuis le dépôt Debian les logiciels que nous aurons essentiellement besoin (khal et vdirsyncer) :
apt install khal
Ou sinon : Sinon pour avoir la dernière version, voici la procédure à suivre.
pip3 install git+git://github.com/pimutils/khal.git
pip3 install --user --ignore-installed vdirsyncer
Configuration
Vdirsyncer
Nous allons d'abord commencé par vdirsyncer qui va permettre de récupérer les évènements créer dans l'agenda sous forme de fichier .ics.
mkdir -p /.config/vdirsyncer/data mkdir -p /.config/vdirsyncer/local nano /.config/vdirsyncer/config
- config
[general] status_path = "~/.config/vdirsyncer/data/" [pair personal] a = "personal_local" b = "personal_remote" collections = ["from a", "from b"] conflict_resolution = "b wins" metadata = ["displayname", "color"] [storage personal_local] type = "filesystem" path = "~/.config/vdirsyncer/local/" fileext = ".ics" [storage personal_remote] type = "caldav" url = "https://mon-site.com/remote.php/dav/calendars/utilisateur/personal/" verify_fingerprint = "93:1B:C4:77:8C:27:7C:7B:AA:AA:E0:8E:7B:05:0A:1B:D5:7D:AE:7B" verify = false username = "utilisateur" password = "mot2pass"
Dans le premier bloc, on définit l'emplacement des données qu'il va récupérer. C'est en quelque sorte son dossier “/tmp/”. Dans le second bloc, on déclare les espace de stockage et la méthode qui va être utilisé en cas de conflit lors d'une synchronisation. Dans le troisième bloc, on déclare l'espace de stockage locale qui va ensuite être lut par khal. Dans le quatrième bloc, on donne les identifiants et le chemin d'accès au caldav. Si la connexion au serveur se fait via HTTPS, alors il faudra récupérer le fingerprint du certificat SSL avec la commande ci-dessous :
openssl s_client -connect mon-site.com:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin
Ceci fait, il faudra alors lancer la synchronisation avec :
vdirsyncer discover personal && vdirsyncer sync personal
Ces commandes ont le même principe de git. Dans un premier temps on fetch pour prendre conscience de ce qu'il y a sur le serveur puis on pull pour récupérer les changements. Le dernier argument personal est utilisé lors de la déclaration du pair [pair personal] dans le fichier de configuration.
Pour que la synchronisation se lance régulièrement et de manière automatique, il faudra utiliser crontab.
Khal
Passons maintenant à la configuration de Khal :
mkdir -p ~/.config/khal/
- khal.conf
[calendars] [[personal]] path = ~/.config/vdirsyncer/local/personal/ color = dark green [sqlite] path = ~/.config/khal/khal.db [locale] timeformat = %H:%M dateformat = %d-%m-%Y longdateformat = %d-%m-%Y datetimeformat = %d-%m-%Y %H:%M longdatetimeformat = %d-%m-%Y %H:%M firstweekday = 0 [default] default_command = calendar default_calendar = "personal" highlight_event_days = True
Dans la premier bloc, nous spécifions l'emplacement des .ics précédemment téléchargé. Dans le second bloc, la base de donnée. Dans le troisième bloc, le format des dates. Dans le quatrième bloc, le calendrier par défaut chargé lors de l'appel de la commande khal.