1.1 --- a/imip_manager.py Fri Mar 06 23:48:54 2015 +0100
1.2 +++ b/imip_manager.py Sat Mar 07 00:08:46 2015 +0100
1.3 @@ -867,7 +867,15 @@
1.4 new_attendees, new_attendee = self.handle_new_attendees(obj)
1.5 else:
1.6 dtstart, dtstart_attr = obj.get_datetime_item("DTSTART")
1.7 - dtend, dtend_attr = obj.get_datetime_item("DTEND")
1.8 + if obj.has_key("DTEND"):
1.9 + dtend, dtend_attr = obj.get_datetime_item("DTEND")
1.10 + elif obj.has_key("DURATION"):
1.11 + duration = obj.get_duration("DURATION")
1.12 + dtend = dtstart + duration
1.13 + dtend_attr = dtstart_attr
1.14 + else:
1.15 + dtend, dtend_attr = dtstart, dtstart_attr
1.16 +
1.17 new_attendees = []
1.18 new_attendee = ""
1.19
1.20 @@ -1081,8 +1089,14 @@
1.21 dtend, dtend_attr = None, {}
1.22 elif dtend_control == "disable":
1.23 dtend, dtend_attr = None, {}
1.24 + elif obj.has_key("DTEND"):
1.25 + dtend, dtend_attr = obj.get_datetime_item("DTEND")
1.26 + elif obj.has_key("DURATION"):
1.27 + duration = obj.get_duration("DURATION")
1.28 + dtend = dtstart + duration
1.29 + dtend_attr = dtstart_attr
1.30 else:
1.31 - dtend, dtend_attr = obj.get_datetime_item("DTEND")
1.32 + dtend, dtend_attr = dtstart, dtstart_attr
1.33
1.34 # Change end dates to refer to the actual dates, not the iCalendar
1.35 # "next day" dates.
1.36 @@ -1178,7 +1192,13 @@
1.37 tzid = self.get_tzid()
1.38
1.39 dtstart = format_datetime(obj.get_utc_datetime("DTSTART"))
1.40 - dtend = format_datetime(obj.get_utc_datetime("DTEND"))
1.41 + if obj.has_key("DTEND"):
1.42 + dtend = format_datetime(obj.get_utc_datetime("DTEND"))
1.43 + elif obj.has_key("DURATION"):
1.44 + duration = obj.get_duration("DURATION")
1.45 + dtend = format_datetime(obj.get_utc_datetime("DTSTART") + duration)
1.46 + else:
1.47 + dtend = dtstart
1.48
1.49 periods = obj.get_periods_for_freebusy(self.get_tzid(), self.get_window_end())
1.50