stringtranslate.com

iКалендарь

Спецификация основных объектов календаря и планирования в Интернете ( iCalendar ) — это тип носителя , который позволяет пользователям хранить и обмениваться информацией календаря и планирования, такой как события, задачи, записи журнала и информация о занятости [1] , и вместе со связанными с ним стандартами является краеугольным камнем стандартизации и взаимодействия цифровых календарей у разных поставщиков. Файлы, отформатированные в соответствии со спецификацией, обычно имеют расширение .ics . С помощью вспомогательного программного обеспечения, такого как программа для чтения электронной почты или приложение календаря , получатели файла данных iCalendar могут легко ответить отправителю или предложить другую дату/время встречи. Формат файла указан в предлагаемом стандарте Интернета (RFC 5545) для обмена данными календаря. Стандарт и тип файла иногда называют «iCal», что было названием программы календаря Apple Inc. до 2012 года (см. iCal ), которая обеспечивает одну из реализаций стандарта.

iCalendar используется и поддерживается многими продуктами, включая:

Стоит также отметить, что он частично поддерживается Microsoft Outlook и Novell GroupWise .

iCalendar разработан так, чтобы быть независимым от транспортного протокола. Например, некоторые события могут быть отправлены по традиционной электронной почте или целые файлы календаря могут быть переданы и отредактированы с помощью сервера WebDav или SyncML . Простые веб-серверы (использующие только протокол HTTP) часто используются для распространения данных iCalendar о событии и публикации времени занятости отдельного человека. Издатели могут встраивать данные iCalendar в веб-страницы с помощью hCalendar , микроформатного представления iCalendar 1:1 в семантическом (X) HTML .

История

Компоненты iCalendar и их свойства

iCalendar был впервые создан в 1998 году [3] рабочей группой по календарному планированию и составлению расписания Internet Engineering Task Force под председательством Аник Гангули из Open Text Corporation , а авторами его были Фрэнк Доусон из Lotus Development Corporation и Дерик Стенерсон из Microsoft Corporation . Файлы данных iCalendar представляют собой простые текстовые файлы с расширением .ics или .ifb (для файлов, содержащих только информацию о доступности). RFC 5545 заменил RFC 2445 в сентябре 2009 года и теперь определяет стандарт.

iCalendar в значительной степени основан на более раннем vCalendar от Internet Mail Consortium (IMC). [4] Он имеет расширение файла .vcs. После выпуска iCalendar, Internet Mail Consortium заявил, что он «надеется, что все разработчики vCalendar воспользуются этими новыми открытыми стандартами и сделают свое программное обеспечение совместимым как с vCalendar 1.0, так и с iCalendar». [5]

Memo "Calendar Access Protocol" ( RFC 4324) был первоначальной попыткой создания универсальной системы для создания календарей в реальном времени, но в конечном итоге был заброшен. Вместо этого iCalendar получил некоторое распространение для таких целей с такими специальными расширениями, как GroupDAV и CalDAV, появляющимися в качестве неформальных стандартов и получающими некоторое распространение как в клиентских, так и в серверных пакетах программного обеспечения .

Первая попытка упростить стандарты iCalendar, предпринятая рабочей группой IETF по календарю и планированию (ietf-calsify WG), завершилась в январе 2011 года, не получив одобрения. [6] [7] Затем работа была подхвачена рабочей группой по расширениям календаря (ietf-calext WG). [8]

Дизайн

Данные iCalendar имеют тип содержимого MIMEtext/calendar . Расширение имени файла ics следует использовать для файлов, содержащих информацию о календаре и расписании, ifb — для файлов с информацией о свободном или занятом времени, соответствующей этому типу содержимого MIME. Эквивалентные коды типов файлов в средах операционной системы Apple Macintosh — iCal и iFBf .

По умолчанию iCalendar использует набор символов UTF-8 ; другой набор символов можно указать с помощью параметра MIME "charset" (если используемый метод передачи поддерживает MIME, например, Email или HTTP ). Каждая строка завершается символами CR + LF (в шестнадцатеричном формате : 0D0A ). Длина строк должна быть ограничена 75 октетами (не символами). Если элемент данных слишком длинный для размещения на одной строке, его можно продолжить на следующих строках, начав строки продолжения с символа пробела (в шестнадцатеричном формате: 20) или символа табуляции (в шестнадцатеричном формате: 09). Фактические переводы строк в элементах данных кодируются как обратная косая черта, за которой следует буква n или N (байты 5C 6E или 5C 4E в UTF-8).

