#564 (comment)
There are cases when a rule specifies a combination that never happens in the calendar. If the RRuleIterator is being asked to generate some occurrences of the event, then it loops. We currently stop those by "brute force" - when the loop gets to 9999-12-31 we exit.
If we analyse the request, we should be able to detect request patterns that will never match any actual calendar dates, and return quickly with just the first date of the event and no recurrences. That would save looping through days/months/years all the way to 9999.
#564 (comment)
There are cases when a rule specifies a combination that never happens in the calendar. If the RRuleIterator is being asked to generate some occurrences of the event, then it loops. We currently stop those by "brute force" - when the loop gets to 9999-12-31 we exit.
If we analyse the request, we should be able to detect request patterns that will never match any actual calendar dates, and return quickly with just the first date of the event and no recurrences. That would save looping through days/months/years all the way to 9999.