Importer un vCard sur un serveur CardDAV

Cet article peut s’inclure dans la partie Dégooglisons Internet, même si l’outil qui va être décrit ici n’a pas été utilisé pour ce cas précis.

En effet, suite à plusieurs problèmes récemment rencontrés avec OwnCloud sur l’application Contacts, j’ai décidé de migrer mes contacts d’OwnCloud vers un autre serveur de type CardDAV.

Je ne vais pas décrire l’installation de l’autre serveur CardDAV, simplement le nouveau serveur n’avait pas de fonction Import pour les fiches vCards. Après quelques heures de recherche sur Internet, j’ai décidé de faire moi-même un script pour importer mes contacts sur le nouveau serveur.

Récupérer le vCard

Dans un premier temps, il faut exporter les contacts dans un fichier au format vCard (un .vcf), OwnCloud permet de le faire directement depuis l’application Contacts.

Si vous utilisez Google, je vous invite à faire un passage sur le site Google Takeout qui permet de récupérer ses contacts dans le format vCard.

Il n’est pas impossible que je fasse le script cardexport.sh un jour prochain… mais pour l’instant, il faudra vous satisfaire des fonctions proposées par votre serveur actuel.

Importer les nouveaux contacts

Ensuite, afin d’importer les contacts sur le nouveau serveur, on va utiliser le script cardimport.sh présent sur mon compte GitHub (oui, je sais, il faut migrer sous GitLab parce que GitHub saymal, mais là n’est pas l’objet).

Dans ce script, il faut modifier les premières lignes pour les adapter au serveur de destination.

# your user name, if you have a ':' in it, change your login or find another script as it will not work with this script
user='username'
# your password, theoretically any characters are allowed, even ':' or '@'
pass='YourSuperPassword'
# name of the collection
cardsCollection='contacts'
# url of your server, for example with davical
serverURL='https://cal.example.org/caldav.php/'
# sometimes you may have to edit the following part
serverFullURL=${serverURL}/${user}/${cardsCollection}/

Il est laissé le soin au lecteur de deviner ce qu’il faut modifier et se référer à la documentation de son serveur CardDAV pour connaître les URL.

Une fois fait, il suffit de lancer le script avec la commande suivante et d’attendre :

bash cardimport.sh Contacts.vcf

En remplaçant, bien évidemment, le fichier Contacts.vcf par le nom de votre fichier qui contient les vCards.

À noter que ce script ne fonctionne que pour les machines de type Unix ayant curl, sed, grep et bash d’installés (ce qui devrait couvrir toutes les distributions Linux, et fonctionne probablement aussi avec cygwin).

Haut de page