Utworzono plik kalendarza (.ics) z mojej aplikacji do celów konsumpcyjnych w aplikacji Kalendarz, takiej jak Kalendarz Google. Uruchomiłem poniższy plik za pomocą walidatora, ale wygląda na to, że ani Google, ani Yahoo Calendars nie chcą grać w piłkę. Klient Mój lokalny kalendarz Mac działa w 100%. Czy ktoś może zobaczyć cokolwiek oczywistego na temat poniższego pliku, który potencjalnie mógłby się dusić w Kalendarzu Google? Lub dodatkowe pola, których potrzebują? Dostaję 500 błędów z kalendarza Yahoo. W tym momencie rozdzierają włosy.Format iCal dla Kalendarza Google/kalendarza Yahoo nie działa
Próbowałem z i bez informacji strefy czasowej, i nie wydaje się, że robi dużą różnicę.
wyjściowe Header
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));
razy UTC lub TZID Mam eksperymentował ze i nie wydaje się, aby różnica. Jeśli ktoś ma naprawdę prosty przykład adresu URL zdarzeń .ics, który wydaje się działać "w kalendarzu", chciałby go zobaczyć. Ewentualnie, jeśli ktoś może dostarczyć do tego celu przyzwoite biblioteki, które nie są uciążliwe dla integracji z projektem CakePHP, to wystarczy.
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
Jak ty wyprowadzania pliku ICS z php, poprzez echa? Mogę zaimportować twój kalendarz prosto do kalendarza Google, więc plik jest w porządku. –
Nie wiem _how_ próbujesz załadować to, ale używając tylko nagłówków HTTP i podanego pliku .ics, udało mi się [_Dodać za pomocą linku_] (https://support.google.com/ calendar/answer/37100? hl = en) bez problemów. – HPierce