diff --git a/src/caosadvancedtools/cfood.py b/src/caosadvancedtools/cfood.py
index c4c4e121b68dec51921e964c4927288a8b1bf2a5..c6926e42f178f89a6bcfbec5d5902373a0787d45 100644
--- a/src/caosadvancedtools/cfood.py
+++ b/src/caosadvancedtools/cfood.py
@@ -594,7 +594,31 @@ def assure_has_property(entity, name, value, to_be_updated=None,
 
         if isinstance(value, datetime):
 
-            if datetime.fromisoformat(el.value) == value:
+            try:
+                compare_time = datetime.fromisoformat(el.value)
+            except ValueError:
+                # special case of wrong iso format
+                # time zone
+                tmp = el.value.split("+")
+                if len(tmp) == 2:
+                    tz_str = '+' + tmp[1][:2] + ':' + tmp[1][2:]
+                else:
+                    tz_str = ""
+                tmp = tmp[0]
+                # milli- and micrseconds
+                tmp = tmp.split(".")
+                if len(tmp) == 2:
+                    if len(tmp[1]) < 6:
+                        ms = '.' + tmp[1] + '0'*(6-len(tmp[1]))
+                    else:
+                        raise ValueError(
+                            "invalid millisecond format in {}".format(el.value))
+                else:
+                    ms = ""
+                tmp = tmp[0]  + ms + tz_str
+                compare_time = datetime.fromisoformat(tmp)
+                
+            if  compare_time == value:
                 contained = True
 
                 break