diff --git a/app/views/events/index.ics.haml b/app/views/events/index.ics.haml
index 9fd89dcbde30bc651f3f1b8521851d096a282a04..91712c4a8cf3c37bf46e7b7b54d86bf3ab11e25b 100644
--- a/app/views/events/index.ics.haml
+++ b/app/views/events/index.ics.haml
@@ -5,12 +5,15 @@
   cal = Icalendar::Calendar.new
   @events.each do |event|
     tzid = event.region.tzid
-    begin
-      tz = TZInfo::Timezone.get tzid
-      timezone = tz.ical_timezone event.start_time
-      cal.add_timezone timezone
-    rescue TZInfo::InvalidTimezoneIdentifier
-      # No need to add this tz
+    if cal.timezones.none? { |t| tzid == t.tzid }
+      # Only add this zone once
+      begin
+        tz = TZInfo::Timezone.get tzid
+        timezone = tz.ical_timezone event.start_time
+        cal.add_timezone timezone
+      rescue TZInfo::InvalidTimezoneIdentifier
+        # No need to add this tz
+      end
     end
 
     cal.event do |e|