是否可以创建一个二维码,在日历中设置一个事件,其日期与扫描代码的日期相关?
示例:扫码,从今天起 2 个月后,我的手机显示事件或为我提供提醒提醒。
日历规范 (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 的链接,然后将动态生成带有 DTSART 的 ical 文件,该文件将设置为未来 2 个月的日期。
您可以创建一个指向 .ics 文件所在的 url 的 QR 码。一次下载文件时,设备上会出现一个弹出窗口,用于设置事件。
您可以创建自定义 .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 的格式如下:
开始:<year><month><day>T<hour><minutes><seconds>
要使用相对的“现在”时间,您可以使用编程提供的多个选项。( Time.now
, 时间戳),然后将其转换为正确的 .ics 输出。