diff --git a/radicale/ical.py b/radicale/ical.py index 804eeeac..9e5a74b6 100644 --- a/radicale/ical.py +++ b/radicale/ical.py @@ -31,6 +31,7 @@ import json import os import posixpath import time +import uuid from radicale import config @@ -97,14 +98,19 @@ class Item(object): self._name = line.replace("UID:", "").strip() # Do not break, a ``X-RADICALE-NAME`` can appear next - if "\nX-RADICALE-NAME:" in text: - for line in unfold(self.text): - if line.startswith("X-RADICALE-NAME:"): - self.text = self.text.replace( - line, "X-RADICALE-NAME:%s" % self._name) + if self._name: + if "\nX-RADICALE-NAME:" in text: + for line in unfold(self.text): + if line.startswith("X-RADICALE-NAME:"): + self.text = self.text.replace( + line, "X-RADICALE-NAME:%s" % self._name) + else: + self.text = self.text.replace( + "\nUID:", "\nX-RADICALE-NAME:%s\nUID:" % self._name) else: + self._name = str(uuid.uuid4()) self.text = self.text.replace( - "\nUID:", "\nX-RADICALE-NAME:%s\nUID:" % self._name) + "\nEND:", "\nUID:%s\nEND:" % self._name) @property def etag(self):