diff --git a/aleksis/apps/alsijil/actions.py b/aleksis/apps/alsijil/actions.py
index 04681948e8f5e9d0e607fc7edf77b4520c91d003..698c61670422eccb73bc3da4ea3a7426b27efc7b 100644
--- a/aleksis/apps/alsijil/actions.py
+++ b/aleksis/apps/alsijil/actions.py
@@ -19,6 +19,13 @@ def mark_as_excused(modeladmin, request, queryset):
 mark_as_excused.short_description = _("Mark as excused")
 
 
+def mark_as_unexcused(modeladmin, request, queryset):
+    queryset.update(excused=False, excuse_type=None)
+
+
+mark_as_unexcused.short_description = _("Mark as unexcused")
+
+
 def mark_as_excuse_type_generator(excuse_type) -> Callable:
     def mark_as_excuse_type(modeladmin, request, queryset):
         queryset.update(excused=True, excuse_type=excuse_type)
diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py
index 190a9a4442444f14ea752a28deaa382476f8693a..67e906e275adbf6ab2daf29341f52cecd3365359 100644
--- a/aleksis/apps/alsijil/forms.py
+++ b/aleksis/apps/alsijil/forms.py
@@ -20,7 +20,14 @@ from aleksis.apps.chronos.models import TimePeriod
 from aleksis.core.util.core_helpers import get_site_preferences
 from aleksis.core.util.predicates import check_global_permission
 
-from .actions import delete_personal_note, mark_as_excuse_type_generator, mark_as_excused, send_request_to_check_entry
+from .actions import (
+    delete_personal_note,
+    mark_as_excuse_type_generator,
+    mark_as_excused,
+    mark_as_unexcused,
+    send_request_to_check_entry,
+)
+
 from .models import (
     ExcuseType,
     ExtraMark,
@@ -178,7 +185,7 @@ class ExcuseTypeForm(forms.ModelForm):
 
 class PersonOverviewForm(ActionForm):
     def get_actions(self):
-        return [mark_as_excused, delete_personal_note] + [
+        return [mark_as_excused, mark_as_unexcused, delete_personal_note] + [
             mark_as_excuse_type_generator(excuse_type) for excuse_type in ExcuseType.objects.all()
         ]