diff --git a/src/applications/calendar/query/PhabricatorCalendarEventQuery.php b/src/applications/calendar/query/PhabricatorCalendarEventQuery.php --- a/src/applications/calendar/query/PhabricatorCalendarEventQuery.php +++ b/src/applications/calendar/query/PhabricatorCalendarEventQuery.php @@ -180,6 +180,21 @@ protected function willFilterPage(array $events) { + foreach ($events as $key => $event) { + $event_start = $event->getDateFrom(); + $event_end = $event->getDateTo(); + + $range_start = $this->rangeBegin; + $range_end = $this->rangeEnd; + + if ($range_start && $event_end < $range_start) { + unset($events[$key]); + } + if ($range_end && $event_start > $range_end) { + unset($events[$key]); + } + } + $phids = array(); foreach ($events as $event) { @@ -197,6 +212,8 @@ $event->attachInvitees($event_invitees); } + $events = msort($events, 'getDateFrom'); + return $events; }