From cb162a5b1e534752601d95684c636f02d4c4086a Mon Sep 17 00:00:00 2001 From: Ace Date: Sun, 14 Jun 2020 22:58:27 +0200 Subject: [PATCH] Fixed an issue with timezones for all days events Fix an issue where all day events would not be shifted by the UTC offset Credit to emilyboda --- inkycal/modules/ical_parser.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/inkycal/modules/ical_parser.py b/inkycal/modules/ical_parser.py index 17f201d..2f41da4 100644 --- a/inkycal/modules/ical_parser.py +++ b/inkycal/modules/ical_parser.py @@ -127,15 +127,18 @@ class iCalendar: re_events = ( { - 'title':events.get('SUMMARY').lstrip(), - 'begin':arrow.get(events.get('DTSTART').dt).to(timezone - if arrow.get(events.get('dtstart').dt).format('HH:mm') != '00:00' - else 'UTC'), - 'end':arrow.get(events.get("DTEND").dt).to(timezone - if arrow.get(events.get('dtstart').dt).format('HH:mm') != '00:00' - else 'UTC') - } - for ical in recurring_events for events in ical) + 'title': events.get('SUMMARY').lstrip(), + + 'begin': arrow.get(events.get('DTSTART').dt).to(timezone) if ( + arrow.get(events.get('dtstart').dt).format('HH:mm') != '00:00') + else arrow.get(events.get('DTSTART').dt).replace(tzinfo=timezone), + + 'end':arrow.get(events.get("DTEND").dt).to(timezone) if ( + arrow.get(events.get('dtstart').dt).format('HH:mm') != '00:00') + else arrow.get(events.get('DTEND').dt).replace(tzinfo=timezone) + + } for ical in recurring_events for events in ical) + # if any recurring events were found, add them to parsed_events if re_events: self.parsed_events += list(re_events) @@ -150,7 +153,7 @@ class iCalendar: if not self.parsed_events: logger.debug('no events found to be sorted') else: - # Not working as expected.... + # sort events by date by_date = lambda event: event['begin'] self.parsed_events.sort(key=by_date)