diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index 9ef26048bd62554cc67d05a16681e6997a758492..9533ce1b0c83519f4b6d3936235e660f0f706e07 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -1528,7 +1528,13 @@ class LessonEvent(CalendarEvent):
         cls, request: HttpRequest | None = None, params: dict[str, any] | None = None
     ) -> Iterable:
         """Return all objects that should be included in the calendar."""
-        objs = super().get_objects(request, params).not_instance_of(SupervisionEvent)
+        objs = (
+            super()
+            .get_objects(request, params)
+            .not_instance_of(SupervisionEvent)
+            .select_related("subject", "course")
+            .prefetch_related("groups", "teachers", "rooms")
+        )
 
         if request and not has_person(request.user):
             raise PermissionDenied()