public function getAllEvents(): array
    {
        $calendarEvents = null;
        $cache = $this->cache;

        if ($cache::has(self::ALL_EVENTS_KEY)) {
            return $cache::get(self::ALL_EVENTS_KEY);
        }

        $allEvents = $this->calendarEvent
            ->with(['calendarEventRepeatDates'])
            ->get()
        ;
        $calendarEvents = $allEvents->keyBy('id')
                                    ->toArray()
        ;

        $cache::put(self::ALL_EVENTS_KEY, $calendarEvents, $this->cacheTimeToLive);

        return $calendarEvents;
    }