diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
index 42873982e79e7e46619a935bed2f1bd79d7c4a3c..50dd14a3ca0c754d076a8283b953eae99f919f5c 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
@@ -23,7 +23,7 @@
         v-intersect="{
             handler: intersectHandler(date, first, last),
             options: {
-              rootMargin: '-165px 0px 0px 0px',
+              rootMargin: '-' + topMargin + 'px 0px 0px 0px',
               threshold: [0, 1],
             },
           }"
@@ -102,6 +102,14 @@ export default {
       required: false,
       default: null,
     },
+    /**
+     * Margin from coursebook list to top of viewport in pixels
+     */
+    topMargin: {
+      type: Number,
+      required: false,
+      default: 165,
+    },
   },
   data() {
     return {
@@ -258,8 +266,7 @@ export default {
         const entry = entries[0];
         if (entry.isIntersecting) {
 
-          // TODO: Make 165 a var?
-          if ((entry.boundingClientRect.top <= 165) || first) {
+          if ((entry.boundingClientRect.top <= this.topMargin) || first) {
             console.log('@', date.toISODate());
             this.setDate(date.toISODate());
           }