private function renderEvent(AphrontCalendarEventView $event, $epoch_start, $epoch_end)
 {
     $user = $this->user;
     $event_start = $event->getEpochStart();
     $event_end = $event->getEpochEnd();
     $classes = array();
     $when = array();
     $classes[] = 'aphront-calendar-event';
     if ($event_start < $epoch_start) {
         $classes[] = 'aphront-calendar-event-continues-before';
         $when[] = 'Started ' . phabricator_datetime($event_start, $user);
     } else {
         $when[] = 'Starts at ' . phabricator_time($event_start, $user);
     }
     if ($event_end > $epoch_end) {
         $classes[] = 'aphront-calendar-event-continues-after';
         $when[] = 'Ends ' . phabricator_datetime($event_end, $user);
     } else {
         $when[] = 'Ends at ' . phabricator_time($event_end, $user);
     }
     Javelin::initBehavior('phabricator-tooltips');
     $info = $event->getName();
     if ($event->getDescription()) {
         $info .= "\n\n" . $event->getDescription();
     }
     $text_div = javelin_render_tag('div', array('sigil' => 'has-tooltip', 'meta' => array('tip' => $info . "\n\n" . implode("\n", $when), 'size' => 240), 'class' => 'aphront-calendar-event-text'), phutil_escape_html(phutil_utf8_shorten($event->getName(), 32)));
     return javelin_render_tag('div', array('class' => implode(' ', $classes)), $text_div);
 }