diff --git a/aleksis/apps/alsijil/schema/__init__.py b/aleksis/apps/alsijil/schema/__init__.py
index cb0c6b1d16c5dab002794872afd177fa9da1b281..8f6bc40c8c56af627941e64605c06df4414b2f49 100644
--- a/aleksis/apps/alsijil/schema/__init__.py
+++ b/aleksis/apps/alsijil/schema/__init__.py
@@ -13,7 +13,12 @@ from aleksis.core.models import Group, Person
 from aleksis.core.schema.base import FilterOrderList
 from aleksis.core.schema.group import GroupType
 from aleksis.core.schema.person import PersonType
-from aleksis.core.util.core_helpers import get_active_school_term, get_site_preferences, has_person
+from aleksis.core.util.core_helpers import (
+    filter_active_school_term,
+    get_active_school_term,
+    get_site_preferences,
+    has_person,
+)
 
 from ..model_extensions import annotate_person_statistics_for_school_term
 from ..models import Documentation, NewPersonalNote, ParticipationStatus
@@ -152,12 +157,24 @@ class Query(graphene.ObjectType):
                 }
             )
 
+        school_term = get_active_school_term(info.context)
+        q = Q(
+            pk__in=LessonEvent.objects.filter(groups__school_term=school_term)
+            .values_list("id", flat=True)
+            .union(
+                LessonEvent.objects.filter(course__groups__school_term=school_term).values_list(
+                    "id", flat=True
+                )
+            )
+        )
+        qs = LessonEvent.objects.filter(q)
         events = LessonEvent.get_single_events(
             datetime.combine(date_start, datetime.min.time()),
             datetime.combine(date_end, datetime.max.time()),
             info.context,
             event_params,
             with_reference_object=True,
+            queryset=qs,
         )
 
         # Lookup or create documentations and return them all.
@@ -182,8 +199,10 @@ class Query(graphene.ObjectType):
         else:
             return []
 
+        school_term = get_active_school_term(info.context)
+
         return (
-            Group.objects.for_current_school_term_or_all()
+            Group.objects.for_school_term(school_term)
             .filter(
                 pk__in=Group.objects.filter(members=person)
                 .values_list("id", flat=True)
@@ -211,6 +230,9 @@ class Query(graphene.ObjectType):
             person = info.context.user.person
         else:
             return []
+
+        school_term = get_active_school_term(info.context)
+
         return Course.objects.filter(
             pk__in=(
                 Course.objects.filter(teachers=person)
@@ -223,20 +245,22 @@ class Query(graphene.ObjectType):
                     )
                 )
             )
-        ).filter(groups__in=Group.objects.for_current_school_term_or_all())
+        ).filter(groups__in=Group.objects.for_school_term(school_term))
 
     @staticmethod
     def resolve_absence_creation_persons(root, info, **kwargs):
         if not info.context.user.has_perm("alsijil.register_absence"):
             group_types = get_site_preferences()["alsijil__group_types_register_absence"]
+            school_term = get_active_school_term(info.context)
             if group_types:
                 return Person.objects.filter(
-                    member_of__in=Group.objects.filter(
+                    member_of__in=Group.objects.for_school_term(school_term).filter(
                         owners=info.context.user.person, group_type__in=group_types
                     )
                 )
             else:
-                return Person.objects.filter(member_of__owners=info.context.user.person)
+                qs = Person.objects.filter(member_of__owners=info.context.user.person)
+                return filter_active_school_term(info.context, qs, "member_of__school_term")
         return Person.objects.all()
 
     @staticmethod
diff --git a/aleksis/apps/alsijil/schema/documentation.py b/aleksis/apps/alsijil/schema/documentation.py
index b833de336b2a2add64ac5f0e0cf6dd7fdd8ae0c5..159ca08f47d41e23e3b4edb1194eff1e41fba6bd 100644
--- a/aleksis/apps/alsijil/schema/documentation.py
+++ b/aleksis/apps/alsijil/schema/documentation.py
@@ -20,7 +20,7 @@ from aleksis.core.schema.base import (
     DjangoFilterMixin,
     PermissionsTypeMixin,
 )
-from aleksis.core.util.core_helpers import has_person
+from aleksis.core.util.core_helpers import filter_active_school_term, has_person
 
 from ..models import Documentation
 from .participation_status import ParticipationStatusType
@@ -114,6 +114,13 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
             return []
         return root.participations.all()
 
+    @classmethod
+    def get_queryset(cls, queryset, info):
+        qs = super().get_queryset(queryset, info)
+        return filter_active_school_term(
+            info.context, qs, school_term_field="course__groups__school_term"
+        )
+
 
 class DocumentationInputType(graphene.InputObjectType):
     id = graphene.ID(required=True)