Lo stesso file .ics può indicare cinque orari diversi
Pubblicato il 07/09/2026 · 4 min di lettura · Strumenti per file
Daniel Okonkwo — Sviluppatore front-end e redattore Tech presso OneKitly
Performance web · Formati di file
Verificato su 3 fonti
Una riga DTSTART esiste in tre forme. DTSTART:20260908T080000Z finisce con Z: è un istante in UTC — lo stesso momento per tutti, e l'unica forma che nulla può leggere male. DTSTART;TZID=Europe/Paris:20260907T140000 è un'ora d'orologio accompagnata dal nome del fuso a cui appartiene, ed è corretta solo se chi la legge conosce quel fuso. DTSTART:20260907T140000, senza Z né TZID, è un'ora fluttuante: le due del pomeriggio ovunque tu sia, ciò che si vuole per un conto alla rovescia di Capodanno e quasi mai per una riunione. Il caso pericoloso è il secondo trattato senza cura: togli il TZID, tieni le cifre, e l'ora d'orologio si riancora alla macchina che legge. Il visualizzatore ti dice qui quale delle tre hai davanti prima di ogni conversione, e i convertitori trasmettono il fuso intatto invece di indovinare.
iCalendar scrive un orario d'inizio in tre modi, e solo uno è privo di ambiguità. Una riunione scritta con un fuso nominato, convertita su macchine a Parigi, New York e Honolulu, si è distesa su diciannove ore e ha cambiato giorno.
Perché il file nomina un fuso anziché uno scarto
Scrivere +02:00 fisserebbe la riunione a un numero che smette di essere vero due volte l'anno. Un appuntamento settimanale alle 14:00 a Parigi è +02:00 a settembre e +01:00 a novembre, e il senso di un evento ricorrente è che resti alle due del pomeriggio da entrambi i lati del cambio. Nominare Europe/Paris dice quale regolamento applicare; lo scarto si legge poi, data per data, in una banca dati dei fusi aggiornata ogni volta che un paese sposta gli orologi.
È anche il motivo per cui convertire un'ora TZID in UTC non è una sottrazione da fare a mente, e per cui uno strumento senza banca dati dei fusi non dovrebbe provarci. Tenere il nome e le cifre d'orologio esattamente come il file le ha scritte non perde nulla; sostituirle con un istante calcolato dal fuso sbagliato sì, ed è il tipo di errore che sembra normale sullo schermo finché qualcuno non entra in videochiamata con un'ora di ritardo.
L'evento di giornata intera, che non è un orario
Un compleanno, una festività o un giorno libero si scrive DTSTART;VALUE=DATE:20261225 — otto cifre, nessun orario, e il parametro che lo dice. Significa tutto il 25 dicembre ovunque si trovi chi legge, il che è esattamente giusto per Natale e sarebbe falso come istante. Riscrivilo come data-ora e diventa mezzanotte UTC, ancora il 25 in Europa e già il 24 a ovest di Greenwich. Il marcatore VALUE=DATE viene qui trasmesso tale e quale, invece di essere risolto in un'ora.
Che cosa controllare prima di fidarsi di un calendario importato
Apri il file nel visualizzatore e guarda un evento di cui conosci l'ora reale. Se lì è giusta, il file è giusto, e ogni disaccordo successivo viene dall'applicazione in cui hai importato. Tre abitudini coprono quasi tutto: preferisci la forma Z quando pubblichi un calendario a cui altri si abbonano, conserva il TZID quando sposti il tuo calendario fra applicazioni, e non modificare mai un orario d'inizio a mano in un editor di testo senza guardare in quale delle tre forme è scritta la riga.
| Macchina che legge il file | In che cosa diventano le 14:00 | Scarto |
|---|---|---|
| Europe/Paris | 20260907T120000Z | corretto |
| UTC | 20260907T140000Z | +2 h |
| America/New_York | 20260907T180000Z | +6 h |
| Asia/Tokyo | 20260907T050000Z | -7 h |
| Pacific/Honolulu | 20260908T000000Z | +12 h, il giorno dopo |
Domande frequenti
- I miei eventi importati sono tutti spostati di una o due ore. Che è successo?
- Uno scarto costante su tutti gli eventi è la firma di un fuso tolto e sostituito. Apri l'.ics originale nel visualizzatore: se gli orari d'inizio sembrano giusti lì, il file ha conservato il suo fuso ed è l'applicazione d'importazione ad applicarne un altro — controlla la sua impostazione di fuso del calendario, distinta da quella del sistema. Uno scarto che varia da evento a evento è un altro problema, di solito un misto di orari Z e fluttuanti nello stesso file.
- Quale forma usare quando pubblico un calendario?
- Z per tutto ciò che ha un istante fisso — un webinar, una partita, una scadenza — perché nulla può leggerlo male e non serve una banca dati dei fusi dall'altra parte. TZID per un calendario che le persone vivono localmente, come un orario scolastico o quello di un ufficio, dove è l'ora d'orologio a dover restare al suo posto al cambio dell'ora. VALUE=DATE per le giornate intere. Orari fluttuanti solo quando intendi davvero l'ora locale ovunque, il che in pratica si riduce a Capodanno e a poco altro.
- Il visualizzatore modifica il mio file?
- No. Legge il file nel tuo browser e mostra ciò che contiene; il file su disco resta intatto e nulla viene inviato da nessuna parte. È il senso del guardare prima di convertire: puoi chiudere una discussione su un orario d'inizio senza impegnarti in nulla.
Articoli che potrebbero interessarti
Tutte le guide →Strumenti correlati
Fonti
Hai notato un errore in questo articolo?