Я создал файл календаря (.ics) из моего приложения с целью потребления в приложении "Календарь", например "Календарь Google". Я запустил файл ниже через валидатор, но похоже, что ни Google, ни Yahoo Calendars не хотят играть в мяч. Клиент моего локального Mac-календаря работает на 100%. Может ли кто-нибудь увидеть что-нибудь очевидное о файле ниже, который потенциально может задохнуться в Календаре Google? Или любые дополнительные поля, в которых они нуждаются? Я также получаю 500 ошибок из календаря Yahoo. Вырывая волосы в этот момент.
Я пробовал с информацией о часовом поясе и без нее, и это, похоже, не имеет большого значения.
Выход заголовка
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
header('Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
header('Cache-Control: no-store, no-cache, must-revalidate' );
header('Cache-Control: post-check=0, pre-check=0', false );
header('Pragma: no-cache' );
header('Content-type: text/calendar;');
header('Content-Disposition: inline; filename="calendar.ics"');
header("Content-Description: File Transfer");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . strlen($generated));
UTC times или TZID Я экспериментировал и, похоже, не имел никакого значения. Если у кого-то есть действительно простой пример URL-адреса.ИК-событий, которые, похоже, работают с "кросс-календарем", это очень понравилось бы. В качестве альтернативы, если кто-то может предоставить некоторые достойные библиотеки для этой цели, которые не являются болью для интеграции в проект CakePHP, этого было бы достаточно.
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//MS//NONSGML//EN
X-WR-CALNAME:Holidays
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
UID:1075
DTSTART;TZID=Europe/London:20150114T080000
DTEND;TZID=Europe/London:20150114T170000
DTSTAMP:20150114T080000Z
CREATED:20151019T211433Z
DESCRIPTION:Stat Holiday (1.0 days)
LAST-MODIFIED:20150114T080000Z
LOCATION:
SUMMARY: Statutory Day
SEQUENCE:0
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
UID:1076
DTSTART;TZID=Europe/London:20150116T080000
DTEND;TZID=Europe/London:20150116T170000
DTSTAMP:20150116T080000Z
CREATED:20151019T211433Z
DESCRIPTION:Stat Holiday (1.0 days)
LAST-MODIFIED:20150116T080000Z
LOCATION:
SUMMARY: Statutory Day
SEQUENCE:0
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
UID:1079
DTSTART;TZID=Europe/London:20151020T123000
DTEND;TZID=Europe/London:20151020T170000
DTSTAMP:20151020T123000Z
CREATED:20151019T211433Z
DESCRIPTION:Holiday Request (3.0 days) test
LAST-MODIFIED:20151020T123000Z
LOCATION:
SUMMARY:admin Leave
SEQUENCE:0
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
UID:1080
DTSTART;TZID=Europe/London:20151021T080000
DTEND;TZID=Europe/London:20151021T123000
DTSTAMP:20151021T080000Z
CREATED:20151019T211433Z
DESCRIPTION:Holiday (3.0 days) test
LAST-MODIFIED:20151021T080000Z
LOCATION:
SUMMARY:admin Leave
SEQUENCE:0
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
UID:1081
DTSTART;TZID=Europe/London:20151022T080000
DTEND;TZID=Europe/London:20151022T170000
DTSTAMP:20151022T080000Z
CREATED:20151019T211433Z
DESCRIPTION:Holiday Request (3.0 days) test
LAST-MODIFIED:20151022T080000Z
LOCATION:
SUMMARY:admin Leave
SEQUENCE:0
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
UID:1082
DTSTART;TZID=Europe/London:20151023T080000
DTEND;TZID=Europe/London:20151023T170000
DTSTAMP:20151023T080000Z
CREATED:20151019T211433Z
DESCRIPTION:Holiday Request (3.0 days) test
LAST-MODIFIED:20151023T080000Z
LOCATION:
SUMMARY:admin Leave
SEQUENCE:0
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR