function my_calendar_insert_upcoming($atts)
{
    extract(shortcode_atts(array('before' => 'default', 'after' => 'default', 'type' => 'default', 'category' => 'default', 'template' => 'default', 'fallback' => '', 'order' => 'asc', 'skip' => '0', 'show_today' => 'yes', 'author' => 'default', 'host' => 'default', 'ltype' => '', 'lvalue' => ''), $atts, 'my_calendar_upcoming'));
    global $user_ID;
    if ($author == 'current') {
        $author = apply_filters('mc_display_author', $user_ID, 'upcoming');
    }
    if ($host == 'current') {
        $host = apply_filters('mc_display_host', $user_ID, 'upcoming');
    }
    return my_calendar_upcoming_events($before, $after, $type, $category, $template, $fallback, $order, $skip, $show_today, $author, $host, $ltype, $lvalue);
}
 function widget($args, $instance)
 {
     extract($args);
     $the_title = apply_filters('widget_title', $instance['my_calendar_upcoming_title'], $instance, $args);
     $the_template = $instance['my_calendar_upcoming_template'];
     $the_substitute = $instance['my_calendar_no_events_text'];
     $before = $instance['my_calendar_upcoming_before'] != '' ? esc_attr($instance['my_calendar_upcoming_before']) : 3;
     $after = $instance['my_calendar_upcoming_after'] != '' ? esc_attr($instance['my_calendar_upcoming_after']) : 3;
     $skip = $instance['my_calendar_upcoming_skip'] != '' ? esc_attr($instance['my_calendar_upcoming_skip']) : 0;
     $show_today = $instance['my_calendar_upcoming_show_today'] == 'no' ? 'no' : 'yes';
     $type = esc_attr($instance['my_calendar_upcoming_type']);
     $order = esc_attr($instance['my_calendar_upcoming_order']);
     $the_category = $instance['my_calendar_upcoming_category'] == '' ? 'default' : esc_attr($instance['my_calendar_upcoming_category']);
     $author = !isset($instance['my_calendar_upcoming_author']) || $instance['my_calendar_upcoming_author'] == '' ? 'default' : esc_attr($instance['my_calendar_upcoming_author']);
     $host = !isset($instance['mc_host']) || $instance['mc_host'] == '' ? 'default' : esc_attr($instance['mc_host']);
     $widget_link = isset($instance['my_calendar_upcoming_linked']) && $instance['my_calendar_upcoming_linked'] == 'yes' ? get_option('mc_uri') : '';
     $widget_link = !empty($instance['mc_link']) ? esc_url($instance['mc_link']) : $widget_link;
     $widget_title = empty($the_title) ? '' : $the_title;
     $widget_title = $widget_link == '' ? $widget_title : "<a href='{$widget_link}'>{$widget_title}</a>";
     $widget_title = $widget_title != '' ? $before_title . $widget_title . $after_title : '';
     $month = $type == 'month+1' ? date_i18n('F', strtotime('+1 month')) : date_i18n('F', current_time('timestamp'));
     $widget_title = str_replace('{month}', $month, $widget_title);
     $the_events = my_calendar_upcoming_events($before, $after, $type, $the_category, $the_template, $the_substitute, $order, $skip, $show_today, $author, $host);
     if ($the_events != '') {
         echo $before_widget;
         echo $widget_title;
         echo $the_events;
         echo $after_widget;
     }
 }