Tytuł, miejsce, data i godzina, strefa czasowa, powtarzanie, zaproszeni, przypomnienia i notatki — następnie pobierz plik .ics lub otwórz go bezpośrednio w kalendarzu. Możesz też wkleić harmonogram albo dołączyć dokument lub zdjęcie, aby utworzyć wiele wydarzeń naraz.

Czym jest jCal i czym różni się od pliku .ics?

jCal to iCalendar zapisany jako JSON, ustandaryzowany w 2014 roku jako RFC 7265. Zawiera dokładnie te same dane co plik .ics — te same właściwości, parametry i komponenty — w postaci zagnieżdżonych tablic zamiast obiektów, ponieważ komponent może powtarzać właściwość, a kolejność może mieć znaczenie. Kalendarz to ["vcalendar", [właściwości], [komponenty]], każda właściwość to [nazwa, parametry, typWartości, wartość], więc SUMMARY:Standup staje się ["summary", {}, "text", "Standup"]. To nie to samo co schema.org Event w JSON-LD, który opisuje wydarzenie na potrzeby wyszukiwarek i zachowuje znacznie mniej informacji. ICS Maker generuje pliki .ics i jCal z jednego modelu wydarzenia, zamiast konwertować jeden format na drugi, dzięki czemu oba nie mogą być ze sobą niespójne co do tego, czym jest dane wydarzenie.

Kształt

RFC 7265 przekłada iCalendar na tablice zamiast obiektów, ponieważ w kalendarzu liczy się kolejność i powtarzalność, a obiekty JSON nie zapewniają ani jednego, ani drugiego. Kalendarz to ["vcalendar", [properties], [components]], a każda właściwość to [name, parameters, valueType, value] — nazwa zapisana małymi literami, parametry jako obiekt, typ jeden z typów wartości z RFC 5545.

Tak więc SUMMARY:Standup staje się ["summary", {}, "text", "Standup"], a początek ze strefą czasową staje się ["dtstart", {"tzid":"Europe/London"}, "date-time", "2026-08-15T09:00:00"]. Daty i godziny przyjmują tutaj zapis w stylu ISO, a nie zwarty zapis iCalendar, a strefa czasowa przenosi się do parametru.

Dlaczego warto go mieć

iCalendar to format tekstowy z zawijaniem linii, regułami escapowania i zakończeniami CRLF, a jego poprawne parsowanie wymaga więcej pracy, niż mogłoby się wydawać. jCal przekazuje tę samą semantykę — strefy czasowe, reguły powtarzania, alarmy, uczestników — wszystkiemu, co już posługuje się JSON-em, bez potrzeby pisania parsera. To inne zadanie niż Event schema.org, który ta strona również potrafi wygenerować: JSON-LD opisuje wydarzenie na potrzeby wyszukiwarki i spłaszcza większość tego, czego potrzebuje kalendarz.

Jak ta strona go generuje

Oba formaty są zapisywane z tego samego wydarzenia, a nie konwertowane jeden z drugiego. Konwerter odziedziczyłby każdą decyzję dotyczącą escapowania z formy tekstowej, a wartości jCal są jawnie pozbawione escapowania — JSON stosuje własne cudzysłowy. Zapisywanie obu formatów z jednego modelu oznacza, że nie mogą być ze sobą niespójne co do tego, czym jest wydarzenie — a jedynie co do sposobu zapisu.

Pytania

Czym jest jCal?
jCal to format JSON dla iCalendar, ustandaryzowany w 2014 roku jako RFC 7265. Reprezentuje dokładnie te same dane co plik .ics — te same właściwości, parametry i komponenty — używając zagnieżdżonych tablic JSON, dzięki czemu można go konwertować w obie strony bez utraty znaczenia.
Czy jCal to to samo co JSON-LD lub schema.org Event?
Nie. jCal to pełne odwzorowanie iCalendar, więc zawiera reguły powtarzania, strefy czasowe, alarmy i status udziału uczestników. schema.org Event w JSON-LD to opis wydarzenia na potrzeby wyszukiwarek i innych odbiorców, celowo zachowujący znacznie mniej informacji. Ten kreator generuje oba formaty z tego samego wydarzenia.
Dlaczego jCal używa tablic zamiast obiektów?
Ponieważ komponent kalendarza może zawierać tę samą właściwość więcej niż raz — kilku uczestników, kilka dat wyjątków — a kolejność może mieć znaczenie. Obiekt JSON indeksowany nazwą właściwości nie mógłby przedstawić żadnego z tych przypadków, dlatego RFC 7265 zamiast tego wykorzystuje tablice pozycyjne.
Co odczytuje jCal?
To niszowy format, dobrze wspierany w bibliotekach kalendarza JavaScript, takich jak ical.js, oraz dostępny w kilku zestawach narzędzi iCalendar po stronie serwera. Popularne aplikacje kalendarzowe nadal oczekują plików .ics, więc używaj jCal między własnymi systemami, a ludziom przekazuj plik .ics.