AETHER-592 Handle all day calendar events

Change-Id: I3184b627ba4f330487e63b136f00ba4280bc7667
diff --git a/edge-monitoring/edge_monitoring_server.py b/edge-monitoring/edge_monitoring_server.py
index 29d66f5..8ac3ea5 100755
--- a/edge-monitoring/edge_monitoring_server.py
+++ b/edge-monitoring/edge_monitoring_server.py
@@ -62,6 +62,19 @@
             return True
     return False
 
+def is_naive_datetime(d):
+    return d.tzinfo is None or d.tzinfo.utcoffset(d) is None
+
+def process_all_day_events(es):
+    for event in es:
+        if event.all_day:
+            # All day events have naive datetimes, which breaks comparisons
+            pacific = pytz.timezone('US/Pacific')
+            if is_naive_datetime(event.start):
+                event.start = pacific.localize(event.start)
+            if is_naive_datetime(event.end):
+                event.end = pacific.localize(event.end)
+
 def in_maintenance_window(events, name, now):
     for event in events:
         if event.start < now and event.end > now:
@@ -76,6 +89,7 @@
         now = datetime.datetime.now(pytz.utc)
         try:
             es  = events(SECRET_ICAL_URL, start = now)
+            process_all_day_events(es)
         except Exception as e:
             print(e)
         else: