Titolo, luogo, data e ora, fuso orario, ripetizione, invitati, avvisi e note; poi scarica il file .ics o aprilo direttamente nel calendario. Puoi anche incollare un programma o allegare un documento o una foto per creare più eventi insieme.

Cos'è jCal e in cosa differisce da un file .ics?

jCal è iCalendar scritto in JSON, standardizzato come RFC 7265 nel 2014. Contiene esattamente gli stessi dati di un file .ics — le stesse proprietà, parametri e componenti — in array annidati anziché in oggetti, perché un componente può ripetere una proprietà e l'ordine può essere significativo. Un calendario è ["vcalendar", [properties], [components]], ogni proprietà è [name, parameters, valueType, value], quindi SUMMARY:Standup diventa ["summary", {}, "text", "Standup"]. Non è la stessa cosa dello schema.org Event in JSON-LD, che descrive un evento per i motori di ricerca e ne conserva molto meno. ICS Maker scrive .ics e jCal a partire da un unico modello di evento anziché convertire l'uno nell'altro, così i due non possono essere in disaccordo su cosa sia l'evento.

La struttura

La RFC 7265 mappa iCalendar su array anziché su oggetti, perché in un calendario l'ordine e la ripetizione contano, e gli oggetti JSON non offrono né l'uno né l'altra. Un calendario è ["vcalendar", [properties], [components]], e ogni proprietà è [name, parameters, valueType, value] — il nome in minuscolo, i parametri un oggetto, il tipo uno dei tipi di valore della RFC 5545.

Così SUMMARY:Standup diventa ["summary", {}, "text", "Standup"], e un orario di inizio con fuso orario diventa ["dtstart", {"tzid":"Europe/London"}, "date-time", "2026-08-15T09:00:00"]. Qui le date-ora assumono la loro forma ISO, non quella compatta di iCalendar, e il fuso orario si sposta in un parametro.

Perché vale la pena averlo

iCalendar è un formato testuale con ripiegamento delle righe, regole di escape e terminazioni CRLF, e analizzarlo correttamente è più laborioso di quanto sembri. jCal consegna la stessa semantica — fusi orari, regole di ricorrenza, allarmi, partecipanti — a qualunque cosa parli già JSON, senza bisogno di scrivere un parser. È un compito diverso da quello di Event di schema.org, che questa pagina può generare anch'esso: JSON-LD descrive un evento per un motore di ricerca e appiattisce gran parte di ciò di cui un calendario ha bisogno.

Come questa pagina lo genera

Entrambi i formati vengono scritti a partire dallo stesso evento, non convertiti l'uno dall'altro. Un convertitore erediterebbe ogni decisione di escape dalla forma testuale, mentre i valori jCal sono esplicitamente non sottoposti a escape — JSON gestisce da sé le proprie virgolette. Scrivere entrambi a partire da un unico modello fa sì che non possano essere in disaccordo su cosa sia l'evento, ma solo su come viene scritto.

Domande

Cos'è jCal?
jCal è il formato JSON per iCalendar, standardizzato come RFC 7265 nel 2014. Rappresenta esattamente gli stessi dati di un file .ics — le stesse proprietà, parametri e componenti — usando array JSON annidati, così può essere convertito in entrambe le direzioni senza perdere significato.
jCal è la stessa cosa di JSON-LD o di schema.org Event?
No. jCal è una mappatura completa di iCalendar, quindi contiene regole di ricorrenza, fusi orari, allarmi e lo stato di partecipazione dei partecipanti. schema.org Event in JSON-LD è una descrizione di un evento per i motori di ricerca e altri lettori, e ne conserva deliberatamente molto meno. Questo builder genera entrambi, a partire dallo stesso evento.
Perché jCal usa array invece di oggetti?
Perché un componente di calendario può contenere più volte la stessa proprietà — più partecipanti, più date di eccezione — e l'ordine può essere significativo. Un oggetto JSON indicizzato per nome di proprietà non potrebbe rappresentare né l'uno né l'altro caso, per questo la RFC 7265 usa invece array posizionali.
Cosa legge jCal?
È un formato di nicchia, ben supportato nelle librerie di calendario JavaScript come ical.js e disponibile in diversi toolkit iCalendar lato server. Le applicazioni di calendario più diffuse si aspettano ancora file .ics, quindi usa jCal tra i tuoi sistemi e consegna alle persone il file .ics.