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,9 +180,22 @@ protected function willFilterPage(array $events) { - $phids = array(); + $filtered_events = array(); foreach ($events as $event) { + $event_start = $event->getDateFrom(); + $event_end = $event->getDateTo(); + + if ($event_start <= $this->rangeEnd && + $event_end >= $this->rangeBegin) { + $filtered_events[] = $event; + } + $filtered_events = array_values(msort($filtered_events, 'getDateFrom')); + } + + $phids = array(); + + foreach ($filtered_events as $event) { $phids[] = $event->getPHID(); } @@ -192,12 +205,12 @@ ->execute(); $invitees = mgroup($invitees, 'getEventPHID'); - foreach ($events as $event) { + foreach ($filtered_events as $event) { $event_invitees = idx($invitees, $event->getPHID(), array()); $event->attachInvitees($event_invitees); } - return $events; + return $filtered_events; } }