diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
index b4d21f441c2f9cb79b9af33874e521e2df3e401a..0f8c722e4e85ae8348d3f1f7725f39d68f5a528d 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
@@ -108,7 +108,7 @@
 import CRUDIterator from "aleksis.core/components/generic/CRUDIterator.vue";
 import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.vue";
 import DocumentationModal from "./documentation/DocumentationModal.vue";
-import { DateTime } from "luxon";
+import { DateTime, Interval } from "luxon";
 import {
   coursesOfPerson,
   documentationsForCoursebook,
@@ -322,11 +322,27 @@ export default {
 
       return "documentation_" + nearestId.toISODate();
     },
+    // TODO: Improve Add empty but already queried days to docsByDay -> do not query them again
+    // docsByDay: {dt: [dt doc ...] ...}
+    assureDate(date) {
+      // find missing & fetch missing range
+      // date +- 5 days ?
+      const dateRange = Interval
+            .fromDateTimes(date.minus({ days: 3 }), date.plus({ days: 4 }))
+            .splitBy({ days: 1 })
+            .map((ts) => ts.start);
+      console.log('assureDate', dateRange.map((ts) => ts.toISODate()));
+      // look up in docsByDay
+      // sort missing and ask for first to last
+      // integrate into docsByDay
+
+    },
     gotoDate(date, scroll) {
       // show
       this.$router.replace({ hash: date })
       console.log('hash', this.$route.hash);
       // assure
+      this.assureDate(DateTime.fromISO(date));
       // scroll
     },
   },