diff --git a/aleksis/apps/chronos/rules.py b/aleksis/apps/chronos/rules.py
index aec25bf3b7e773871d4e9428c7c5c8da46e551ba..6be07872b6bb0689f90d9169aa83f3cc7016ca4f 100644
--- a/aleksis/apps/chronos/rules.py
+++ b/aleksis/apps/chronos/rules.py
@@ -8,7 +8,7 @@ from aleksis.core.util.predicates import (
 )
 
 from .models import LessonSubstitution
-from .util.predicates import has_any_timetable_object, has_timetable_perm
+from .util.predicates import has_any_timetable_object, has_room_timetable_perm, has_timetable_perm
 
 # View timetable overview
 view_timetable_overview_predicate = has_person & (
@@ -47,3 +47,7 @@ view_substitutions_predicate = has_person & (
     | has_any_object("chronos.view_lessonsubstitution", LessonSubstitution)
 )
 add_perm("chronos.view_substitutions", view_substitutions_predicate)
+
+# View room (timetable)
+view_room_predicate = has_person & has_room_timetable_perm
+add_perm("chronos.view_room_rule", view_room_predicate)
diff --git a/aleksis/apps/chronos/templates/search/indexes/chronos/room_text.txt b/aleksis/apps/chronos/templates/search/indexes/chronos/room_text.txt
new file mode 100644
index 0000000000000000000000000000000000000000..165c30e8c240ddecc872520626cccb598a6ad7a0
--- /dev/null
+++ b/aleksis/apps/chronos/templates/search/indexes/chronos/room_text.txt
@@ -0,0 +1,2 @@
+{{ object.name }}
+{{ object.short_name }}