Comment fonctionne le processus de synchronisation ?
J'ai employé WebDav pendant un moment pour permettre iCal de publier et souscrire mes calendriers via un serveur web; Le problème était que seulement un Mac peut publier les calendriers sur le serveur tandis que les autres peuvent juste y souscrire, ainsi je pouvais "synchronisé" mes calendriers sur autant de Macs que je le souhaitais mais je ne pouvais modifier ces calendriers que depuis un seul Mac, l'"éditeur", les autres pouvant juste mettre à jour leur copie locale en cas de modifications faites aux calendriers depuis le Mac éditeur.
Cela vient du fait que le dispositif de "synchronisation" de WebDav consiste en une simple copie du fichier calendrier à (publier) et depuis le serveur (souscrivant), ce n'est donc pas une véritable synchronisation élément par élément vérifiant que chaque tâche ou événement du calendrier a été récemment ajouté ou modifié. J'aie donc conçu iSynCal (initialement pour mon usage personnel) pour surmonter cette limitation et pour avoir mes calendriers synchronisés sur tous mes ordinateurs, et surtout, pouvoir les éditer sur tous mes ordinateurs... Il m'était même utile d'avoir PHPiCalendar installé sur un de mes ordinateurs pour vérifier mes rendez-vous et les tâches de n'importe quel endroit du globle en utilisant un simple navigateur. Vous pouvez trouvez de bons tutoriaux sur le paramétrage de WebDAV sur OS X et l'installation et configuration de PHPiCalendar sur le site web de Greg Westin.
iSynCal fonctionne d'une manière totalement différente : quand une synchronisation est lancée, elle analyse toutes les données des calendriers et synchronise les événements et tâches un par un, de sorte que l'événement ou la tâche la plus récente outrepasse l'élément correspondant de l'autre côté, et si des événements ou des tâches ont été ajoutés, les nouveaux éléments sont copiés entre les calendriers.
Toutes les applications du type iCal identifient de façon unique les éléments d'un calendrier (événement ou tâche) en utilisant un identificateur unique (UID) généré automatiquement quand une nouvelle entrée est créée dans un calendrier ; pour votre information, c'est du style DACD31F6-258C-11D8-A53A-000A9586DA02.
iSynCal fait une utilisation intensive de ces UID pour identifier les entrées du calendrier lors de la sunchronisation et qu'il compte seulement sur l'UID pour identifier les événements et tâches. Si vous créez sur un ordinateur un événement comportant une certaine description, date/heure de début, durée, etc... et que plus tard vous créez sur un deuxième ordinateur un autre événement qui pourrait sembler être identique à l'ancien (parce qu'il aurait la mêmes description, date/heure de début, durée, etc...), alors ces événements seraient identifiés comme deux événements différents par iSynCal en raison de leur UID différent. Donc pendant une synchronisation, ils seraient copiés entre les calendriers et ne seraient en aucun cas synchronisés.
Pour synchroniser correctement un événement ou une tâche, il ne doit être créé avec iCal qu'une seule fois sur un ordinateur de sorte qu'il soit copié sur l'autre calendrier lors de la synchronisation iSynCal suivante (l'option Copier les nouveaux événements/tâches entre calendriers doit être activée). De cette façon toute modification ultérieure de l'événement ou de la tâche entrainera sa synchronisation (l'option Synchroniser les événements/tâches existant déjà dans les deux calendriers doit être activée), car l'événement a le même UID dans les deux calendriers.
Veuillez noter qu'iCal doit être fermé sur les deux ordinateurs avant de lancer une synchronisation, sinon les nouvelles données ne seront pas enregistrées dans les fichiers calendriers et des pertes de données peuvent se produire. iSynCal va quitter automatiquement iCal mais seulement sur l'ordinateur local (celui où iSynCal fonctionne) quand une synchronisation est lancée, donc vous devez quitter iCal sur l'ordinateur distant avant de lancer une synchronisation! Si vous voulez qu'iSynCal quitte aussi automatiquement iCal sur le Mac distant, veuillez lire ceci.