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:
