private function buildRecurringSection(PhabricatorCalendarEvent $event)
 {
     $viewer = $this->getViewer();
     if (!$event->getIsRecurring()) {
         return null;
     }
     $properties = id(new PHUIPropertyListView())->setUser($viewer);
     $is_parent = $event->isParentEvent();
     if ($is_parent) {
         $parent_link = null;
     } else {
         $parent = $event->getParentEvent();
         $parent_link = $viewer->renderHandle($parent->getPHID())->render();
     }
     $rrule = $event->newRecurrenceRule();
     if ($rrule) {
         $frequency = $rrule->getFrequency();
     } else {
         $frequency = null;
     }
     switch ($frequency) {
         case PhutilCalendarRecurrenceRule::FREQUENCY_DAILY:
             if ($is_parent) {
                 $message = pht('This event repeats every day.');
             } else {
                 $message = pht('This event is an instance of %s, and repeats every day.', $parent_link);
             }
             break;
         case PhutilCalendarRecurrenceRule::FREQUENCY_WEEKLY:
             if ($is_parent) {
                 $message = pht('This event repeats every week.');
             } else {
                 $message = pht('This event is an instance of %s, and repeats every week.', $parent_link);
             }
             break;
         case PhutilCalendarRecurrenceRule::FREQUENCY_MONTHLY:
             if ($is_parent) {
                 $message = pht('This event repeats every month.');
             } else {
                 $message = pht('This event is an instance of %s, and repeats every month.', $parent_link);
             }
             break;
         case PhutilCalendarRecurrenceRule::FREQUENCY_YEARLY:
             if ($is_parent) {
                 $message = pht('This event repeats every year.');
             } else {
                 $message = pht('This event is an instance of %s, and repeats every year.', $parent_link);
             }
             break;
     }
     $properties->addProperty(pht('Event Series'), $message);
     return $properties;
 }