diff --git a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/MiniTimeTable.vue b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/MiniTimeTable.vue
index 51b51da1fcb83f23464b432f1861af61b709030d..a097e292ca8b6172903a26400862833068980a71 100644
--- a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/MiniTimeTable.vue
+++ b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/MiniTimeTable.vue
@@ -2,12 +2,13 @@
 import { defineComponent } from "vue";
 import { slots } from "../../breaks_and_slots/slot.graphql";
 import LessonCard from "../LessonCard.vue";
+import MessageBox from "aleksis.core/components/generic/MessageBox.vue";
 
 export default defineComponent({
   name: "MiniTimeTable",
-  components: { LessonCard },
+  components: { LessonCard, MessageBox },
   props: {
-    validityRange: {
+    timeGrid: {
       type: Object,
       required: true,
     },
@@ -24,12 +25,12 @@ export default defineComponent({
       variables() {
         return {
           filters: JSON.stringify({
-            validity_range: this.validityRange.id,
+            time_grid: this.timeGrid.id,
           }),
         };
       },
       skip() {
-        return this.validityRange === null;
+        return this.timeGrid === null;
       },
       update: (data) => data.items,
       result({ data: { items } }) {
@@ -79,6 +80,8 @@ export default defineComponent({
 
 <template>
   <div class="timetable">
+    <!-- Empty div to fill top-left corner -->
+    <div></div>
     <v-card
       v-for="period in periods"
       :style="{
@@ -102,6 +105,13 @@ export default defineComponent({
       :style="styleForLesson(lesson)"
       :key="lesson.id"
     />
+
+    <message-box type="info" v-if="!lessons || lessons.length === 0">
+      {{ $t("lesrooster.timetable_management.no_lessons") }}
+    </message-box>
+    <message-box type="warning" v-if="!slots || slots.length === 0">
+      {{ $t("lesrooster.timetable_management.no_slots") }}
+    </message-box>
   </div>
 </template>
 
diff --git a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/RoomTimeTable.vue b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/RoomTimeTable.vue
index 373097601ca7906a2530f0783f86c85f79a922b7..a50154bbbf49f681223283176652128fa08f4c8e 100644
--- a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/RoomTimeTable.vue
+++ b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/RoomTimeTable.vue
@@ -22,12 +22,12 @@ export default defineComponent({
       query: lessonsRoom,
       variables() {
         return {
-          validityRange: this.validityRange.id,
+          timeGrid: this.timeGrid.id,
           room: this.roomId,
         };
       },
       skip() {
-        return this.validityRange === null;
+        return this.timeGrid === null;
       },
     },
   },
diff --git a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/TeacherTimeTable.vue b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/TeacherTimeTable.vue
index 6811c383f9fee2a09ea43d5d5e2760ddb3e8eaec..5ed3211176f9bb0ad66c654a5fe1c36747ff13b0 100644
--- a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/TeacherTimeTable.vue
+++ b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/TeacherTimeTable.vue
@@ -22,12 +22,12 @@ export default defineComponent({
       query: lessonsTeacher,
       variables() {
         return {
-          validityRange: this.validityRange.id,
+          timeGrid: this.timeGrid.id,
           teacher: this.teacherId,
         };
       },
       skip() {
-        return this.validityRange === null;
+        return this.timeGrid === null;
       },
     },
   },
diff --git a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/timetables.graphql b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/timetables.graphql
index 36648d1abd61a91d5901754f6760de55ed11b2d9..9011b59ab64434afb1ef5638e0d4ed2cb4e676cc 100644
--- a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/timetables.graphql
+++ b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/timetables.graphql
@@ -1,7 +1,7 @@
-query lessonsTeacher($teacher: ID!, $validityRange: ID!) {
+query lessonsTeacher($teacher: ID!, $timeGrid: ID!) {
   lessonsTeacher: lessonObjectsForTeacher(
     teacher: $teacher
-    validityRange: $validityRange
+    timeGrid: $timeGrid
   ) {
     id
     slotStart {
@@ -56,10 +56,10 @@ query lessonsTeacher($teacher: ID!, $validityRange: ID!) {
   }
 }
 
-query lessonsRoom($room: ID!, $validityRange: ID!) {
+query lessonsRoom($room: ID!, $timeGrid: ID!) {
   lessonsRoom: lessonObjectsForRoom(
     room: $room
-    validityRange: $validityRange
+    timeGrid: $timeGrid
   ) {
     id
     slotStart {