PHP 生成的 ICS 文件无法正常工作
PHP generated ICS file not working properly
我有以下由 php 函数动态生成的 ics 文件。我在处理文件时遇到了几个问题。在桌面上,上传到 google 日历或 outlook 时间会延迟 4 小时。在 IOS 上,文件运行良好,在 Android 上,日历错误 "No Valid Items"。
我不太了解ics文件,正在尝试学习。在正确方向上的任何一点都将不胜感激。
我首先要解决的是时间问题,为什么文件没有告诉桌面应用程序正确的时间?
第二件事是 android 上的 "No Valid Items"。
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Site //NONSGML Events //EN
CALSCALE:GREGORIAN
X-WR-CALNAME:Example Site
BEGIN:VTIMEZONE
TZID:America/New_York
X-LIC-LOCATION:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20160901T125454
UID:50
DTEND;TZID=America/New_York:20160907T210000
DTSTART;TZID=America/New_York:20160907T120000Z
DTSTAMP:20160908T154347Z
LOCATION:1234 Avenue Orlando\, FL 32803
DESCRIPTION:
SUMMARY:Orientation
ORGANIZER;MAILTO:example@example.org
URL;VALUE=URI:http://example.site/schedule
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;VALUE=DATE-TIME:20160907T000000
DESCRIPTION:Orientation
END:VALARM
END:VEVENT
END:VCALENDAR
我碰巧通过比较另一个网站上有效的 ics 文件和我拥有的文件找到了答案。我使用 iCalendar Validator http://severinghaus.org/projects/icv/ 查找错误并发现 Organizer 还需要一个名称:
ORGANIZER;CN=Example Name:MAILTO:example@example.com
我有以下由 php 函数动态生成的 ics 文件。我在处理文件时遇到了几个问题。在桌面上,上传到 google 日历或 outlook 时间会延迟 4 小时。在 IOS 上,文件运行良好,在 Android 上,日历错误 "No Valid Items"。
我不太了解ics文件,正在尝试学习。在正确方向上的任何一点都将不胜感激。
我首先要解决的是时间问题,为什么文件没有告诉桌面应用程序正确的时间?
第二件事是 android 上的 "No Valid Items"。
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Site //NONSGML Events //EN
CALSCALE:GREGORIAN
X-WR-CALNAME:Example Site
BEGIN:VTIMEZONE
TZID:America/New_York
X-LIC-LOCATION:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20160901T125454
UID:50
DTEND;TZID=America/New_York:20160907T210000
DTSTART;TZID=America/New_York:20160907T120000Z
DTSTAMP:20160908T154347Z
LOCATION:1234 Avenue Orlando\, FL 32803
DESCRIPTION:
SUMMARY:Orientation
ORGANIZER;MAILTO:example@example.org
URL;VALUE=URI:http://example.site/schedule
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;VALUE=DATE-TIME:20160907T000000
DESCRIPTION:Orientation
END:VALARM
END:VEVENT
END:VCALENDAR
我碰巧通过比较另一个网站上有效的 ics 文件和我拥有的文件找到了答案。我使用 iCalendar Validator http://severinghaus.org/projects/icv/ 查找错误并发现 Organizer 还需要一个名称:
ORGANIZER;CN=Example Name:MAILTO:example@example.com