Posso modificare e sincronizzare un calendario di iCal su più computer?

Attualmente iCal permette di condividere un calendario su internet fra più computer, e interagire sullo stesso, se e solo se è pubblicato su account .mac e se viene utilizzato solo da sistemi Apple.
Se si vuole invece avere un calendario condiviso fra più utenti (Mac, Windows o Linux che siano) su un qualsiasi account con supporto WebDAV (come nel nostro esempio iCal Exchange), bisognerà procedere in un'altro modo e stare attenti nell'utilizzo di iCal...

Il problema è che iCal non permette di interagire sul medesimo calendario, in quanto non registra le modifiche fatte dagli altri utenti, anzi se si tenta di “risincronizzarlo” con quello disponibile on-line cancellerà le modifiche da quello on-line, perdendo preziosi appuntamenti, e riportandolo alla versione presente nel nostro Mac.

Vediamo quindi di aggirare il problema e vedere come raggiungere facilmente il nostro intento.

  1. Innanzitutto creiamo un nostro account gratuito sul sito iCal Exchange così da poter pubblicare il nostro calendario.
  2. Fatto questo creiamo il calendario con iCal e pubblichiamolo, agendo sulla voce Pubblica all'interno del menu Calendario.
    Nella finestra che si aprirà alla voce Pubb. calendario scegliamo su un server WebDAV (o un server privato nel caso di Tiger) quindi inseriamo l'Url di base, Login e Password.
    (per esempio ipotizziamo che l'Url sia http://www.icalx.com/public/nome/ che il Login sia nome e la Password psw).
    Avremo ottenuto quindi di aver pubblicato il nostro calendario, chiamato ad esempio Test, sul server di iCal Exchange.

Per Mac OS X Tiger

Fino a qui abbiamo ottenuto la possibilità di pubblicare il nostro calendario personale su internet, ma vediamo come è possibile fare si che possa essere tenuto sincronizzato fra più Mac..

1. MySync

In Mac OS X Tiger, rispetto alla versione precedente del sitema operativo (Mac OS X Panther), il metodo con cui iCal salva i calendari è stato radicalmente modificato e quindi un metodo per avere lo stesso calendario sincornizzato su più Mac, senza utilizzare il supporto .mac, è quello di utilizzare un programma gratuito chiamato MySync al fine di evitare di esportare ed importare manualmente lo stesso calendario ogni giorno.

2. Script di Shell

Come dicevo, in Tiger, i calendari vengono spezzati per categorie all'interno della cartella ~/Library/Application Support/iCal/Sources/, nella quale vi sono diverse cartelle con dei nomi proprietari che comunque finiscono tutte con .calendar.

Dentro a questa cartella c'è il calendario .ics (corestorage.ics), un file di indice (index appunto) e info.plist che aperto con un editor rivela il nome del calendario al quale quella particolare cartella appartiene.
Sapute queste informazioni è possibile realizzare una piccola applicazione (uno script di shell per l'appunto) che scarichi il calendario disponibile on-line andando a sostituire quello presente nella cartella ~/Library/Application Support/iCal/Sources/nome.calendar presente nella nostra home.
Apriamo quindi il nostro Terminale (presente in Applicazioni > Utility) e al prompt digitiamo:

vim script.sh

In questo modo inizieremo a scrivere un nuovo file chiamato script.sh che sarà presente nella nostra home.
Nella pagina che si aprirà, sempre all'interno del terminale incominciamo a scrivere il testo seguente:

#!/bin/bash
USER=nome
PASSWORD=psw
URL=http://www.icalx.com/public/nome/
CALC1=Test.ics

curl \
-u $USER:$PASSWORD \
$URL$CALC1 -o ~/Library/Application Support/iCal/Sources/nome.calendar/corestorage.ics


open -a iCal.app
exit

Per comprensione si sono utilizzati i nomi usati negli esempi precedenti.
Nello script è stato ipotizzato che il nome del calendario disponibile on-line abbia nome Test.ics (quinta riga il nome dello script), nel caso il nome fosse differente va modificato.
Da inserire correttamente nello script, al posto di nome.calendar, il nome della cartella dove è contenuto il file corestorage.ics che si riferisce al nostro calendario che vogliamo mantenere sincronizzato.

Finito di scrivere lo script, basterà premere il tasto esc della tastiera, poi la sequenza :wq, così da uscire e salvare il nostro lavoro.
Dopo, per rendere eseguibile il nostro script, sempre all'interno del terminale, dovremo digitare

chmod +x script.sh

Ora per eseguirlo (con iCal non in esecuzione), sempre dal terminale, digiteremo

./script.sh

Se tutto sarà stato eseguito correttamente il nostro script si prenderà l'onere di copiare il calendario on-line sul nostro Mac ed eseguire iCal così da poter vedere le modifiche al calendario.

Per Mac OS X Panther

Ora visto che sappiamo che iCal non gestirebbe le modifiche che altri utenti potrebbero effettuare a quel calendario on-line, vediamo due modi su come possiamo agire: il primo impiegherà un programma gratutio chiamato Sunbird, mentre il secondo un semplicissimo script di shell, vediamoli entrambi...

1. Mozilla Sunbird

  1. Scarichiamo il programma, disponibile per i principali sistemi operativi, dal sito http://www.mozilla.org/projects/calendar/sunbird_download.html
  2. Dopo averlo installato, e con il programma iCal non in esecuzione, andremo ad aggiungere a Sunbird un nuovo calendario, quindi andiamo in File e scegliamo la voce New Calendar File.
  3. Nella finestra che si aprirà inseriremo un nome alla voce Calendar Name, sceglieremo un colore (Color) e inseriremo nella casella Remote Server URL http://www.icalx.com/public/nome/Test.ics.
    Nella casella Local File Location dovremo cercare, tramite il tasto Browse... il calendario salvato sul nostro Mac, quindi portiamoci in ~/Libreria/Calendars (~/Library/Calendars se avete il sistema in lingua inglese) e selezioniamo il file Test.ics.
    All'avviso che Sunbird ci mostrerà scegliamo il tasto Replace.
  4. In questo modo avremo fatto si che quando Sunbird si sincronizzerà con il calendario on-line (Mela+R), andrà anche a sostituire quello presente in ~/Libreria/Calendars, quindi quello di iCal.
    È per questo motivo che la sincronizzazione in Sunbird deve essere fatta con iCal non in esecuzione e prima che iCal venga avviato.

2. Script di Shell

Il nostro scopo è quello di realizzare una piccola applicazione (uno script di shell per l'appunto) che copi il calendario disponibile on-line andando a sostituire quello presente nella cartella ~/Libreria/Calendars presente nella nostra home.
Apriamo quindi il nostro Terminale (presente in Applicazioni > Utility) e al prompt digitiamo:

vim script.sh

In questo modo inizieremo a scrivere un nuovo file chiamato script.sh che sarà presente nella nostra home.
Nella pagina che si aprirà, sempre all'interno del terminale incominciamo a scrivere il testo seguente:

#!/bin/bash
USER=nome
PASSWORD=psw
URL=http://www.icalx.com/public/nome/
CALC1=Test.ics

curl \
-u $USER:$PASSWORD \
$URL$CALC1 -o ~/Library/Calendars/Test.ics

open -a iCal.app
exit

Per comprensione si sono utilizzati i nomi usati negli esempi precedenti.
Nello script è stato contemplato il fatto che il nome del calendario disponibile on-line non corrisponda con il nome di quello presente nel nostro Mac, infatti basterà inserire al posto di Test.ics in quinta riga il nome del calendario on-line, mentre al posto di Test.ics presente in nona riga il nome del calendario sul nostro Mac.

Finito di scrivere lo script, basterà premere il tasto esc della tastiera, poi la sequenza :wq, così da uscire e salvare il nostro lavoro.
Dopo, per rendere eseguibile il nostro script, sempre all'interno del terminale, dovremo digitare

chmod +x script.sh

Ora per eseguirlo (con iCal non in esecuzione), sempre dal terminale, digiteremo

./script.sh

Se tutto sarà stato eseguito correttamente il nostro script si prenderà l'onere di copiare il calendario on-line sul nostro Mac ed eseguire iCal così da poter vedere le modifiche al calendario.

[ Home | Elenco delle FAQ | Risorse | Feed RSS ]