public static function event_microdata($arg_post = null, $echo = true, $next_upcoming = false)
    {
        global $post;
        ob_start();
        $p = is_null($arg_post) ? $post : $arg_post;
        ?>
<div itemscope itemtype="http://schema.org/Event"><?php 
        ?>
<meta itemprop="name" content="<?php 
        the_title();
        ?>
"><?php 
        ?>
<meta itemprop="url" content="<?php 
        echo get_permalink($p->ID);
        ?>
"><?php 
        if (isset($_REQUEST['event_rdate']) && '' != $_REQUEST['event_rdate']) {
            $arr = explode(',', $_REQUEST['event_rdate']);
            $event_start = $arr[0];
            $event_end = $arr[1];
        } else {
            if ($next_upcoming) {
                global $wpdb;
                $sql = "SELECT event_start, event_end FROM `{$wpdb->prefix}rhc_events` WHERE post_id={$p->ID} AND event_start>NOW() ORDER BY event_start ASC LIMIT 1;";
                $event_start = $wpdb->get_var($sql, 0, 0);
                $event_end = $wpdb->get_var($sql, 1, 0);
                if (empty($event_start) || empty($event_end)) {
                    $event_start = get_post_meta($p->ID, 'fc_start_datetime', true);
                    $event_end = get_post_meta($p->ID, 'fc_end_datetime', true);
                }
            } else {
                $event_start = get_post_meta($p->ID, 'fc_start_datetime', true);
                $event_end = get_post_meta($p->ID, 'fc_end_datetime', true);
            }
        }
        $ts_start = strtotime($event_start);
        $ts_end = strtotime($event_end);
        if ($ts_end < $ts_start) {
            $ts_end = $ts_start;
        }
        $start = date('Y-m-d\\TH:i:s', $ts_start);
        $end = date('Y-m-d\\TH:i:s', $ts_end);
        ?>
<meta itemprop="startDate" content="<?php 
        echo esc_attr($start);
        ?>
"><?php 
        ?>
<meta itemprop="endDate" content="<?php 
        echo esc_attr($end);
        ?>
"><?php 
        //venues
        $venues = wp_get_post_terms($p->ID, RHC_VENUE, array());
        if (is_array($venues) && count($venues) > 0) {
            foreach ($venues as $v) {
                rhc_template_frontend::venue_microdata($v);
            }
        }
        //organizers
        $organizers = wp_get_post_terms($p->ID, RHC_ORGANIZER, array());
        if (is_array($organizers) && count($organizers) > 0) {
            foreach ($organizers as $organizer) {
                rhc_template_frontend::organizer_microdata($organizer);
            }
        }
        ?>
</div><?php 
        $output = ob_get_contents();
        if (!$echo) {
            ob_end_clean();
        }
        return $output;
    }