diff --git a/aleksis/apps/chronos/frontend/index.js b/aleksis/apps/chronos/frontend/index.js
index 4749ac593afcd244d9d4f06b992ef6dea99c0225..4774ee25b3433979fbccc09143c19dec6d713301 100644
--- a/aleksis/apps/chronos/frontend/index.js
+++ b/aleksis/apps/chronos/frontend/index.js
@@ -7,7 +7,7 @@ export default {
     titleKey: "chronos.menu_title",
     icon: "mdi-school-outline",
     iconActive: "mdi-school",
-    validators: [hasPersonValidator],
+    permission: "chronos.view_menu_rule",
   },
   children: [
     {
diff --git a/aleksis/apps/chronos/rules.py b/aleksis/apps/chronos/rules.py
index 34d58360ce18353231f56acccf1a00818f479fbb..18b7ac4ba8da17bac80a0b52b85b26e832f60533 100644
--- a/aleksis/apps/chronos/rules.py
+++ b/aleksis/apps/chronos/rules.py
@@ -62,3 +62,7 @@ add_perm("chronos.delete_supervision_substitution_rule", delete_supervision_subs
 # View room (timetable)
 view_room_predicate = has_person & has_room_timetable_perm
 add_perm("chronos.view_room_rule", view_room_predicate)
+
+# View parent menu entry
+view_menu_predicate = has_person & (view_timetable_overview_predicate)
+add_perm("chronos.view_menu_rule", view_menu_predicate)