http://php.net/manual/en/simplexmlelement.xpath.php - parse XML
http://www.php.net/manual/en/simplexml.examples-basic.php - register namespaces, etc.
Example for Google calendar. Most important parts are the namespaces and (string) casting.
$contents = file_get_contents($calendar_url); // should end with 'full', not 'basic' $xml = new SimpleXMLElement($contents); $namespaces = $xml->getDocNamespaces(); $xml->registerXPathNamespace('__empty_ns', $namespaces['']); $xml->registerXPathNamespace('gd', 'http://schemas.google.com/g/2005'); # xmlns:gd='http://schemas.google.com/g/2005' $entries = $xml->xpath("//__empty_ns:entry"); while(list( , $node) = each($entries)) { $time_nodes = $node->xpath("gd:when/@startTime"); while ($time_node = each($time_nodes)) { # <gd:when endTime="2011-08-19T17:00:00.000+01:00" startTime="2011-08-19T14:00:00.000+01:00"></gd:when> $time_text = (string)$time_node[1]->startTime; die "time = $time_text\n";