public function buildEvents(Application $app)
 {
     global $CONFIG;
     $repo = new SiteRepository();
     $site = $repo->loadById($this->site_id);
     $start = \TimeSource::getDateTime();
     $end = \TimeSource::getDateTime();
     $end->add(new \DateInterval("P" . ($this->days_into_future + 1) . "D"));
     $calendar = new \RenderCalendar();
     $calendar->setStartAndEnd($start, $end);
     $calendar->getEventRepositoryBuilder()->setSite($site);
     $calendar->getEventRepositoryBuilder()->setIncludeDeleted(true);
     $calData = $calendar->getData();
     $this->events = $calendar->getEvents();
     $this->event_text = $app['twig']->render('email/sendemail.eventview.calendar.txt.twig', array('data' => $calData, 'currentSite' => $site));
     if ($CONFIG->isDebug) {
         file_put_contents('/tmp/sendemail.eventview.calendar.txt', $this->event_text);
     }
     $this->event_html = $app['twig']->render('email/sendemail.eventview.calendar.html.twig', array('data' => $calData, 'currentSite' => $site));
     if ($CONFIG->isDebug) {
         file_put_contents('/tmp/sendemail.eventview.calendar.html', $this->event_html);
     }
 }
    if ($thisconfig->get('Month') == 12) {
        $end->setDate($thisconfig->get('Year') + 1, 1, 1);
    } else {
        $end->setDate($thisconfig->get('Year'), $thisconfig->get('Month') + 1, 1);
    }
    $end->sub(new \DateInterval('PT1S'));
} else {
    if ($thisconfig->hasValue("Days")) {
        // Options for setting end; by a number of days
        $end->add(new \DateInterval('P' . $thisconfig->get("Days") . 'D'));
    } else {
        // Options for setting end; default to 30 days
        $end->add(new \DateInterval('P30D'));
    }
}
$calendar->setStartAndEnd($start, $end);
// ######################################################### Filters?
$area = null;
if ($thisconfig->hasValue('AreaID')) {
    $repo = new repositories\AreaRepository();
    $area = $repo->loadById($thisconfig->get('AreaID'));
    if ($area) {
        $calendar->getEventRepositoryBuilder()->setArea($area);
    } else {
        die("Area not loaded!\n");
    }
}
// ######################################################### Get Data
$calendar->getEventRepositoryBuilder()->setIncludeAreaInformation(true);
$calData = $calendar->getData();
$childAreas = array();