Returns all the occurrences of the rrule between after and before.
The inc keyword defines what happens if after and/or before are
themselves occurrences. With inc=True, they will be included in the
list, if they are found in the recurrence set.

That’s the base of the rrule operation. It accepts all the keywords
defined in the RFC as its constructor parameters (except byday,
which was renamed to byweekday) and more. The constructor prototype is:

rrule(freq)

Where freq must be one of YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY,
or SECONDLY.

Note

Per RFC section 3.3.10, recurrence instances falling on invalid dates
and times are ignored rather than coerced:

Recurrence rules may generate recurrence instances with an invalid
date (e.g., February 30) or nonexistent local time (e.g., 1:30 AM
on a day where the local time is moved forward by an hour at 1:00
AM). Such recurrence instances MUST be ignored and MUST NOT be
counted as part of the recurrence set.

This can lead to possibly surprising behavior when, for example, the
start date occurs at the end of the month:

dtstart – The recurrence start. Besides being the base for the recurrence,
missing parameters in the final recurrence instances will also be
extracted from this date. If not given, datetime.now() will be used
instead.

interval – The interval between each freq iteration. For example, when using
YEARLY, an interval of 2 means once every two years, but with HOURLY,
it means once every two hours. The default interval is 1.

wkst – The week start day. Must be one of the MO, TU, WE constants, or an
integer, specifying the first day of the week. This will affect
recurrences based on weekly periods. The default week start is got
from calendar.firstweekday(), and may be modified by
calendar.setfirstweekday().

count –

How many occurrences will be generated.

Note

As of version 2.5.0, the use of the until keyword together
with the count keyword is deprecated per RFC-5545 Sec. 3.3.10.

until –

If given, this must be a datetime instance, that will specify the
limit of the recurrence. The last recurrence in the rule is the greatest
datetime that is less than or equal to the value specified in the
until parameter.

Note

As of version 2.5.0, the use of the until keyword together
with the count keyword is deprecated per RFC-5545 Sec. 3.3.10.

bysetpos – If given, it must be either an integer, or a sequence of integers,
positive or negative. Each given integer will specify an occurrence
number, corresponding to the nth occurrence of the rule inside the
frequency period. For example, a bysetpos of -1 if combined with a
MONTHLY frequency, and a byweekday of (MO, TU, WE, TH, FR), will
result in the last work day of every month.

bymonth – If given, it must be either an integer, or a sequence of integers,
meaning the months to apply the recurrence to.

bymonthday – If given, it must be either an integer, or a sequence of integers,
meaning the month days to apply the recurrence to.

byyearday – If given, it must be either an integer, or a sequence of integers,
meaning the year days to apply the recurrence to.

byeaster – If given, it must be either an integer, or a sequence of integers,
positive or negative. Each integer will define an offset from the
Easter Sunday. Passing the offset 0 to byeaster will yield the Easter
Sunday itself. This is an extension to the RFC specification.

byweekno – If given, it must be either an integer, or a sequence of integers,
meaning the week numbers to apply the recurrence to. Week numbers
have the meaning described in ISO8601, that is, the first week of
the year is that containing at least four days of the new year.

byweekday – If given, it must be either an integer (0 == MO), a sequence of
integers, one of the weekday constants (MO, TU, etc), or a sequence
of these constants. When given, these variables will define the
weekdays where the recurrence will be applied. It’s also possible to
use an argument n for the weekday instances, which will mean the nth
occurrence of this weekday in the period. For example, with MONTHLY,
or with YEARLY and BYMONTH, using FR(+1) in byweekday will specify the
first friday of the month where the recurrence happens. Notice that in
the RFC documentation, this is specified as BYDAY, but was renamed to
avoid the ambiguity of that keyword.

byhour – If given, it must be either an integer, or a sequence of integers,
meaning the hours to apply the recurrence to.

byminute – If given, it must be either an integer, or a sequence of integers,
meaning the minutes to apply the recurrence to.

bysecond – If given, it must be either an integer, or a sequence of integers,
meaning the seconds to apply the recurrence to.

cache – If given, it must be a boolean value specifying to enable or disable
caching of results. If you will use the same rrule instance multiple
times, enabling caching will improve the performance considerably.

If a BYXXX sequence is passed to the constructor at the same level as
FREQ (e.g. FREQ=HOURLY,BYHOUR={2,4,7},INTERVAL=3), there are some
specifications which cannot be reached given some starting conditions.

This occurs whenever the interval is not coprime with the base of a
given unit and the difference between the starting position and the
ending position is not coprime with the greatest common denominator
between the interval and the base. For example, with a FREQ of hourly
starting at 17:00 and an interval of 4, the only valid values for
BYHOUR would be {21, 1, 5, 9, 13, 17}, because 4 and 24 are not
coprime.