protected function getTagContent()
 {
     $viewer = $this->getViewer();
     $user = $this->getAvailableUser();
     $until = $user->getAwayUntil();
     if (!$until) {
         return pht('Available');
     }
     $const = $user->getDisplayAvailability();
     $name = PhabricatorCalendarEventInvitee::getAvailabilityName($const);
     $color = PhabricatorCalendarEventInvitee::getAvailabilityColor($const);
     $away_tag = id(new PHUITagView())->setType(PHUITagView::TYPE_SHADE)->setShade($color)->setName($name)->setDotColor($color);
     $now = PhabricatorTime::getNow();
     // Try to load the event handle. If it's invalid or the user can't see it,
     // we'll just render a generic message.
     $object_phid = $user->getAvailabilityEventPHID();
     $handle = null;
     if ($object_phid) {
         $handles = $viewer->loadHandles(array($object_phid));
         $handle = $handles[$object_phid];
         if (!$handle->isComplete() || $handle->getPolicyFiltered()) {
             $handle = null;
         }
     }
     switch ($const) {
         case PhabricatorCalendarEventInvitee::AVAILABILITY_AWAY:
             if ($handle) {
                 $description = pht('Away at %s until %s.', $handle->renderLink(), $viewer->formatShortDateTime($until, $now));
             } else {
                 $description = pht('Away until %s.', $viewer->formatShortDateTime($until, $now));
             }
             break;
         case PhabricatorCalendarEventInvitee::AVAILABILITY_BUSY:
         default:
             if ($handle) {
                 $description = pht('Busy at %s until %s.', $handle->renderLink(), $viewer->formatShortDateTime($until, $now));
             } else {
                 $description = pht('Busy until %s.', $viewer->formatShortDateTime($until, $now));
             }
             break;
     }
     return array($away_tag, ' ', $description);
 }