Формат iCalendar предназначен для передачи данных на основе календаря, таких как события, и намеренно не описывает, что делать с этими данными. Таким образом, может потребоваться другое программирование для согласования того, что делать с этими данными. Сопутствующий стандарт, «iCalendar Transport-Independent Interoperability» (iTIP) (RFC 2446), определяет протокол обмена объектами iCalendar для совместного календарного планирования и планирования между «пользователями календаря» (CU), поддерживаемого «организатором», инициирующим обмен данными. Этот стандарт определяет такие методы, как PUBLISH, REQUEST, REPLY, ADD, CANCEL, REFRESH, COUNTER(для согласования изменения записи) и DECLINE-COUNTER(для отклонения встречного предложения). Другой сопутствующий стандарт, «iCalendar Message-based Interoperability Protocol (iMIP)» (RFC 2447), определяет стандартный метод реализации iTIP на стандартных интернет-транспортах на основе электронной почты. «Руководство по интернет-календарям» (RFC 3283) объясняет, как iCalendar взаимодействует с другими компьютерными языками календарей (текущими и будущими).

Элементом верхнего уровня в iCalendar является основной объект календаря и планирования, представляющий собой набор календарной и планировочной информации. Обычно эта информация состоит из одного объекта iCalendar. Однако несколько объектов iCalendar могут быть сгруппированы вместе. Первая строка должна быть BEGIN:VCALENDAR, а последняя строка должна быть END:VCALENDAR; содержимое между этими строками называется "icalbody". Тело должно включать свойства календаря " PRODID " и " VERSION ". Кроме того, оно должно включать по крайней мере один компонент календаря. [9]

VERSION:1.0используется для указания того, что данные находятся в старом формате vCalendar. ВЕРСИЯ — 2.0 для текущего формата iCalendar по состоянию на 2016 год.

Тело объекта iCalendar (icalbody) содержит однострочные свойства календаря , которые применяются ко всему календарю, а также один или несколько блоков из нескольких строк, каждый из которых определяет компонент календаря, такой как событие, запись в журнале, будильник или один из нескольких других типов. Вот простой пример объекта iCalendar с одним календарем, содержащим один компонент календаря , событие " Bastille Day Party", начинающееся в 5 вечера 14 июля 1997 года и заканчивающееся в 4 утра следующего дня: [10]

НАЧАЛО:VCALENDARВЕРСИЯ:2.0PRODID:-//hacksw/handcal//NONSGML v1.0//ENНАЧАЛО:VEVENTUID:[email protected]ОРГАНИЗАТОР;CN=John Doe:MAILTO:[email protected]DTSTART:19970714T170000ZDTEND:19970715T040000ZРЕЗЮМЕ:Вечеринка в честь Дня взятия БастилииГЕО:48.85299;2.36885КОНЕЦ:VEVENTКОНЕЦ:VCALENDAR

Поле UID распределяет обновления при изменении запланированного события. Когда событие впервые генерируется, создается глобальный уникальный[email protected] идентификатор. Если более позднее событие распространяется с тем же UID, оно заменяет исходный. Примером UID может быть , для 5-го собрания класса 131 во 2-м семестре в гипотетическом колледже. UID в стиле электронной почты теперь считаются плохой практикой, вместо этого рекомендуется использовать UUID . [11]

Наиболее распространенным представлением даты и времени является временная метка tz , например 20010911T124640Z с форматом <год (4 цифры)><месяц (2)><день (2)>T<час (2)><минута (2)><секунда (2)>Z для общей фиксированной длины 16 символов. Z указывает на использование UTC (ссылаясь на часовой пояс Zulu). [12] При использовании в свойствах DTSTART и DTEND начальное время включается, а конечное — нет. Это позволяет сделать конечное время события таким же, как и начало последовательного события, без перекрытия этих событий и потенциального создания (ложных) конфликтов планирования. [13]

В комплект входят:

iCalendar призван «предоставить определение общего формата для открытого обмена календарной и планировочной информацией через Интернет». Хотя функции, наиболее часто используемые пользователями, широко поддерживаются iCalendar, некоторые более продвинутые возможности имеют проблемы. Например, большинство поставщиков не поддерживают Журналы ( VJOURNAL ). У VTODO также были проблемы с конвертацией. [15]

