diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index 1c309a53f1f88c4c258a6be562afe64cae18a7c9..880b92fcf361c9d690130202747101ad062debdb 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -1596,12 +1596,31 @@ class LessonEvent(CalendarEvent):
 
             if type_ and obj_id:
                 if request and not (
-                    check_global_permission(request.user, "chronos.view_all_group_timetables")
-                    or check_global_permission(request.user, "chronos.view_all_person_timetables")
-                    or check_global_permission(
-                        request.user, "chronos.chronos.view_all_room_timetables"
+                    (
+                        type_ == "GROUP"
+                        and check_global_permission(
+                            request.user, "chronos.view_all_group_timetables"
+                        )
+                    )
+                    or (
+                        type_ == "TEACHER"
+                        or type_ == "PARTICIPANT"
+                        and check_global_permission(
+                            request.user, "chronos.view_all_person_timetables"
+                        )
+                    )
+                    or (
+                        type_ == "ROOM"
+                        and check_global_permission(
+                            request.user, "chronos.chronos.view_all_room_timetables"
+                        )
+                    )
+                    or (
+                        type_ == "COURSE"
+                        and check_global_permission(
+                            request.user, "chronos.view_all_course_timetables"
+                        )
                     )
-                    or check_global_permission(request.user, "chronos.view_all_course_timetables")
                 ):
                     # inline import needed to avoid circular import
                     from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk