/**
 * @method
 *
 * Create Appointment
 *
 * @name createZimbraAppointment
 * @label Create Appointment
 *
 * @param string | $ServerUrl | Server name and port where Zimbra exists | zimbra.server:port
 * @param string | $username | Valid username to connect to Zimbra server
 * @param string | $preAuthKey | Server Key for SSO authentication
 * @param string | $subject | Mail Subject
 * @param string | $appointmentName | Appointment Name
 * @param string | $friendlyName | Organizer's Friendly Name
 * @param string | $userEmail | Email Address of the Attendee(s) seperated by ';'
 * @param string | $domainName | Domain Name
 * @param string | $schedule | Schedule of the Appointment
 * @param string | $cutype | Type of Calendar User
 * @param string | $allDay | Is All Day Appointment
 * @param string | $isOrg | Is Organizer
 * @param string | $rsvp | RSVP
 * @param string | $atFriendlyName | Friendly Name of Attendee(s) seperated by ';'
 * @param string | $role | Attendee's Role
 * @param string | $location | Location
 * @param string | $ptst | Paticipation Status of the user
 * @param string | $startDate | Start Date of the Appointment
 * @param string | $endDate | End Date of the Appointment
 * @param string | $tz | Time Zone
 *
 * @return string | $result | Response
 *
 */
function createZimbraAppointment($ServerUrl, $username, $preAuthKey, $subject, $appointmentName, $friendlyName, $userEmail, $domainName, $schedule, $cutype, $allDay, $isOrg, $rsvp, $atFriendlyName, $role, $location, $ptst, $startDate, $endDate, $tz = '')
{
    $serializeOp = array();
    $serializeOp = array('username' => $username, 'subject' => $subject, 'appointmentName' => $appointmentName, 'friendlyName' => $friendlyName, 'userEmail' => $userEmail, 'domainName' => $domainName, 'schedule' => $schedule, 'cutype' => $cutype, 'allDay' => $allDay, 'isOrg' => $isOrg, 'rsvp' => $rsvp, 'atFriendlyName' => $atFriendlyName, 'role' => $role, 'location' => $location, 'ptst' => $ptst, 'startDate' => $startDate, 'endDate' => $endDate, 'tz' => $tz);
    $serializeOp1 = serialize($serializeOp);
    $zimbra = new Zimbra($username, $ServerUrl, $preAuthKey);
    $connectionResult = $zimbra->connect();
    if (!$connectionResult) {
        return "Check userName or Server URL";
    }
    $sXmlArray = $zimbra->addAppointment($serializeOp1);
    if ($sXmlArray) {
        return "Appointment Created succesfully";
    } else {
        return "Error in Creating Appointment";
    }
}