diff --git a/aleksis/apps/alsijil/schema/documentation.py b/aleksis/apps/alsijil/schema/documentation.py
index 3225db34e7c146c4eadcf34efcc11936f5df7311..c28fd2003719bd2895d8343d570b2b38da59d6e4 100644
--- a/aleksis/apps/alsijil/schema/documentation.py
+++ b/aleksis/apps/alsijil/schema/documentation.py
@@ -19,6 +19,7 @@ from aleksis.core.schema.base import (
     PermissionsTypeMixin,
 )
 from aleksis.core.util.core_helpers import get_site_preferences
+from .participation_status import ParticipationStatusType
 
 from ..models import Documentation
 
@@ -39,6 +40,7 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
             "date_start",
             "date_end",
             "teachers",
+            "participations",
         )
         filter_fields = {
             "id": ["exact", "lte", "gte"],
@@ -48,6 +50,7 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
     course = graphene.Field(CourseType, required=False)
     amends = graphene.Field(lambda: LessonEventType, required=False)
     subject = graphene.Field(SubjectType, required=False)
+    participations = graphene.List(ParticipationStatusType, required=False)
 
     future_notice = graphene.Boolean(required=False)
 
@@ -71,6 +74,15 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
             info.context.user, root
         )
 
+    @staticmethod
+    def resolve_participations(root: Documentation, info, **kwargs):
+        # TODO: probably check for permission
+
+        # A dummy documentation will not have any participations
+        if str(root.pk).startswith("DUMMY") or not hasattr(root, "participations"):
+            return []
+        return root.participations.all()
+
     @classmethod
     def get_queryset(cls, queryset, info):
         return get_objects_for_user(info.context.user, "alsijil.view_documentation", queryset)
diff --git a/aleksis/apps/alsijil/schema/participation_status.py b/aleksis/apps/alsijil/schema/participation_status.py
new file mode 100644
index 0000000000000000000000000000000000000000..86254a86c7b5fc041ee64b40d25f92858bf58990
--- /dev/null
+++ b/aleksis/apps/alsijil/schema/participation_status.py
@@ -0,0 +1,16 @@
+from graphene_django import DjangoObjectType
+
+from aleksis.apps.alsijil.models import ParticipationStatus
+from aleksis.core.schema.base import PermissionsTypeMixin, DjangoFilterMixin
+
+
+class ParticipationStatusType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
+    class Meta:
+        model = ParticipationStatus
+        fields = (
+            "id",
+            "person",
+            "absence_reason",
+            "related_documentation",
+            "base_absence",
+        )