ics没有出现在我的iPad的iCal中

时间:2012-10-16 22:21:38

标签: php ipad icalendar

我有一个用于测试iPad的样本数据的php页面,但当我点击Safari中的打开"日历" 按钮时,它触发日历应用程序,但它打开时没有向我显示有关事件的任何信息。这是我的代码:

<?php

$ical = "
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN

BEGIN:VEVENT
DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z
DTSTART:" . gmdate('Ymd').'T'. "160000Z
DTEND:" . gmdate('Ymd').'T'. "170000Z
SUMMARY:Paul's Birthday
END:VEVENT

BEGIN:VEVENT
DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z
DTSTART:" . gmdate('Ym').'T'. "230000Z
DTEND:" . gmdate('Ymd').'T'. "240000Z
SUMMARY:John's Birthday
END:VEVENT

END:VCALENDAR";


//echo out
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: inline; filename=calendar.ics');
echo $ical;

?>

我做错了什么?

编辑:

这是一个从php生成的示例文件:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN

BEGIN:VEVENT
DTSTAMP:20121017T204856Z
DTSTART:20121017T160000Z
DTEND:20121017T170000Z
SUMMARY:Paul's Birthday
END:VEVENT

BEGIN:VEVENT
DTSTAMP:20121017T204856Z
DTSTART:201210T230000Z
DTEND:20121017T240000Z
SUMMARY:John's Birthday
END:VEVENT

END:VCALENDAR

2 个答案:

答案 0 :(得分:0)

你有一个错字。在您的第二个VEVENT上,DTSTART上缺少了一天。

替换

  

gmdate(&#39; YM&#39)

  

gmdate(&#39; YMD&#39)

答案 1 :(得分:0)

我自己修好了。显然,iCal不喜欢在 BEGIN:VCALENDAR 之前有换行符。我希望iCal去除那种东西,但显然他们没有,所以如果有其他人有iCal的问题,一定要检查字符串是不是以换行开头!