public function getCalendarEntry()
 {
     $Params = $this->getURLParams();
     if (is_numeric($Params['ID']) && ($CalendarEntry = CalendarEntry::get()->byID((int) $Params['ID']))) {
         return $CalendarEntry;
     }
 }
 function json()
 {
     $params = $this->getURLParams();
     $filter = "(StartDate >= CURRENT_DATE";
     $filter .= " OR EndDate >= CURRENT_DATE)";
     if (array_key_exists('start', $params) && array_key_exists('start', $params) && is_numeric($params['start']) && is_numeric($params['end'])) {
         $filter = " AND (StartDate >= " . date('Y-m-d', $params['start']);
         $filter .= " AND StartDate <= " . date('Y-m-d', $params['end']);
         $filter .= " OR EndDate >= " . date('Y-m-d', $params['start']);
         $filter .= " AND EndDate <= " . date('Y-m-d', $params['end'] . ")");
     }
     $entries = CalendarEntry::get()->filter(array("CalendarPageID" => $this->ID))->Sort('StartDate')->where($filter);
     $result = array();
     foreach ($entries as $event) {
         array_push($result, array('id' => $event->ID, 'title' => $event->Title, 'start' => $event->StartDate, 'end' => $event->EndDate, 'url' => $event->Link));
     }
     echo json_encode($result);
 }
 public function getAllGroupedCalendarEntries()
 {
     $entries = GroupedList::create(CalendarEntry::get()->Sort('Date, Time'));
     return $entries;
 }