From 45aa4988a3dffa9dfe39373e9f687dc746ab61eb Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Tue, 16 Oct 2018 17:18:49 +0200 Subject: [PATCH] Fixed parsing when multiple `rrule`s are present --- icalevents/icalparser.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/icalevents/icalparser.py b/icalevents/icalparser.py index 69beeba..40970d5 100644 --- a/icalevents/icalparser.py +++ b/icalevents/icalparser.py @@ -225,8 +225,12 @@ def parse_rrule(component, tz=UTC): :return: extracted rrule or rruleset """ if component.get('rrule'): - # Parse the rrule, might return a rruleset instance, instead of rrule - rule = rrulestr(component['rrule'].to_ical().decode(), dtstart=normalize(component['dtstart'].dt, tz=tz)) + # component['rrule'] can be both a scalar and a list + rrules = component['rrule'] + if not isinstance(rrules, list): + rrules = [rrules] + # Parse the rrules, might return a rruleset instance, instead of rrule + rule = rrulestr('\n'.join(x.to_ical().decode() for x in rrules), dtstart=normalize(component['dtstart'].dt, tz=tz)) if component.get('exdate'): # Make sure, to work with a rruleset