Publié le 05/01/2018, rédigé par Gaulthier LALLEMAND

DAViCal

Importer/exporter des calendriers depuis/vers un serveur DAViCal.

Sommaire : Monter son propre service de calendrier

Etape précédente : Sauvegarder et restaurer un serveur DAViCal.

Exporter un calendrier

1) Configuration du serveur

Pour permettre aux utilisateurs d'exporter leurs calendriers au format iCalendar, je dois modifier le fichier de configuration de davical :

sudo nano -c /etc/davical/config.php

Puis je dois y ajouter la ligne suivante :

$c->get_includes_subcollections
2) Export du calendrier

Je me connecte sur l'interface web du serveur DAViCal, puis je vais dans le menu User Functions et View My Details.

Je me rends à la section Principal Collections et je clique sur le calendrier que je souhaite exporter.

Sur la page des propriétés du calendrier, à la ligne Items in Collection, je clique sur le nombre :

DAViCal Export calendar

J'obtiens alors un fichier au format iCalendar. Dans mon exemple, le fichier est nommé work_calendar.ics.

Note : un agenda ayant zéro item ne peut pas être exporté.

Importer un calendrier

Pour importer un calendrier, je dois disposer d'un fichier au format iCalendar (portant généralement l'extension ".ics").

Puis dans la section Principal Collections, je clique sur le calendrier dans lequel je souhaite importer mon fichier.

A la ligne Load From File, je clique sur le bouton Browse (ou Parcourir selon la langue du navigateur) et je sélectionne un fichier ".ics" sur le disque dur.

Attention : je n'oublie pas de cocher la case Append si mon calendrier contient déjà des événements que je veux garder. Si je laisse cette case décochée, les événements déjà présents seront effacés sans récupération possible!

Enfin, je valide l'import en cliquant sur APPLY CHANGES

Fichier iCalendar corrompu

Si une page web de ce genre apparaît lors de l'import :

Exception [0] Call to a member function DoResponse() on null
At line 52 of /usr/share/davical/inc/caldav-PUT-functions.php
================= Stack Trace ===================
/usr/share/davical/htdocs/admin.php[27] include_once()
/usr/share/davical/inc/ui/collection-edit.php[117] import_collection()
/usr/share/davical/inc/caldav-PUT-functions.php[672] import_calendar_collection()
/usr/share/davical/inc/caldav-PUT-functions.php[1108] rollback_on_error()

Cela signifie que mon fichier ".ics" est corrompu.

Pour résoudre ce problème, il est possible de faire vérifier son fichier sur ce site.

Les erreurs sont indiquées dans un cadre rouge, avec le numéro des lignes fautives.

Pour réparer le fichier, deux solutions :

Note : un événement commence par une ligne BEGIN:VEVENT et se termine par une ligne END:VEVENT