private function set_event_start_and_end_date(CalendarEvent $event, $new_start_date, $new_end_date)
 {
     switch ($event->get_content()->get_repeat_type()) {
         case CalendarEventContent::DAILY:
             $new_start_date->add_days(1);
             $new_end_date->add_days(1);
             $event->set_start_date($new_start_date);
             $event->set_end_date($new_end_date);
             break;
         case CalendarEventContent::WEEKLY:
             $new_start_date->add_weeks(1);
             $new_end_date->add_weeks(1);
             $event->set_start_date($new_start_date);
             $event->set_end_date($new_end_date);
             break;
         case CalendarEventContent::MONTHLY:
             $new_start_month = $new_start_date->get_month() + 1;
             if ($new_start_month > 12) {
                 $new_start_date->set_month(1);
                 $new_start_date->set_year($new_start_date->get_year() + 1);
             } else {
                 $new_start_date->set_month($new_start_month);
             }
             $new_end_month = $new_end_date->get_month() + 1;
             if ($new_end_month > 12) {
                 $new_end_date->set_month(1);
                 $new_end_date->set_year($new_end_date->get_year() + 1);
             } else {
                 $new_end_date->set_month($new_end_month);
             }
             $event->set_start_date($new_start_date);
             $event->set_end_date($new_end_date);
             break;
         case CalendarEventContent::YEARLY:
             $new_start_date->set_year($new_start_date->get_year() + 1);
             $new_end_date->set_year($new_end_date->get_year() + 1);
             $event->set_start_date($new_start_date);
             $event->set_end_date($new_end_date);
             break;
         default:
             $event->set_start_date($new_start_date);
             $event->set_end_date($new_end_date);
             break;
     }
     return $event;
 }