From 4d97758e3444967306e378c6ff2d97861ab249f8 Mon Sep 17 00:00:00 2001 From: Guillaume Ayoub Date: Sun, 4 Sep 2011 22:54:13 +0200 Subject: [PATCH] Support repeating events (fixes #574) --- radicale/ical.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/radicale/ical.py b/radicale/ical.py index eaa9460..ea68d75 100644 --- a/radicale/ical.py +++ b/radicale/ical.py @@ -249,7 +249,7 @@ class Calendar(object): for item_type in item_types: item_tags[item_type.tag] = item_type - items = [] + items = {} lines = unfold(text) in_item = False @@ -268,9 +268,14 @@ class Calendar(object): item_type = item_tags[item_tag] item_text = "\n".join(item_lines) item_name = None if item_tag == "VTIMEZONE" else name - items.append(item_type(item_text, item_name)) + item = item_type(item_text, item_name) + if item.name in items: + text = "\n".join((item.text, items[item.name].text)) + items[item.name] = item_type(text, item.name) + else: + items[item.name] = item - return items + return list(items.values()) def get_item(self, name): """Get calendar item called ``name``."""