diff --git a/modules/calendar.js b/modules/calendar.js
index b9428c0337bb160d5f6fda3230537cba708ea3cd..ff7fd8614c8211b533df61a5555f079e02d009fd 100644
--- a/modules/calendar.js
+++ b/modules/calendar.js
@@ -1,6 +1,7 @@
 var httpreq = require('httpreq');
 var ical = require('ical.js');
 var Mustache = require('mustache');
+var time = require('time');
 
 var URL = 'https://stratum0.org/kalender/termine.ics';
 var TEMPLATE = '';
@@ -9,6 +10,8 @@ require('fs').readFile('modules/calendar/template.mustache', 'utf-8', function (
 });
 var CALENDAR;
 
+var TZOFFSET = new time.Date().getTimezoneOffset()*60;
+
 function pad(n, width, z) {
     z = z || '0';
     n = n + '';
@@ -42,7 +45,7 @@ function getData(count, cb) {
                 for (var i = 0; i < 100; i++) {
                     var next = iter.next();
                     if (next === undefined) {break;}
-                    var start = next.toUnixTime();
+                    var start = next.toUnixTime()+TZOFFSET;
                     events.push({
                         title: p('summary'),
                         start: start,
@@ -52,8 +55,8 @@ function getData(count, cb) {
             } else {
                 events.push({
                     title: p('summary'),
-                    start: p('dtstart').toUnixTime(),
-                    end: p('dtend').toUnixTime(),
+                    start: p('dtstart').toUnixTime()+TZOFFSET,
+                    end: p('dtend').toUnixTime()+TZOFFSET,
                 });
             }
         }
@@ -119,4 +122,3 @@ module.exports = function (io) {
     });
     setInterval(update, 600000);
 }
-
diff --git a/package.json b/package.json
index bdac138b9ddb17041ca82949ee4dd09c5b2f784a..bbed1452ce927e545f011856064d53036e7350f4 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,8 @@
     "ms": "^0.7.1",
     "mustache": "^2.2.0",
     "pixl-xml": "^1.0.4",
-    "socket.io": "^1.3.7"
+    "socket.io": "^1.3.7",
+    "time": "^0.11.4"
   },
   "devDependencies": {},
   "scripts": {