public function getInfiniteEvents(array $events, array $options = [], bool $isInfinite = true): array
    {
        $result = $existingEventIds = [];
        $query = $this->findCalendarEvents($options, $isInfinite);

        if (!$query) {
            return $result;
        }

        if (!empty($events)) {
            $existingEventIds = array_map(function ($item) {
                return $item->id;
            }, $events);
        }

        foreach ($query as $item) {
            if (in_array($item->id, $existingEventIds) || empty($item->recurrence)) {
                continue;
            }

            $rule = $this->getRRuleConfiguration($item->recurrence);
            $rrule = new RRule($rule);

            if ($rrule->isInfinite()) {
                array_push($result, $item);
            }
        }

        return $result;
    }