diff --git a/aleksis/apps/chronos/frontend/components/Substitutions.vue b/aleksis/apps/chronos/frontend/components/Substitutions.vue
index 833a49bf78773604d5db8e7d1ff66ac5fae81112..550f3876262471e3ccb23933f662259e8b64f925 100644
--- a/aleksis/apps/chronos/frontend/components/Substitutions.vue
+++ b/aleksis/apps/chronos/frontend/components/Substitutions.vue
@@ -1,6 +1,7 @@
 <script setup>
 import CRUDList from "aleksis.core/components/generic/CRUDList.vue";
 import PrimaryActionButton from "aleksis.core/components/generic/buttons/PrimaryActionButton.vue";
+import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.vue";
 </script>
 
 <template>
@@ -129,6 +130,15 @@ import PrimaryActionButton from "aleksis.core/components/generic/buttons/Primary
       </v-chip>
       {{ notes }}
     </template>
+    <template #footer>
+      <!-- TODO: Skip over unneeded days; eg. weekends. -->
+      <date-select-footer
+        :value="date"
+        @input="gotoDate"
+        @prev="gotoDate(DateTime.fromISO(date).minus({ days: 1 }).toISODate())"
+        @next="gotoDate(DateTime.fromISO(date).plus({ days: 1 }).toISODate())"
+      />
+    </template>
   </c-r-u-d-list>
 </template>
 
@@ -186,6 +196,14 @@ export default {
     itemColor(item) {
       return item.cancelled ? "green-text" : "";
     },
+    gotoDate(date) {
+      this.$router.push({
+            name: "chronos.listSubstitutionsForDate",
+            params: {
+              date: date
+            },
+      });
+    },
   },
 };
 </script>