From 3746dc6e9671cbc481f4c4b853745ac44f0ffda0 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 11 Feb 2022 18:41:47 -0800 Subject: [PATCH] Add missing interval to RRULE Otherwise, entries can only repeat daily, yearly, etc. instead of every X days/years/etc. --- tests/test_calendar.py | 22 ++++++++++++++++++++++ yaml2ics.py | 1 + 2 files changed, 23 insertions(+) diff --git a/tests/test_calendar.py b/tests/test_calendar.py index b25ad8a..4afb1e0 100644 --- a/tests/test_calendar.py +++ b/tests/test_calendar.py @@ -95,3 +95,25 @@ def test_calendar_name(): cal_str = cal.serialize() assert "NAME:My Second Calendar" in cal_str assert cal_str.count("NAME:") == 1 + + +def test_repeat(): + cal = files_to_calendar( + [ + iowrap( + """ + events: + - summary: Repeating Event + begin: 2022-02-11 + repeat: + interval: + days: 5 + until: 2022-02-21 + """ + ) + ] + ) + cal_str = cal.serialize() + rrule = [line for line in cal_str.split("\n") if line.startswith("RRULE")][0] + assert "FREQ=DAILY" in rrule + assert "INTERVAL=5" in rrule diff --git a/yaml2ics.py b/yaml2ics.py index 906594a..9cce61b 100644 --- a/yaml2ics.py +++ b/yaml2ics.py @@ -66,6 +66,7 @@ def event_from_yaml(event_yaml: dict, tz: tzinfo = None) -> ics.Event: rrule = dateutil.rrule.rrule( freq=interval_type[interval_measure], + interval=interval[interval_measure], until=repeat.get("until"), dtstart=d["begin"], )