private function convert_recurring_event_to_child_posts($event_id)
 {
     $start_dates = get_post_meta($event_id, '_EventStartDate', false);
     if (!is_array($start_dates)) {
         return;
     }
     sort($start_dates);
     $original = array_shift($start_dates);
     $start_dates = array_map('strtotime', $start_dates);
     foreach ($start_dates as $date) {
         if (!empty($date)) {
             $instance = new TribeEventsPro_RecurrenceInstance($event_id, $date);
             $instance->save();
             delete_post_meta($event_id, '_EventStartDate', date('Y-m-d H:i:s', $date));
         }
     }
     delete_post_meta($event_id, '_EventStartDate');
     update_post_meta($event_id, '_EventStartDate', $original);
 }
 public static function save_pending_events($event_id)
 {
     if (wp_get_post_parent_id($event_id) != 0) {
         return;
     }
     $next_pending = get_post_meta($event_id, '_EventNextPendingRecurrence', true);
     if (empty($next_pending)) {
         return;
     }
     $recurrence = self::getRecurrenceForEvent($event_id);
     $recurrence->setMinDate(strtotime($next_pending));
     $recurrence->setMaxDate(strtotime(self::$scheduler->get_latest_date()));
     $dates = (array) $recurrence->getDates();
     if (empty($dates)) {
         return;
         // nothing to add right now. try again later
     }
     delete_post_meta($event_id, '_EventNextPendingRecurrence');
     if ($recurrence->constrainedByMaxDate() !== false) {
         update_post_meta($event_id, '_EventNextPendingRecurrence', date(DateSeriesRules::DATE_FORMAT, $recurrence->constrainedByMaxDate()));
     }
     $excluded = array_map('strtotime', self::get_excluded_dates($event_id));
     foreach ($dates as $date) {
         if (!in_array($date, $excluded)) {
             $instance = new TribeEventsPro_RecurrenceInstance($event_id, $date);
             $instance->save();
         }
     }
 }