Конвертер iCalendar (ICS) в JSON
Гид
Конвертер iCalendar (ICS) в JSON
Конвертер iCalendar (ICS) в JSON анализирует содержимое календаря по стандарту RFC 5545 и преобразует его в структурированный JSON, который вы можете читать, преобразовывать или передавать в другую программу. Вставьте экспортированный файл .ics из Google Calendar, Apple Calendar или Outlook, и инструмент раскроет длинные строки, раскроет значения TEXT, разделяет параметры свойств от значений, преобразует DTSTART и DTEND в формат ISO 8601 и преобразует RRULE в объект — всё это происходит прямо в вашем браузере. Никаких данных не загружаются на сервер.
Как использовать
- Вставьте содержимое файла .ics в поле ввода или перетащите файл на загрузчик.
- Выберите ваши настройки вывода: красивый формат, массив событий, парсинг дат в формате ISO 8601 или включите исходные значения свойств вместе с преобразованными.
- Опционально включите предварительный просмотр RRULE, чтобы увидеть первые N повторений любого повторяющегося события.
- Скопируйте выходной JSON или загрузите его как
calendar.json.
Возможности
- Соответствие RFC 5545 – Собирает продолжительные строки, начинающиеся с пробела, до начала парсинга, поэтому значения DESCRIPTION и URL восстанавливаются корректно.
- Сохранение параметров свойств – Параметры TZID, CN, RSVP, VALUE и любые X- параметры помещаются в структурированный объект рядом со значением.
paramsобъект. - Парсинг дат – DTSTART, DTEND, DTSTAMP, CREATED, LAST-MODIFIED, RECURRENCE-ID и DUE преобразуются в формат ISO 8601 с флагами для даты-только, UTC и значений с TZID.
- RRULE как объект – Параметры FREQ, INTERVAL, COUNT, UNTIL, BYDAY, BYMONTH и другие преобразуются в структурированный объект вместо одного прозрачного строки.
- VTIMEZONE и VALARM сохраняются без изменений – Вложенные компоненты передаются как массив на родительском компоненте VCALENDAR или VEVENT.
componentsмассив на их родительском VCALENDAR или VEVENT. - Адреса организаторов и участников – Префиксы mailto: удаляются и помещаются в поле, при этом сохраняется исходный адрес.
emailполе при сохранении оригиналаcalAddress. - Предварительный просмотр повторений – Опционально раскрываются правила DAILY, WEEKLY (с BYDAY), MONTHLY и YEARLY для первых N повторений, чтобы быстро оценить их.
- Только на стороне клиента – Файлы парсируются прямо в браузере. Содержимое календаря никогда не покидает ваш компьютер.
Когда использовать этот инструмент
Используйте конвертер, когда вам нужно программно читать данные календаря — для сравнения двух экспортированных .ics файлов, загрузки событий в таблицу, предварительной обработки встреч для чат-бота или проверки того, что содержит экспортированный бронированный календарь. JSON гораздо проще генерировать, проверять и передавать в другую программу, чем сырой текст iCalendar с переносами строк.
Часто задаваемые вопросы
-
Что такое RFC 5545 и почему это важно для парсинга файлов .ics?
RFC 5545 — это спецификация, определяющая формат iCalendar, используемый Google Calendar, Apple Calendar, Outlook и большинство приложений для календаря. Она определяет имена свойств, синтаксис параметров, типы значений, правила переноса строк на 75 октетов, экранирование внутри значений TEXT, правила повторения (RRULE) и способы ссылки на часовые пояса через блоки VTIMEZONE. Правильный парсинг .ics означает обработку всех этих аспектов — простые разбиения на строки или запятые пропускают экранированные последовательности и продолжения строк.
-
Что такое перенос строк в содержимом iCalendar?
Перенос строк — это правило, согласно которому любая строка длиной более 75 октетов должна быть разбита на несколько физических строк, причем каждая продолжительная строка начинается с одного пробела или табуляции. При чтении файла .ics необходимо объединять перенесенные строки до начала парсинга — иначе длинные описания, ссылки и правила повторения будут разрезаны на середине значения, и полученные свойства будут повреждены.
-
Как VTIMEZONE связан с DTSTART и DTEND?
DTSTART и DTEND могут содержать параметр TZID, который ссылается на блок VTIMEZONE, определенный в другом месте календаря. Блок VTIMEZONE описывает смещение от UTC и переходы на летнее время для указанного часового пояса, поэтому время, указанное в DTSTART, может быть преобразовано в точный момент UTC. Времена с суффиксом Z уже находятся в UTC, а времена без TZID и без Z являются «плавающими» — они должны отображаться в локальном времени, в котором находится пользователь.
-
Почему запятые, точки с запятой и переносы строк экранируются внутри SUMMARY и DESCRIPTION?
Внутри значения TEXT символы запятой, точки с запятой и обратного слэша, а также буквальные переносы строк, имеют структурное значение на более высоком уровне: запятые разделяют элементы списка, точки с запятой разделяют параметры, а переносы строк завершают содержимое строки. По стандарту RFC 5545 §3.3.11 зарезервированы последовательности \\, \,, \;, и \n (или \N), чтобы авторы могли включить эти символы внутри значения. Парсер должен отменить эти экранирования после разбиения строки, а не до этого.
-
Что такое RRULE и как он отличается от списка явных дат?
RRULE кодирует повторяющийся шаблон — например, FREQ=WEEKLY;BYDAY=MO,WE;COUNT=10 означает десять повторений, еженедельно в понедельник и среду. Это компактная инструкция, которую календарное приложение расширяет в отдельные события. RDATE и EXDATE дополняют RRULE: RDATE добавляет дополнительные явные даты в серию, а EXDATE удаляет отдельные даты из неё. Вместе они описывают сложные календари (праздники, исключения, привязанные к датам) в нескольких строках.
Установите наши расширения
Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска
恵 Табло результатов прибыло!
Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!
Подписаться на новости
все Новые поступления
всеОбновлять: Наш последний инструмент was added on Июн 26, 2026
