ФОРМАТ · TEXT
iCalendar / ICS
Обмен календарными событиями и расписаниями.
- Расширения
- ics
- MIME type
- text/calendar
- Представление
- text
- Потоковая обработка
- да
- Комментарии
- нет
- Поддержка схемы
- Структура компонентов RFC 5545
- Порядок
- Некоторые списки упорядочены; порядок свойств обычно несущественен
- null
- Нет общего null
- Diff
- Средняя из-за folding строк
- Архивация
- Сохраняйте VTIMEZONE и UID
Преимущества
- Поддерживает повторения и часовые пояса
Ограничения
- Правила дат, экранирования и переноса строк строги
Типичные ошибки
- Забывать CRLF и стабильный UID
Маленький пример
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//quietmargin.ru//Example//RU
BEGIN:VEVENT
UID:sample-1@quietmargin.ru
DTSTAMP:20260221T120000Z
DTSTART:20260301T120000Z
SUMMARY:Example
END:VEVENT
END:VCALENDAR
Среда: Python 3; проверяется только оболочка VCALENDAR и CRLF по краям.
python3 -c "from pathlib import Path; b=Path('example.ics').read_bytes(); assert b.startswith(b'BEGIN:VCALENDAR\r\n') and b.endswith(b'END:VCALENDAR\r\n'); print('Проверена оболочка, не весь RFC 5545')"