Название, место, дата и время, часовой пояс, повторение, приглашённые, напоминания и заметки — затем скачайте файл .ics или откройте его прямо в календаре. Также можно вставить расписание или прикрепить документ либо фотографию, чтобы создать сразу несколько событий.

Как добавить напоминание или оповещение к событию .ics?

Напоминание — это блок VALARM внутри события: ACTION:DISPLAY для уведомления на экране и TRIGGER:-PT30M для смещения, где PT указывает на длительность по стандарту ISO 8601, а знак минус в начале означает, что оповещение сработает до начала, а не после него. ICS Maker предлагает оповещения через форму и записывает по одному VALARM на каждое оповещение, всегда указывая смещение в минутах — за день до события это -PT1440M. Событие может содержать до десяти оповещений, но то, дойдут ли они все до пользователя, решает читающий календарь: некоторые добавляют своё собственное оповещение по умолчанию в дополнение к имеющимся, а некоторые полностью удаляют оповещения из импортированных событий, чтобы скачанный файл не мог планировать уведомления на устройстве.

Блок, который он записывает

BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Reminder
TRIGGER:-PT30M
END:VALARM

VALARM находится внутри события, а не рядом с ним, поэтому перемещается вместе с ним. ACTION:DISPLAY — это уведомление на экране, единственное, которое поддерживают все календари. Альтернативы, AUDIO и EMAIL, гораздо менее переносимы: EMAIL, в частности, требует, чтобы читающий календарь отправил письмо, а большинство просто отказываются это делать.

Чтение триггера

TRIGGER:-PT30M — это длительность, а не момент времени, и именно знак минус делает так, что оповещение срабатывает до события — положительное значение сработает после начала, что иногда нужно для последующего напоминания. Буквы обозначают длительность по ISO 8601: PT указывает на время, поэтому PT30M — это тридцать минут, PT2H — два часа, а P1D — сутки. Этот конструктор всегда записывает смещение в минутах — за день до события это -PT1440M, а не -P1D, что означает ту же длительность, но с чуть меньшей вероятностью столкнуться с придирчивым парсером.

Триггер также может быть привязан к окончанию события (TRIGGER;RELATED=END:-PT15M, за четверть часа до его завершения) или задан абсолютным моментом времени вместо смещения. И то, и другое требует ручного редактирования скачанного файла; форма предлагает смещения от начала события, что и требуется почти всегда.

Несколько оповещений и сохранятся ли они

Событие может содержать сколько угодно оповещений — за неделю, чтобы подготовиться, за час, чтобы добраться, за пять минут, чтобы присоединиться к звонку, — и каждое из них представляет собой отдельный блок. Дойдут ли они все до пользователя, зависит от календаря, который открывает файл: напоминание является частью события, но календарь со своими собственными уведомлениями по умолчанию может добавить ещё одно в дополнение к имеющимся, а некоторые полностью удаляют оповещения из импортированных событий, чтобы файл не мог планировать уведомления на телефоне. Проверьте первое событие после импорта, прежде чем доверять сразу целой партии.

Вопросы

Как установить напоминание за 15 минут до события?
Выберите его из списка оповещений перед скачиванием, и файл получит VALARM со смещением -PT15M. Знак минус означает «до начала»; календарь, открывающий файл, сам планирует уведомление.
Может ли одно событие иметь несколько напоминаний?
Да. RFC 5545 не ограничивает количество блоков VALARM внутри события, и добавление второго оповещения здесь записывает второй блок; десять — это предел, установленный данным конструктором. Пара «за день» и «за десять минут» — распространённое сочетание.
Почему моё напоминание не появилось после импорта файла?
Решает читающий календарь. Некоторые применяют собственное уведомление по умолчанию ко всему импортированному, некоторые сохраняют оповещения из файла, а некоторые принципиально игнорируют импортированные оповещения, чтобы скачанный файл не мог планировать уведомления на устройстве. Откройте событие после импорта и проверьте поле оповещения, прежде чем отправлять файл кому-либо ещё.
Что означает TRIGGER:-PT1H?
За один час до начала события. PT указывает на длительность времени суток по ISO 8601, 1H — это один час, а знак минус в начале означает, что смещение отсчитывается назад от начала. Без минуса оно сработало бы через час после начала события.