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 :
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 :
- réparer le fichier en suivant les indications du site;
- supprimer les événements corrompus.
Note : un événement commence par une ligne BEGIN:VEVENT
et se termine par une ligne END:VEVENT