icloud kalender in google kalender abonieren

felix schwenzel, , in wirres.net    

weil jemand fragte: icloud-kalender kan man freigeben, damit man sie abonieren kann. ical (oder icloud.com) erzeugt dafür eine obskure url, die man theoretisch mit jedem ical-fähigen kalender abonnieren kann. etwa ist dieser art:

webcal://p01-calendarws.icloud.com/ca/subscribe/1/x-dsoiufhsdoifhdsoifhfoisdhfo_dsofiH-dsfd-fsdfs4-sdfhiudshfisdfhids-fdsifh

versucht man nun die url (statt webcal: http: benutzen!) im google kalender zu abonnieren, beklagt sich google (zu recht) dass die datei über eine robots.txt geschützt ist und google die URL deshalb nicht lesen könne. das ist ein „known issue“. wenn man die kalender url jetzt aber über proxy leitet gehts. manche schlagen vor das über eine yahoo-pipe zu machen, ich würde es über ein php-script machen:


<?php
$url = "https://p02-calendarws.icloud.com/ca/subscribe/1/XXX";
$timeout = 3;
$session = curl_init();
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session, CURLOPT_URL, $url);
curl_setopt( $session, CURLOPT_CONNECTTIMEOUT, $timeout );
curl_setopt( $session, CURLOPT_TIMEOUT, $timeout );
$xml = curl_exec($session);
$curl_errno = curl_errno($session);
$curl_error = curl_error($session);
curl_close($session);
header("Content-Type: text/Calendar");
echo $xml;
curl_close($session);
?>