diff --git a/aleksis/apps/chronos/util/chronos_helpers.py b/aleksis/apps/chronos/util/chronos_helpers.py
index 045c132afae52e0301f4e7eb3903f08d9757cbc4..961fb01460f8c4fa65504d8726d653d223eeef3b 100644
--- a/aleksis/apps/chronos/util/chronos_helpers.py
+++ b/aleksis/apps/chronos/util/chronos_helpers.py
@@ -1,7 +1,7 @@
 from datetime import date, datetime, timedelta
 from typing import TYPE_CHECKING, Optional
 
-from django.db.models import Q
+from django.db.models import Count, Q
 
 from guardian.shortcuts import get_objects_for_user
 
@@ -19,7 +19,11 @@ if TYPE_CHECKING:
 def get_teachers(user: "User"):
     """Get the teachers whose timetables are allowed to be seen by current user."""
 
-    teachers = Person.objects.all().order_by("short_name", "last_name")
+    teachers = (
+        Person.objects.annotate(course_count=Count("courses_as_teacher"))
+        .filter(course_count__gt=0)
+        .order_by("short_name", "last_name")
+    )
 
     if not user.has_perm("chronos.view_all_person_timetables"):
         teachers.filter(