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);
     }
 }
}
$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();
if ($thisconfig->getBoolean('ListChildAreas', false)) {
    $areaRepoBuilder = new \repositories\builders\AreaRepositoryBuilder();
    $areaRepoBuilder->setSite($site);
    $areaRepoBuilder->setIncludeDeleted(false);
    if ($area) {
        $areaRepoBuilder->setParentArea($area);
    } else {
        $areaRepoBuilder->setNoParentArea(true);
    }
    $childAreas = array();
    $areaRepository = new AreaRepository();
    foreach ($areaRepoBuilder->fetchAll() as $area) {
        $areaRepository->updateFutureEventsCache($area);
        if ($thisconfig->getBoolean('ListChildAreasWithNoEvents', false) || $area->getCachedFutureEvents() > 0) {