Конвертер iCalendar (ICS) в JSON

ДанныеРазработчикТекст
Реклама · УДАЛИТЬ?

Параметры

Ограничение расширения RRULE. Правила без конца останавливаются на этом количестве.
Реклама · УДАЛИТЬ?

Гид

Конвертер iCalendar (ICS) в JSON

Конвертер iCalendar (ICS) в JSON

Конвертер iCalendar (ICS) в JSON анализирует содержимое календаря по стандарту RFC 5545 и преобразует его в структурированный JSON, который вы можете читать, преобразовывать или передавать в другую программу. Вставьте экспортированный файл .ics из Google Calendar, Apple Calendar или Outlook, и инструмент раскроет длинные строки, раскроет значения TEXT, разделяет параметры свойств от значений, преобразует DTSTART и DTEND в формат ISO 8601 и преобразует RRULE в объект — всё это происходит прямо в вашем браузере. Никаких данных не загружаются на сервер.

Как использовать

  1. Вставьте содержимое файла .ics в поле ввода или перетащите файл на загрузчик.
  2. Выберите ваши настройки вывода: красивый формат, массив событий, парсинг дат в формате ISO 8601 или включите исходные значения свойств вместе с преобразованными.
  3. Опционально включите предварительный просмотр RRULE, чтобы увидеть первые N повторений любого повторяющегося события.
  4. Скопируйте выходной 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 с переносами строк.

Реклама · УДАЛИТЬ?

Часто задаваемые вопросы

  1. Что такое RFC 5545 и почему это важно для парсинга файлов .ics?

    RFC 5545 — это спецификация, определяющая формат iCalendar, используемый Google Calendar, Apple Calendar, Outlook и большинство приложений для календаря. Она определяет имена свойств, синтаксис параметров, типы значений, правила переноса строк на 75 октетов, экранирование внутри значений TEXT, правила повторения (RRULE) и способы ссылки на часовые пояса через блоки VTIMEZONE. Правильный парсинг .ics означает обработку всех этих аспектов — простые разбиения на строки или запятые пропускают экранированные последовательности и продолжения строк.

  2. Что такое перенос строк в содержимом iCalendar?

    Перенос строк — это правило, согласно которому любая строка длиной более 75 октетов должна быть разбита на несколько физических строк, причем каждая продолжительная строка начинается с одного пробела или табуляции. При чтении файла .ics необходимо объединять перенесенные строки до начала парсинга — иначе длинные описания, ссылки и правила повторения будут разрезаны на середине значения, и полученные свойства будут повреждены.

  3. Как VTIMEZONE связан с DTSTART и DTEND?

    DTSTART и DTEND могут содержать параметр TZID, который ссылается на блок VTIMEZONE, определенный в другом месте календаря. Блок VTIMEZONE описывает смещение от UTC и переходы на летнее время для указанного часового пояса, поэтому время, указанное в DTSTART, может быть преобразовано в точный момент UTC. Времена с суффиксом Z уже находятся в UTC, а времена без TZID и без Z являются «плавающими» — они должны отображаться в локальном времени, в котором находится пользователь.

  4. Почему запятые, точки с запятой и переносы строк экранируются внутри SUMMARY и DESCRIPTION?

    Внутри значения TEXT символы запятой, точки с запятой и обратного слэша, а также буквальные переносы строк, имеют структурное значение на более высоком уровне: запятые разделяют элементы списка, точки с запятой разделяют параметры, а переносы строк завершают содержимое строки. По стандарту RFC 5545 §3.3.11 зарезервированы последовательности \\, \,, \;, и \n (или \N), чтобы авторы могли включить эти символы внутри значения. Парсер должен отменить эти экранирования после разбиения строки, а не до этого.

  5. Что такое RRULE и как он отличается от списка явных дат?

    RRULE кодирует повторяющийся шаблон — например, FREQ=WEEKLY;BYDAY=MO,WE;COUNT=10 означает десять повторений, еженедельно в понедельник и среду. Это компактная инструкция, которую календарное приложение расширяет в отдельные события. RDATE и EXDATE дополняют RRULE: RDATE добавляет дополнительные явные даты в серию, а EXDATE удаляет отдельные даты из неё. Вместе они описывают сложные календари (праздники, исключения, привязанные к датам) в нескольких строках.

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?