diff --git a/app/controllers/calendar/calendar.php b/app/controllers/calendar/calendar.php
index 89421cb3e99c3416289bf8b259e0b07232631726..fa33e2e5fad249d466b3b46dbf36ddf1b3cf41fe 100644
--- a/app/controllers/calendar/calendar.php
+++ b/app/controllers/calendar/calendar.php
@@ -39,7 +39,7 @@ class Calendar_CalendarController extends AuthenticatedController
                 _('Termin anlegen'),
                 $this->url_for('calendar/date/add', $params),
                 Icon::create('add'),
-                ['data-dialog' => 'size=auto']
+                ['data-dialog' => 'size=auto', 'class' => 'calendar-action']
             );
         }
 
@@ -446,7 +446,7 @@ class Calendar_CalendarController extends AuthenticatedController
             _('Termin anlegen'),
             $this->url_for('calendar/date/add/course_' . $course->id),
             Icon::create('add'),
-            ['data-dialog' => 'size=default']
+            ['data-dialog' => 'size=default', 'class' => 'calendar-action']
         );
         $actions->addLink(
             _('Drucken'),
diff --git a/app/controllers/calendar/date.php b/app/controllers/calendar/date.php
index eda171b94a86343a03d81d0ee5c03d884f905a4f..cb61a7e7ae7c9b3c7da70f5c7107e2e22d26a674 100644
--- a/app/controllers/calendar/date.php
+++ b/app/controllers/calendar/date.php
@@ -232,6 +232,14 @@ class Calendar_DateController extends AuthenticatedController
             $this->date->repetition_end = $this->date->end;
         } else {
             $time = new DateTime();
+            if (Request::submitted('timestamp')) {
+                $time->setTimestamp(Request::int('timestamp'));
+            } elseif (Request::submitted('defaultDate')) {
+                $date_parts = explode('-', Request::get('defaultDate'));
+                if (count($date_parts) === 3) {
+                    $time->setDate($date_parts[0], $date_parts[1], $date_parts[2]);
+                }
+            }
             $time = $time->add(new DateInterval('PT1H'));
             $time->setTime(intval($time->format('H')), 0, 0);
             $this->date->begin = $time->getTimestamp();
diff --git a/resources/assets/javascripts/lib/fullcalendar.js b/resources/assets/javascripts/lib/fullcalendar.js
index 49274f47f45da264465cc3a38addb0f80bd6ba46..b001ab4c4cb25e5e463cfc531afb3862d7755634 100644
--- a/resources/assets/javascripts/lib/fullcalendar.js
+++ b/resources/assets/javascripts/lib/fullcalendar.js
@@ -731,9 +731,9 @@ class Fullcalendar
             //Get the timestamp:
             let timestamp = changedMoment.getTime() / 1000;
 
-            jQuery('a.resource-bookings-actions').each(function () {
+            jQuery('a.resource-bookings-actions, a.calendar-action').each(function () {
                 const url = new URL(this.href);
-                url.searchParams.set('timestamp', timestamp)
+                url.searchParams.set('timestamp', timestamp.toString())
                 url.searchParams.set('defaultDate', changed_date)
                 this.href = url.toString();
             });