Що таке файл ICS?
Специфікація основного об’єкта календаря та планування в Інтернеті (iCalendar) — це стандарт Інтернету (RFC 2445) для обміну та розгортання подій календаря та планування. Формат iCalendar є сумісним, що забезпечує обмін інформацією календаря між користувачами, які мають різні програми електронної пошти. iCalendar форматує вхідні дані як багатоцільові розширення Інтернет-пошти (MIME) і полегшує обмін об’єктами через різні транспортні протоколи. Такими транспортними протоколами можуть бути SMTP, HTTP, асинхронний зв’язок «точка-точка» та мережевий транспорт на основі фізичних носіїв.
iCalendar дозволяє користувачам ділитися подіями, завданнями, що залежать від дати й часу, а також інформацією про вільний/зайнятий електронний лист іншим користувачам, які можуть відповісти. Файли iCalendar зберігаються за допомогою суфіксів «.ics», «.iCalendar» або «.ifb» із типом MIME «текст/календар». iCalendar забезпечує самостійність без будь-якої залежності від транспортного протоколу. Веб-сервери (з протоколом HTTP) можуть передавати інформацію iCalendar, а веб-сторінки можуть містити дані iCalendar у вбудованій формі за допомогою iCalendar.
Коротка історія формату файлів ICS
У 1998 році Інженерна робоча група Інтернету (IETF) визначила iCalendar як стандарт (RFC 2445). Стандарт був задокументований Френком Доусоном (Lotus Notes Corporation) і Деріком Стенерсоном (Microsoft). У 2009 році стандарт був знову вдосконалений Бернаром Десрюссо (Oracle) як RFC 5545. Цього разу було додано деякі нові функції, а деякі застарілі функції вилучено. У 2016 році було випущено RFC 7986 і доповнено оригінальний iCalendar RFC. RFC 7986 додав нові характеристики до основного об’єкта VCALENDAR, а також було введено нові допоміжні функції для систем конференц-зв’язку.
Формат файлу ICS
Тип MIME, який використовується для даних iCalendar, – «текст/календар». Стандартним набором символів для iCalendar є UTF-8, однак, надавши параметри в MIME, можна використовувати інший набір символів. Файл iCalendar містить розділи, серед яких “VCALENDAR” є глобальним розділом, який інкапсулює всі інші розділи. Розділ VEVENT визначає події, VTODO містить список усіх завдань, VJOURNAL містить записи журналу, а VTIMEZONE визначає інформацію про часовий пояс. допускається кілька розділів подібної категорії. Для багатьох подій у файлі iCalendar можуть міститися кілька розділів VEVENT.
Рядки вмісту
Об’єкти iCalendar впорядковано в окремі рядки тексту «рядки вмісту». У цьому форматі файлу послідовність CRLF завершує рядок, тоді як довжина рядка обмежена 75 октетами без урахування розриву рядка. Довгий елемент даних може охоплювати багато рядків.
Список і роздільники полів
Властивості та параметри вказують список значень, розділених символом КОМА. Рядки в лапках використовуються для значень параметрів на основі URI. Список параметрів може бути побудований за значенням властивості. Кожен параметр властивості в цьому списку має бути розділений крапкою з комою.
У списку значень КРАПКА З КОМОПОЮ виділяє параметри властивості, а КОМА — значення властивості. Приклад наведено нижче:
ATTENDEE;RSVP#TRUE;ROLE#REQ- contestant:mailto:
name@example.com
DATE;VALUE#DATE:20170304,20180504,2015704,201270904
Кілька значень
Деякі властивості можуть мати декілька значень. Основним правилом для багатозначних властивостей є просте створення нового рядка вмісту з іменем властивості. Однак для одного значення з кількома мовними варіантами не можна використовувати багатозначні властивості.
Двійковий вміст
У межах об’єкта iCalendar значення властивості може посилатися на дані двійкового вмісту, розміщені в зовнішній сутності MIME за допомогою URI. Вбудований двійковий вміст можна використовувати в особливих ситуаціях із параметром «КОДУВАННЯ», коли програмі потрібно виражати об’єкт iCalendar як єдину сутність. У наведеному нижче прикладі пояснюється властивість “ATTACH” із посиланням на URI:
ПРИКЛАДИТИ: https://products.conholdate.app/viewer/view/KDDURXKkLk/fileformat.doc
Набір символів
Хоча стандартною схемою кодування для iCalendar є UTF-8, не вказано жодного параметра властивості для визначення кодування значення властивості. у передачах MIME параметр “charset” ПОВИНЕН використовуватися для існуючого набору символів.