diff --git a/aleksis/apps/chronos/managers.py b/aleksis/apps/chronos/managers.py
index 3fc2ce6dada6aa7a19e182ed46f3b331e33d2f8f..75e0e560e796468fe25199b6754d7e82252289fc 100644
--- a/aleksis/apps/chronos/managers.py
+++ b/aleksis/apps/chronos/managers.py
@@ -5,7 +5,7 @@ from django.db.models import Q
 
 from aleksis.apps.cursus.models import Course
 from aleksis.core.managers import (
-    RecurrencePolymorphicQuerySet,
+    CalendarEventQuerySet,
 )
 from aleksis.core.models import Group, Person, Room
 
@@ -24,7 +24,7 @@ class TimetableType(Enum):
         return cls.__members__.get(s.upper())
 
 
-class LessonEventQuerySet(RecurrencePolymorphicQuerySet):
+class LessonEventQuerySet(CalendarEventQuerySet):
     """Queryset with special query methods for lesson events."""
 
     @staticmethod
diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index e3536c222a20ba888b4f190e5419e9e0d9c0a466..c0545a6f3ee0240e8bac52eeb1fb53cbbad11f41 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -27,7 +27,7 @@ from aleksis.apps.cursus import models as cursus_models
 from aleksis.apps.cursus.models import Course
 from aleksis.apps.resint.models import LiveDocument
 from aleksis.core.managers import (
-    RecurrencePolymorphicManager,
+    CalendarEventManager,
 )
 from aleksis.core.mixins import (
     GlobalPermissionModel,
@@ -169,7 +169,7 @@ class LessonEvent(CalendarEvent):
     name = "lesson"
     verbose_name = _("Lessons")
 
-    objects = RecurrencePolymorphicManager.from_queryset(LessonEventQuerySet)()
+    objects = CalendarEventManager.from_queryset(LessonEventQuerySet)()
 
     title = models.CharField(verbose_name=_("Name"), max_length=255, blank=True)
 
@@ -518,10 +518,18 @@ class LessonEvent(CalendarEvent):
         if prefetch_absences:
             prefetch_fields.append("teachers__kolego_absences")
 
+        if "start_qs" in kwargs:
+            start_qs = kwargs.pop("start_qs")
+        else:
+            start_qs = cls.objects.not_instance_of(SupervisionEvent)
+
+        if "additional_filter" in kwargs:
+            q = q & kwargs.pop("additional_filter")
+
         objs = super().get_objects(
             request,
             params,
-            start_qs=cls.objects.not_instance_of(SupervisionEvent),
+            start_qs=start_qs,
             additional_filter=q,
             select_related=["subject", "course"],
             prefetch_related=prefetch_fields,
@@ -759,7 +767,7 @@ class SupervisionEvent(LessonEvent):
     name = "supervision"
     verbose_name = _("Supervisions")
 
-    objects = RecurrencePolymorphicManager.from_queryset(SupervisionEventQuerySet)()
+    objects = CalendarEventManager.from_queryset(SupervisionEventQuerySet)()
 
     @classmethod
     def value_title(cls, reference_object: LessonEvent, request: HttpRequest | None = None) -> str: