字符编码和VALARM与谷歌日历的.ics文件 - > iPhone



我正在用Python生成一个iCal .ics文件,并将其发布到FTP。然后,我将URL添加到谷歌日历中——Python脚本会上传文件,(希望)谷歌会每天刷新一次,最终我可以通过谷歌将其添加到我的iPhone日历订阅中。

谷歌日历读取文件并显示我的事件,但有几个问题:

  • 我使用了一些"外国"字符(å,ä,ö),在谷歌日历中,这些字符显示为��.我将文件保存为UTF-8,尝试使用和不使用BOM,还向FTP提供程序添加了以下MIME内容类型类型:text/calendar .ics

  • 谷歌日历似乎根本无法识别警报(文件中的VALARM部分)。

感谢在这个话题上的任何帮助。.ics(略有修改的值)包含在下面。它使用在线iCal验证网站进行100%验证。

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//My Name//My App Name//SV
BEGIN:VTIMEZONE
TZID:Sthlm
BEGIN:STANDARD
DTSTART:20111030T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:SUMMER
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20120325T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:WINTER
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:somegeneratedid@myname.mydomain
DTSTART;TZID=Sthlm:20120320T165000
DTEND;TZID=Sthlm:20120320T170000
SUMMARY:Strange character å
DESCRIPTION:This is the description
BEGIN:VALARM
TRIGGER:-PT60M
ACTION:DISPLAY
DESCRIPTION:Alert alert
END:VALARM
END:VEVENT
END:VCALENDAR

通过将我的Web服务器配置为内容类型"text/calendar;charset=UTF-8",解决了外来字符问题。

对于不工作的VALARM,请仔细检查所使用的行尾是否为rn,而不仅仅是web上许多示例中错误显示的n

有关更多详细信息,请参阅我对类似问题的回答:https://stackoverflow.com/a/16540934/834431

最新更新