Skip to content

getrruleset() returns a set of dates, but ignores the durations when RDATE has a PERIOD value type #147

Description

@da4089

Quick Summary
A repeating event returns the set of instance dates using the getrruleset() method, which returns a generator that yields a sequence of datetime instances. When an RDATE has a PERIOD value type, the duration of event on that date is ignored, and cannot be returned via the current generator.

Context

  • vObject 0.9.9
  • Python 2.7 to 3.14
  • Operating system Debian 13/amd64

Description
When parsing an object (eg. VEVENT) with one or more RDATE entries and/or an RRULE (and optionally one or more EXDATEs), the RecurringComponent exposes the instance dates via a dateutil.rruleset.

Unfortunately, rruleset appears to have some limitations:

  • it cannot mix tz-aware datetime with non-tz-aware datetime values
  • it cannot mix date values with datetime values (for RDATE with VALUE=DATE)
  • it doesn't support RDATE with PERIOD values, because it has no support for DURATIONS at all

See #141 for the initial work to support PERIOD.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions