diff --git a/aleksis/apps/alsijil/filters.py b/aleksis/apps/alsijil/filters.py
index c6bda959e7a07d8aff42d59fe5ea7663d4c12b4f..ca793aa5aa20a36bb913fffc8c6656bf3064b5e1 100644
--- a/aleksis/apps/alsijil/filters.py
+++ b/aleksis/apps/alsijil/filters.py
@@ -1,18 +1,25 @@
 from django.utils.translation import gettext as _
 
-from django_filters import FilterSet, CharFilter, ModelMultipleChoiceFilter
+from django_filters import FilterSet, CharFilter, ModelMultipleChoiceFilter, DateFilter
 from material import Layout, Row
 
 from .models import ExcuseType, PersonalNote
 
 
 class PersonalNoteFilter(FilterSet):
+    day_start = DateFilter(lookup_expr="gte", label=_("After"))
+    day_end = DateFilter(lookup_expr="lte", label=_("Before"))
+    subject = CharFilter(lookup_expr="icontains", label=_("Subject"))
+
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
+        self.form.fields["late__lt"].label = _("Tardiness is lower than")
+        self.form.fields["late__gt"].label = _("Tardiness is bigger than")
         self.form.layout = Layout(
-            # TODO: Row with day (lt and gt) and subject (char search),
+            Row("subject"),
+            Row("day_start", "day_end"),
             Row("absent", "excused", "excuse_type"),
-            Row("late__lt", "late__gt", "extra_marks")
+            Row("late__gt", "late__lt", "extra_marks")
         )
 
     class Meta:
@@ -23,6 +30,4 @@ class PersonalNoteFilter(FilterSet):
             "absent": ['exact'],
             "excuse_type": ["exact"],
             "extra_marks": ["exact"],
-            # TODO: "date??": ['lt', 'gt'],
-            # TODO: "subject??": "exact",
         }