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