diff --git a/aleksis/apps/alsijil/apps.py b/aleksis/apps/alsijil/apps.py
index ab0877f2f457658463c034e09139d8098df5b8d3..c52e13fde3532817e6b427355978080e3b856ea1 100644
--- a/aleksis/apps/alsijil/apps.py
+++ b/aleksis/apps/alsijil/apps.py
@@ -19,3 +19,16 @@ class AlsijilConfig(AppConfig):
         ([2021], "Lloyd Meins", "meinsll@katharineum.de"),
         ([2024], "Michael Bauer", "michael-bauer@posteo.de"),
     )
+
+    def post_migrate(
+        self,
+        app_config: AppConfig,
+        verbosity: int,
+        interactive: bool,
+        using: str,
+        **kwargs,
+    ) -> None:
+        super().post_migrate(app_config, verbosity, interactive, using, **kwargs)
+        from .util.alsijil_helpers import get_absence_reason_tag
+
+        get_absence_reason_tag()
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceReasons.graphql b/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceReasons.graphql
index 2a651a968265d18fa4f35a6550970d14de26885e..a86f608ec78d1bbc50bf558b5e0650cba5b5e8a7 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceReasons.graphql
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceReasons.graphql
@@ -1,5 +1,5 @@
 query absenceReasons($orderBy: [String], $filters: JSONString) {
-  items: absenceReasons(orderBy: $orderBy, filters: $filters) {
+  items: coursebookAbsenceReasons(orderBy: $orderBy, filters: $filters) {
     id
     shortName
     name
diff --git a/aleksis/apps/alsijil/schema/__init__.py b/aleksis/apps/alsijil/schema/__init__.py
index 49bfbe7abb2b04515c30ccd931c4d9d847578caf..c2ed8a2eef99acc833e5680d42fb658c553c352f 100644
--- a/aleksis/apps/alsijil/schema/__init__.py
+++ b/aleksis/apps/alsijil/schema/__init__.py
@@ -8,6 +8,8 @@ import graphene
 from aleksis.apps.chronos.models import LessonEvent
 from aleksis.apps.cursus.models import Course
 from aleksis.apps.cursus.schema import CourseType
+from aleksis.apps.kolego.models import AbsenceReason
+from aleksis.apps.kolego.schema.absence import AbsenceReasonType
 from aleksis.core.models import Group, Person
 from aleksis.core.schema.base import FilterOrderList
 from aleksis.core.schema.group import GroupType
@@ -67,6 +69,8 @@ class Query(graphene.ObjectType):
 
     extra_marks = FilterOrderList(ExtraMarkType)
 
+    coursebook_absence_reasons = FilterOrderList(AbsenceReasonType)
+
     def resolve_documentations_by_course_id(root, info, course_id, **kwargs):
         documentations = Documentation.objects.filter(
             Q(course__pk=course_id) | Q(amends__course__pk=course_id)
@@ -210,6 +214,12 @@ class Query(graphene.ObjectType):
 
         return lessons_for_person
 
+    @staticmethod
+    def resolve_coursebook_absence_reasons(root, info, **kwargs):
+        if not info.context.user.has_perm("kolego.fetch_absencereasons_rule"):
+            return []
+        return AbsenceReason.objects.filter(tags__short_name="class_register")
+
 
 class Mutation(graphene.ObjectType):
     create_or_update_documentations = DocumentationBatchCreateOrUpdateMutation.Field()
diff --git a/aleksis/apps/alsijil/util/alsijil_helpers.py b/aleksis/apps/alsijil/util/alsijil_helpers.py
index 8e203e8f61f023af2c812efe0f21cf9a34511c60..118b70af8e1a71f9d5e56a8d251c5a319cae0e02 100644
--- a/aleksis/apps/alsijil/util/alsijil_helpers.py
+++ b/aleksis/apps/alsijil/util/alsijil_helpers.py
@@ -15,6 +15,7 @@ from aleksis.apps.alsijil.forms import FilterRegisterObjectForm
 from aleksis.apps.alsijil.models import LessonDocumentation
 from aleksis.apps.chronos.models import Event, ExtraLesson, Holiday, LessonPeriod
 from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk
+from aleksis.apps.kolego.models import AbsenceReasonTag
 from aleksis.core.models import Group
 from aleksis.core.util.core_helpers import get_site_preferences
 
@@ -401,3 +402,11 @@ def generate_list_of_all_register_objects(filter_dict: Dict[str, Any]) -> List[D
         register_objects = sorted(register_objects, key=itemgetter("date_sort", "period_sort"))
         return register_objects
     return []
+
+
+def get_absence_reason_tag():
+    return AbsenceReasonTag.objects.managed_by_app("alsijil").get_or_create(
+        managed_by_app_label="alsijil",
+        short_name="class_register",
+        defaults={"name": "Class Register"},
+    )