diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue
index 19dc5721608145010d96a7bbcbd0a8a6051e5e32..902a33f2582cc30a76d8145e619da432d0092a4c 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue
@@ -28,7 +28,7 @@
           <div aria-required="true">
             <date-time-field
               :label="$t('forms.labels.start')"
-              :max-date="endDate"
+              :max-date="maxStartDate"
               :max-time="maxStartTime"
               :limit-selectable-range="false"
               :rules="$rules().required.build()"
@@ -41,7 +41,7 @@
           <div aria-required="true">
             <date-time-field
               :label="$t('forms.labels.end')"
-              :min-date="startDate"
+              :min-date="minEndDate"
               :min-time="minEndTime"
               :limit-selectable-range="false"
               :rules="$rules().required.build()"
@@ -142,6 +142,14 @@ export default {
 
       return start.plus({ minutes: 5 }).toFormat("HH:mm");
     },
+    maxStartDate() {
+      const end = DateTime.fromISO(this.endDate);
+      return end.toISODate();
+    },
+    minEndDate() {
+      const start = DateTime.fromISO(this.startDate);
+      return start.toISODate();
+    },
   },
   methods: {
     handleStartDate(startDate) {