QR-код для события, к которому DTSTART относится сегодня
Можно ли создать QR-код, который устанавливает событие в календаре с датой, соответствующей дате сканирования кода?
Пример: отсканируйте код и через 2 месяца мой телефон показывает событие или выдает мне напоминание.
2 ответа
Вы можете создать QR-код, который указывает URL-адрес, где находится файл.ics. При загрузке файла на устройстве появляется всплывающее окно с настройкой события.
Вы можете создать собственный файл.ics, например, здесь: http://www.pratie.com/lab/icalendar/
РЕДАКТИРОВАТЬ: вы можете динамически скомпилировать переменную DSTART в вашем коде программирования:
BEGIN:VCALENDAR
VERSION:1.0
BEGIN:VEVENT
DTSTART:20121121T090000
DTEND:20121121T100000
SUMMARY:fdsf
LOCATION:
DESCRIPTION:
PRIORITY:3
END:VEVENT
END:VCALENDAR
Формат переменной DSTART следующий:
DSTART: <year><month><day>T<hour><minutes><seconds>
Чтобы использовать относительное время "сейчас", вы можете использовать несколько опций, которые дает программирование. (Time.now
, отметка времени), а затем преобразовать его в правильный вывод.ics.
Спецификация Icalendar (RFC5545) не позволяет относительному DTSTART:
3.8.2.4. Date-Time Start [...] The time value MUST be one of the forms defined for the DATE-TIME value type. The value type can be set to a DATE value type.
3.3.4. Date [...] The textual format specifies a four-digit year, two-digit month, and two-digit day of the month.
3.3.5. Date-Time [...] The "DATE-TIME" value type is used to identify values that contain
a precise calendar date and time of day.
Однако QRCODE может быть ссылкой на URL-адрес, который затем будет динамически генерировать ical-файл с DTSART, который будет установлен на дату 2 месяца в будущем.