I don't have a create appointment example... but I do have a search request example. Hope this helps.
Code:
<?php
$options = array('uri' => "urn:zimbraMail");
$params = array(
new SoapParam("inbox", 'l'),
new SoapParam("5", 'limit'),
new SoapParam("is:unread", 'query'));
try {
echo "creating header<br>";
$soapHeader = new SoapHeader(
'urn:zimbra',
'context',
new SoapVar('<ns2:context><authToken>' . $authToken . '</authToken></ns2:context>', XSD_ANYXML)
);
echo "trying<br>";
$result = $client->__soapCall(
"SearchRequest",
$params,
$options,
$soapHeader
);
echo "executed<br>";
} catch (SoapFault $exception) {
echo "exception caught<br><br>";
echo print_nice($client->__getLastRequest()) . "<br><br>";
echo print_nice($client->__getLastRequestHeaders()) . "<br><br>";
echo print_nice($client->__getLastResponseHeaders()) . "<br><br>";
echo print_nice($client->__getLastResponse()) . "<br><br>";
echo $exception . "<br><br>";
}
echo "done<br><br>";
echo print_nice($client->__getLastRequest()) . "<br><br>";
echo print_nice($client->__getLastResponse()) . "<br><br>";
?>