Quick Summary
The vobject parser appears to ignore RDATE lines with a PERIOD value type.
Context
- vObject 0.9.9
- Python 3.14
- OS: Debian 13/amd64
Description
When specifying a recurring event, using an RRULE with a non-standard recurrence supplied using RDATE with a PERIOD value type, the resulting vobject's rruleset does not include the RDATE recurrence.
RDATE recurrences using DATE-TIME value type are correctly added to the rruleset.
To Reproduce
See the script below. Note that the value of a DOES NOT include the first two RDATE recurrences (which use a PERIOD value type), but DOES include the third recurrence (which uses a DATE-TIME value type).
import vobject
raw = "BEGIN:VCALENDAR\r\n" \
+ "VERSION:2.0\r\n" \
+ "PRODID:test\r\n" \
+ "BEGIN:VEVENT\r\n" \
+ "UID:test\r\n" \
+ "DTSTART:20000101T000000Z\r\n" \
+ "DURATION:PT1H\r\n" \
+ "DTSTAMP:20000101T000000Z\r\n" \
+ "RDATE;VALUE=PERIOD:20000102T000000Z/PT2H\r\n" \
+ "RDATE;VALUE=PERIOD:20000103T000000Z/20000103T000300Z\r\n" \
+ "RDATE:20000104T040000Z\r\n" \
+ "EXDATE:20000115T000000Z,20000129T000000Z\r\n" \
+ "RRULE:FREQ=WEEKLY\r\n" \
+ "END:VEVENT\r\n" \
+ "END:VCALENDAR\r\n"
obj = vobject.readOne(raw)
vevent = obj.contents['vevent'][0]
rruleset = vevent.getrruleset()
# Set starting timestamp to DTSTART of recurrence.
start = vevent.dtstart.value
# Fetch first 10 recurrences.
a = list(rruleset.xafter(start, 10, True))
# Advance starting point to the timestamp of the last-fetched recurrence.
start = a[-1]
# Fetch next 10 recurrences.
b = list(rruleset.xafter(start, 10))
Further Notes
See also issue #133.
Quick Summary
The vobject parser appears to ignore RDATE lines with a PERIOD value type.
Context
Description
When specifying a recurring event, using an RRULE with a non-standard recurrence supplied using RDATE with a PERIOD value type, the resulting vobject's rruleset does not include the RDATE recurrence.
RDATE recurrences using DATE-TIME value type are correctly added to the rruleset.
To Reproduce
See the script below. Note that the value of
aDOES NOT include the first two RDATE recurrences (which use a PERIOD value type), but DOES include the third recurrence (which uses a DATE-TIME value type).Further Notes
See also issue #133.