private function _reset_expired_bookings($since)
 {
     //$rsvps = Eab_EventModel::get_bookings(Eab_EventModel::BOOKING_YES, $since);
     $rsvps = Eab_EventModel::get_bookings(Eab_EventModel::BOOKING_YES);
     // Just reset all the expired bookings.
     $now = eab_current_time();
     $cutoff_limit = $this->_data->get_option('rsvp_auto_reset-cutoff');
     $cutoff_limit = $cutoff_limit ? $cutoff_limit : 3600;
     $callback = (int) $this->_data->get_option('rsvp_auto_reset-remove_attendance') ? 'delete_attendance' : 'cancel_attendance';
     $events = array();
     // Events cache
     foreach ($rsvps as $rsvp) {
         // Check time difference
         $time_diff = $now - strtotime($rsvp->timestamp);
         if ($time_diff < $cutoff_limit) {
             continue;
         }
         // This one still has time to pay
         // Check event premium status
         if (empty($events[$rsvp->event_id])) {
             $events[$rsvp->event_id] = new Eab_EventModel(get_post($rsvp->event_id));
         }
         if (!$events[$rsvp->event_id]->is_premium()) {
             continue;
         }
         // Not a paid event, carry on
         // Check user payment
         if ($events[$rsvp->event_id]->user_paid($rsvp->user_id)) {
             continue;
         }
         // User paid for event, we're good here.
         // If we got here, we should reset the users RSVP
         if (is_callable(array($events[$rsvp->event_id], $callback))) {
             $events[$rsvp->event_id]->{$callback}($rsvp->user_id);
         }
     }
 }