<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<root domanda="Posso modificare e sincronizzare un calendario di iCal su più computer?" lastedit="1164962509" lasteditor="marco" lastupdate="1164962509" number="310" owner="stagni" type="faq">
  <args>
    <arrayitem value="utils" />
  </args>
  <note></note>
  <relateds>
    <arrayitem value="329" />
    <arrayitem value="105" />
  </relateds>
  <risposta>&lt;p&gt;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.&lt;br /&gt;
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 &lt;a href=&quot;http://www.icalx.com/&quot; target=&quot;_blank&quot;&gt;iCal Exchange&lt;/a&gt;), bisognerà procedere in un'altro modo e stare attenti nell'utilizzo di iCal...&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Vediamo quindi di aggirare il problema e vedere come raggiungere facilmente il nostro intento.&lt;/p&gt;

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

&lt;p&gt;&lt;b&gt;Per Mac OS X Tiger&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;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..&lt;/p&gt;

&lt;p&gt;&lt;b&gt;1. MySync &lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;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 &lt;a href=&quot;http://www.mildmanneredindustries.com/mysync/index.html&quot; target=&quot;_blank&quot;&gt;MySync&lt;/a&gt; al fine di evitare di esportare ed importare manualmente lo stesso calendario ogni giorno.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;b&gt;2. Script di Shell &lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;br /&gt;
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/&lt;em&gt;nome.calendar&lt;/em&gt; presente nella nostra home.&lt;br /&gt;
Apriamo quindi il nostro Terminale (presente in Applicazioni &amp;gt; Utility) e al prompt digitiamo:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;vim script.sh&lt;/p&gt;&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;#!/bin/bash&lt;br /&gt;
USER=nome&lt;br /&gt;
PASSWORD=psw&lt;br /&gt;
URL=http://www.icalx.com/public/nome/&lt;br /&gt;
CALC1=Test.ics&lt;br /&gt;
&lt;br /&gt;
curl \&lt;br /&gt;
-u $USER:$PASSWORD \&lt;br /&gt;
$URL$CALC1 -o ~/Library/Application Support/iCal/Sources/&lt;em&gt;nome.calendar&lt;/em&gt;/corestorage.ics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
open -a iCal.app&lt;br /&gt;
exit&lt;/p&gt;
&lt;/blockquote&gt;

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

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

&lt;blockquote&gt;&lt;p&gt;chmod +x script.sh&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Ora per eseguirlo (con iCal non in esecuzione), sempre dal terminale, digiteremo&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;./script.sh&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;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.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;b&gt;Per Mac OS X Panther&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;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...&lt;/p&gt;

&lt;p&gt;&lt;b&gt;1. Mozilla Sunbird &lt;/b&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;b&gt;2. Script di Shell &lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;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.&lt;br /&gt;
Apriamo quindi il nostro Terminale (presente in Applicazioni &amp;gt; Utility) e al prompt digitiamo:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;vim script.sh&lt;/p&gt;&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;#!/bin/bash&lt;br /&gt;
USER=nome&lt;br /&gt;
PASSWORD=psw&lt;br /&gt;
URL=http://www.icalx.com/public/nome/&lt;br /&gt;
CALC1=Test.ics&lt;br /&gt;
&lt;br /&gt;
curl \&lt;br /&gt;
-u $USER:$PASSWORD \&lt;br /&gt;
$URL$CALC1 -o ~/Library/Calendars/Test.ics&lt;br /&gt;
&lt;br /&gt;
open -a iCal.app&lt;br /&gt;
exit&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Per comprensione si sono utilizzati i nomi usati negli esempi precedenti.&lt;br /&gt;
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 &lt;em&gt;Test.ics&lt;/em&gt; in quinta riga il nome del calendario on-line, mentre al posto di &lt;em&gt;Test.ics&lt;/em&gt; presente in nona riga il nome del calendario sul nostro Mac.&lt;/p&gt;

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

&lt;blockquote&gt;&lt;p&gt;chmod +x script.sh&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Ora per eseguirlo (con iCal non in esecuzione), sempre dal terminale, digiteremo&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;./script.sh&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;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.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;</risposta>
</root>
