Titel, locatie, datum en tijd, tijdzone, herhaling, genodigden, meldingen en notities — download daarna het .ics-bestand of open het direct in je agenda. Je kunt ook een planning plakken of een document of foto toevoegen om meerdere evenementen tegelijk te maken.

Wat is jCal, en hoe verschilt het van een .ics-bestand?

jCal is iCalendar geschreven als JSON, gestandaardiseerd als RFC 7265 in 2014. Het bevat exact dezelfde gegevens als een .ics-bestand — dezelfde eigenschappen, parameters en componenten — in geneste arrays in plaats van objecten, omdat een component een eigenschap kan herhalen en de volgorde van belang kan zijn. Een agenda is ["vcalendar", [eigenschappen], [componenten]], elke eigenschap is [naam, parameters, waardetype, waarde], dus SUMMARY:Standup wordt ["summary", {}, "text", "Standup"]. Dit is niet hetzelfde als schema.org Event in JSON-LD, dat een event beschrijft voor zoekmachines en veel minder gegevens bevat. ICS Maker schrijft .ics en jCal vanuit één en hetzelfde eventmodel in plaats van tussen beide te converteren, zodat de twee nooit met elkaar in tegenspraak kunnen zijn over wat het event inhoudt.

De structuur

RFC 7265 vertaalt iCalendar naar arrays in plaats van objecten, omdat volgorde en herhaling van belang zijn in een agenda en JSON-objecten bieden geen van beide. Een agenda is ["vcalendar", [properties], [components]], en elke eigenschap is [name, parameters, valueType, value] — de naam in kleine letters, de parameters een object, het type een van de RFC 5545-waardetypes.

Zo wordt SUMMARY:Standup ["summary", {}, "text", "Standup"], en een starttijd met tijdzone wordt ["dtstart", {"tzid":"Europe/London"}, "date-time", "2026-08-15T09:00:00"]. Datum-tijden krijgen hier hun ISO-schrijfwijze, niet de compacte schrijfwijze van iCalendar, en de tijdzone verhuist naar een parameter.

Waarom het de moeite waard is

iCalendar is een tekstformaat met regelvouwing, escape-regels en CRLF-regeleindes, en het correct verwerken ervan is meer werk dan het lijkt. jCal geeft dezelfde semantiek — tijdzones, herhalingsregels, alarmen, deelnemers — door aan alles wat al JSON spreekt, zonder dat er een parser geschreven hoeft te worden. Dat is iets anders dan schema.org’s Event, dat deze pagina ook kan genereren: JSON-LD beschrijft een event voor een zoekmachine en laat het grootste deel weg van wat een agenda nodig heeft.

Hoe deze pagina het genereert

Beide formaten worden geschreven vanuit hetzelfde event, niet uit elkaar geconverteerd. Een converter zou elke escape-beslissing van de tekstvorm overnemen, en jCal-waarden worden expliciet niet ge-escaped — JSON regelt zijn eigen aanhalingstekens. Door beide vanuit één model te schrijven, kunnen ze nooit van mening verschillen over wat het event inhoudt, alleen over hoe het gespeld wordt.

Vragen

Wat is jCal?
jCal is het JSON-formaat voor iCalendar, gestandaardiseerd als RFC 7265 in 2014. Het bevat exact dezelfde gegevens als een .ics-bestand — dezelfde eigenschappen, parameters en componenten — met behulp van geneste JSON-arrays, zodat het in beide richtingen kan worden omgezet zonder betekenis te verliezen.
Is jCal hetzelfde als JSON-LD of schema.org Event?
Nee. jCal is een volledige mapping van iCalendar, dus het bevat herhalingsregels, tijdzones, alarmen en de deelnamestatus van genodigden. schema.org Event in JSON-LD is een beschrijving van een event voor zoekmachines en andere lezers, en bevat bewust veel minder. Deze builder genereert beide, vanuit hetzelfde event.
Waarom gebruikt jCal arrays in plaats van objecten?
Omdat een agendacomponent dezelfde eigenschap meer dan eens kan bevatten — meerdere genodigden, meerdere uitzonderingsdata — en de volgorde van belang kan zijn. Een JSON-object met de eigenschapsnaam als sleutel kan geen van beide weergeven, dus gebruikt RFC 7265 in plaats daarvan positionele arrays.
Wat leest jCal?
Het is een niche-formaat, goed ondersteund in JavaScript-agendabibliotheken zoals ical.js en beschikbaar in verschillende server-side iCalendar-toolkits. Reguliere agenda-applicaties verwachten nog steeds .ics, gebruik jCal dus tussen je eigen systemen en geef mensen het .ics-bestand.