diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py
index 88127e98c45d71fbe22ec9572fc04d89891489a7..50d8c25793ae916c8453594b61c2119619a648ab 100644
--- a/aleksis/apps/alsijil/forms.py
+++ b/aleksis/apps/alsijil/forms.py
@@ -8,6 +8,7 @@ from django.utils.translation import gettext_lazy as _
 from django_select2.forms import Select2Widget
 from material import Layout, Row
 
+from aleksis.core.util.core_helpers import queryset_rules_filter
 from aleksis.apps.chronos.managers import TimetableType
 from aleksis.core.models import Group, Person
 
@@ -108,6 +109,12 @@ class RegisterAbsenceForm(forms.Form):
     excused = forms.BooleanField(label=_("Excused"), initial=True, required=False)
     remarks = forms.CharField(label=_("Remarks"), max_length=30, required=False)
 
+    def __init__(self, *args, **kwargs):
+        self.request = kwargs.pop("request")
+        super().__init__(*args, **kwargs)
+        self.fields["person"].queryset = queryset_rules_filter(self.request, Person.objects.all(),
+                                                               "core.register_absence")
+
 
 class PersonalNoteFilterForm(forms.ModelForm):
     layout = Layout(Row("identifier", "description"), Row("regex"))
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index efad0b58c07a8c87cd258e14f728f71c9340786a..f8fb823a3c407f4209d0de506ebf6ab737c1b01c 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -396,7 +396,7 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
 def register_absence(request: HttpRequest) -> HttpResponse:
     context = {}
 
-    register_absence_form = RegisterAbsenceForm(request.POST or None)
+    register_absence_form = RegisterAbsenceForm(request.POST or None, request=request)
 
     if request.method == "POST":
         if register_absence_form.is_valid():