Календарь iCalendar также несовместим с некоторыми негригорианскими календарями , такими как лунные календари, используемые в Израиле и Саудовской Аравии . Хотя существуют соответствия один к одному между григорианским и многими другими календарными шкалами, отсутствие определенных значений CALSCALE для этих календарей и ограничения в различных полях даты могут сделать нативную поддержку невозможной. Например, еврейский календарный год может содержать либо 12, либо 13 месяцев, а шкала календаря на основе японского императора содержит много эпох.

Расширения

vCalendar и iCalendar поддерживают частные программные расширения с префиксом «X-», некоторые из которых широко используются.

Вот некоторые из них:

Список компонентов, свойств и параметров

Другие представления

xCal — это XML- представление данных iCalendar, как определено в RFC  6321.

jCal — это JSON- представление данных iCalendar, как определено в RFC  7265.

hCalendar — это (x)HTML- представление подмножества данных iCalendar с использованием микроформатов .

hEvent — это HTML-представление подмножества данных iCalendar с использованием микроформатов, решающее некоторые проблемы доступности формата hCalendar.

Смотрите также

Ссылки

  1. ^ ab Desruisseaux, Bernard, ed. (сентябрь 2009 г.). Спецификация основных объектов календаря и планирования в Интернете (iCalendar). Internet Engineering Task Force . doi : 10.17487/RFC5545 . RFC 5545 . Получено 07.12.2018 .
  2. ^ "IBM Lotus Notes 8.5 iCalendar: взаимодействие, реализация и применение". IBM DeveloperWorks . Получено 2015-04-05 .
  3. ^ "iCalendar.org". Z Content . Получено 2018-03-28 .
  4. ^ "vCalendar: электронный формат обмена календарями и расписаниями, версия 1.0". Internet Mail Consortium . 1996-09-18. Архивировано из оригинала 2016-03-21 . Получено 2018-03-28 .
  5. ^ "vCalendar: основа кросс-платформенного планирования". Internet Mail Consortium . 2006-11-26. Архивировано из оригинала 2015-09-06 . Получено 2016-02-28 .
  6. ^ "Упрощение стандартов календаря и планирования (calsify)". IETF . Получено 2015-04-05 .
  7. ^ Лир, Элиот (2010-12-10). "конец рабочей группы calsify – не конец списка рассылки". Список рассылки ietf-calsify . Архивировано из оригинала 2012-12-09 . Получено 2015-04-05 .
  8. ^ "Расширения календаря (calext)". IETF . Получено 01.12.2016 .
  9. ^ "Раздел 3.6 Компоненты календаря". Спецификация основных объектов календаря и планирования в Интернете (iCalendar). раздел 3.6. doi : 10.17487/RFC5545 . RFC 5545. Получено 1 июля 2020 г.
  10. ^ Из RFC 2445
  11. ^ "Свойство UID". Расширения свойств iCalendar. раздел 5.3. doi : 10.17487/RFC7986 . RFC 7986 . Получено 3 октября 2022 г. .
  12. ^ "Раздел 3.3.5 Дата-время". Спецификация основных объектов календаря и планирования в Интернете (iCalendar). раздел 3.3.5. doi : 10.17487/RFC5545 . RFC 5545.
  13. ^ "Раздел 3.6.1 Компоненты событий". Спецификация основных объектов календаря и планирования в Интернете (iCalendar). раздел 3.6.1. doi : 10.17487/RFC5545 . RFC 5545.
  14. ^ "[RFC5546] Раздел 3.4 Методы для компонентов VTODO". Microsoft Developer Network . Получено 7 августа 2015 г.
  15. ^ CalConnect, 2004
  16. ^ "[MS-OXCICAL]: Свойство: X-WR-RELCALID". msdn.microsoft.com . Получено 2016-02-23 .
  17. ^ "Свойства iCal и vCal". Библиотека разработчиков Nokia Symbian^3 v1.1 . © Nokia Corporation 2011. 8 октября 2009 г. Архивировано из оригинала 9 мая 2021 г. Получено 17 ноября 2023 г.{{cite web}}: CS1 maint: другие ( ссылка )
  18. ^ "[MS-OXCICAL]: 2.1.3 Правила обработки". learn.microsoft.com . 2020-10-13. Архивировано из оригинала 2023-11-16 . Получено 2023-11-16 .

Внешние ссылки