function qem_ics()
{
    global $post;
    $display = event_get_stored_display();
    $summary = $post->post_title;
    $eventstart = get_post_meta($post->ID, 'event_date', true);
    if (!$eventstart) {
        $eventstart = time();
    }
    $start = get_post_meta($post->ID, 'event_start', true);
    $date = date('Ymd\\T', $eventstart);
    $time = qem_time($start);
    $time = date('His', $time);
    $datestart = $date . $time;
    $dateend = get_post_meta($post->ID, 'event_end_date', true);
    $address = get_post_meta($post->ID, 'event_address', true);
    $url = get_permalink();
    $description = get_post_meta($post->ID, 'event_desc', true);
    $filename = $post->post_title . '.ics';
    if (!$dateend) {
        $dateend = $eventstart;
        $finish = get_post_meta($post->ID, 'event_finish', true);
        $date = date('Ymd\\T', $eventstart);
        $time = qem_time($finish);
        $time = date('His', $time);
        $dateend = $date . $time;
    } else {
        $finish = get_post_meta($post->ID, 'event_finish', true);
        $date = date('Ymd\\T', $dateend);
        $time = qem_time($finish);
        $time = date('His', $time);
        $dateend = $date . $time;
    }
    $ics = 'BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:' . uniqid() . '
DTSTAMP:' . dateToCal(time()) . '
DTSTART:' . $datestart . '
DTEND:' . $dateend . '
LOCATION:' . $address . '
DESCRIPTION:' . $description . '
URL;VALUE=URI:' . $url . '
SUMMARY:' . $summary . '
END:VEVENT
END:VCALENDAR';
    qem_generate_csv();
    $content = '<form method="post" action="">
    <input type="hidden" name="qem_ics" value="' . $ics . '">
    <input type="hidden" name="qem_filename" value="' . $filename . '">
    <input type="submit" name="qem_create_ics" class="qem-register" id="submit" value="' . $display['useicsbutton'] . '" /></form>';
    return $content;
}
function save_event_details()
{
    global $post;
    $eventdetails = event_get_stored_options();
    $event = get_the_ID();
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    if (!isset($_POST['save_qem']) || !wp_verify_nonce($_POST['save_qem'], 'qem_nonce')) {
        return;
    }
    if (isset($_POST["event_date"])) {
        $startdate = strtotime($_POST["event_date"]);
        $starttime = qem_time($_POST["event_start"]);
        if (!$startdate) {
            $startdate = time();
        }
        $newdate = $startdate + $starttime;
        update_post_meta($post->ID, "event_date", $newdate);
    }
    if ($_POST["event_end_date"]) {
        $enddate = strtotime($_POST["event_end_date"]);
        $endtime = qem_time($_POST["event_finish"]);
        $newenddate = $enddate + $endtime;
        update_post_meta($post->ID, "event_end_date", $newenddate);
    }
    save_event_field("event_desc");
    save_event_field("event_start");
    save_event_field("event_finish");
    save_event_field("event_timezone");
    if ($_POST["event_timezone"] == "Eastern Australia, Guam, Vladivostok") {
        $sel = "Aus";
    } elseif ($_POST["event_timezone"] == "Mid-Atlantic") {
        $sel = "Mia";
    } else {
        $sel = substr($_POST["event_timezone"], 0, 3);
    }
    update_post_meta($post->ID, "selected_timezone", $sel);
    save_event_field("event_custom_timezone");
    save_event_field("event_location");
    save_event_field("event_address");
    save_event_field("event_link");
    save_event_field("event_anchor");
    save_event_field("event_cost");
    save_event_field("event_organiser");
    save_event_field("event_telephone");
    save_event_field("event_image");
    save_event_field("event_redirect");
    $old = get_event_field("hide_event");
    $new = $_POST["hide_event"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "hide_event", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "hide_event", $old);
    }
    $old = get_event_field("event_number");
    $new = $_POST["event_number"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_number", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "event_number", $old);
    }
    $old = get_event_field("event_register");
    $new = $_POST["event_register"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_register", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "event_register", $old);
    }
    $old = get_event_field("event_counter");
    $new = $_POST["event_counter"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_counter", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "event_counter", $old);
    }
    $old = get_event_field("event_redirect_id");
    $new = $_POST["event_redirect_id"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_redirect_id", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "event_redirect_id", $old);
    }
    $old = get_event_field("event_paypal");
    $new = $_POST["event_paypal"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_paypal", 'checked');
    } elseif ('' == $new) {
        update_post_meta($post->ID, "event_paypal", 'notchecked');
    }
    $harry = $_POST["repeatnumber"];
    $number = $harry > 52 || $harry == 0 ? 52 : $harry;
    if ($_POST["event_repeat"] == 'repeatmonthly') {
        $_POST["event_repeat"] = '';
        qem_duplicate_new_post($event, $number, 'months');
    }
    if ($_POST["event_repeat"] == 'repeatweekly') {
        $_POST["event_repeat"] = '';
        qem_duplicate_new_post($event, $number, 'weeks');
    }
    if ($eventdetails['publicationdate'] && $newdate) {
        remove_action('save_post', 'save_event_details');
        $updatestart = date('Y-m-d H:i:s', $newdate);
        wp_update_post(array('ID' => $event, 'post_date' => $updatestart));
        add_action('save_post', 'save_event_details');
    }
    save_event_field("event_registration_message");
}