diff --git a/aleksis/apps/chronos/frontend/components/Substitutions.vue b/aleksis/apps/chronos/frontend/components/Substitutions.vue
index 550f3876262471e3ccb23933f662259e8b64f925..8f1ab593d97907f185d76b97ae52ebc226dab14d 100644
--- a/aleksis/apps/chronos/frontend/components/Substitutions.vue
+++ b/aleksis/apps/chronos/frontend/components/Substitutions.vue
@@ -30,7 +30,7 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v
         }"
         />
       </v-row>
-      <v-card-text>
+      <v-card-text v-if="affectedTeachers.length>0">
         <span> {{ $t("chronos.substitutions.affected_teachers") }} </span>
         <v-chip
           v-for="(teacher, i) in affectedTeachers"
@@ -46,7 +46,7 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v
           {{ teacher.shortName || teacher.fullName }}
         </v-chip>
       </v-card-text>
-      <v-card-text>
+      <v-card-text v-if="affectedGroups.length>0">
         <span> {{ $t("chronos.substitutions.affected_groups") }} </span>
         <!-- TODO: Link to group-timetable as well -->
         <!-- as soon as it becomes possible to resolve a -->
@@ -130,6 +130,9 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v
       </v-chip>
       {{ notes }}
     </template>
+    <template #no-data>
+      {{ $t("chronos.substitutions.no_substitutions") }}
+    </template>
     <template #footer>
       <!-- TODO: Skip over unneeded days; eg. weekends. -->
       <date-select-footer
diff --git a/aleksis/apps/chronos/frontend/messages/de.json b/aleksis/apps/chronos/frontend/messages/de.json
index 7727f35d18f979fb931c95b62a0503c6079ab683..a7c50a848e25f14b0cc24a36f0cf80df2e0efd94 100644
--- a/aleksis/apps/chronos/frontend/messages/de.json
+++ b/aleksis/apps/chronos/frontend/messages/de.json
@@ -34,7 +34,8 @@
       "cancelled": "Entfällt",
       "affected_teachers": "Betroffene Lehrer",
       "affected_groups": "Betroffene Gruppen",
-      "all_day": "Ganztägig"
+      "all_day": "Ganztägig",
+      "no_substitutions": "Keine Vertretungen"
     },
     "supervisions": {
       "menu_title_daily": "Aufsichten",
diff --git a/aleksis/apps/chronos/frontend/messages/en.json b/aleksis/apps/chronos/frontend/messages/en.json
index 5e59a4e36d9397676325a6d97b4c4416ffb49885..7ca0d3ee9fcc7774032eb2c2fa13950c361d898f 100644
--- a/aleksis/apps/chronos/frontend/messages/en.json
+++ b/aleksis/apps/chronos/frontend/messages/en.json
@@ -35,7 +35,8 @@
       "cancelled": "Cancelled",
       "affected_teachers": "Affected teachers",
       "affected_groups": "Affected groups",
-      "all_day": "All day"
+      "all_day": "All day",
+      "no_substitutions": "No substitutions"
     },
     "supervisions": {
       "title": "Supervision",