Ich habe Kalenderdatei (.ics) Ausgabe von meiner Anwendung zum Zweck der Verwendung in einer Kalender-App wie Google Kalender erstellt. Ich habe die unten stehende Datei über einen Validator laufen lassen, aber es scheint, dass weder Google noch Yahoo Calendars Ball spielen wollen. Mein lokaler Mac-Kalender-Client funktioniert 100%. Kann jemand etwas Offensichtliches über die Datei unten sehen, die möglicherweise in Google Kalender erstickt? Oder irgendwelche zusätzlichen Felder, die sie brauchen? Ich bekomme auch einen 500-Fehler vom Yahoo-Kalender zurück. An diesem Punkt Haare ausreißen.iCal-Format für Google Kalender/Yahoo Kalender funktioniert nicht
Ich habe mit und ohne Zeitzone Informationen versucht, und es scheint nicht viel Unterschied zu machen.
Kopf Ausgabe
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 mal oder TZID Ich habe experimentiert mit und scheint keinen Unterschied zu machen. Wenn jemand ein wirklich einfaches Beispiel für eine URL von .ics-Ereignissen hat, die "Cross-Kalender" zu funktionieren scheint, würde ich es gerne sehen. Alternativ, wenn jemand für diesen Zweck einige anständige Bibliotheken zur Verfügung stellen kann, die kein Problem sind, in ein CakePHP-Projekt zu integrieren, würde das ausreichen.
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
Wie ausgeben Sie die ics-Datei von PHP über Echo dosn't? Ich kann Ihren Kalender direkt in Google Kalender importieren, damit die Datei in Ordnung ist. –
Ich weiß nicht, _how_ Sie versuchen, dies zu laden, aber nur die HTTP-Header und die .ics-Datei, die Sie zur Verfügung gestellt haben, konnte ich [_Add mit einem Link_] (https://support.google.com/) Kalender/Antwort/37100? hl = en) ohne Probleme. – HPierce