contextService->defaultSchoolYear(); $events = $this->queryService ->filterEventsForAudience( $this->queryService->listEvents([ 'school_year' => $schoolYear, ]), 'teacher', ) ->map(fn ($event) => $this->formatterService->formatEvent($event, 'teacher')) ->values() ->all(); foreach ($this->meetingService->listMeetings($schoolYear, 'teacher', null) as $meeting) { $events[] = $this->formatterService->formatMeetingEvent($meeting, 'teacher'); } usort($events, function (array $left, array $right): int { return strcmp((string) ($left['start'] ?? ''), (string) ($right['start'] ?? '')); }); return view('teacher.calendar', [ 'events' => $events, 'schoolYear' => $schoolYear, 'defaultSemester' => $this->contextService->defaultSemester(), ]); } }