diff --git a/res/res_calendar_caldav.c b/res/res_calendar_caldav.c
index 55fd4f7613194e5f5aab0ca139d69db0c80cfd80..88b043290774e74cb1d7022701870505ac9b8c83 100644
--- a/res/res_calendar_caldav.c
+++ b/res/res_calendar_caldav.c
@@ -456,7 +456,7 @@ static void caldav_add_event(icalcomponent *comp, struct icaltime_span *span, vo
 		/* XXX Technically you can check RELATED to see if the event fires from the END of the event
 		 * But, I'm not sure I've ever seen anyone implement it in calendaring software, so I'm ignoring for now */
 		tmp = icaltime_add(start, trigger.duration);
-		event->alarm = icaltime_as_timet_with_zone(tmp, utc);
+		event->alarm = icaltime_as_timet_with_zone(tmp, icaltime_get_timezone(start));
 	}
 
 	ao2_link(pvt->events, event);
diff --git a/res/res_calendar_icalendar.c b/res/res_calendar_icalendar.c
index 8ef269e4f3733f74b4320c51340ff43de7105d82..61a400235397bd8e6a99ae035a055be5fd886ecb 100644
--- a/res/res_calendar_icalendar.c
+++ b/res/res_calendar_icalendar.c
@@ -299,7 +299,7 @@ static void icalendar_add_event(icalcomponent *comp, struct icaltime_span *span,
 		/* XXX Technically you can check RELATED to see if the event fires from the END of the event
 		 * But, I'm not sure I've ever seen anyone implement it in calendaring software, so I'm ignoring for now */
 		tmp = icaltime_add(start, trigger.duration);
-		event->alarm = icaltime_as_timet_with_zone(tmp, utc);
+		event->alarm = icaltime_as_timet_with_zone(tmp, icaltime_get_timezone(start));
 	}
 
 	ao2_link(pvt->events, event);