diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 0f44426d1e4cd575455959a5e4f2688a83f2e7ec..589c6bb5984d717b1c34d2e20dd9ec1bf728b14b 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -37,7 +37,7 @@ from aleksis.apps.chronos.models import (
     TimePeriod,
 )
 from aleksis.apps.chronos.util.build import build_weekdays
-from aleksis.apps.chronos.util.date import get_weeks_for_year, week_weekday_to_date
+from aleksis.apps.chronos.util.date import get_current_year, get_weeks_for_year, week_weekday_to_date
 from aleksis.core.mixins import (
     AdvancedCreateView,
     AdvancedDeleteView,
@@ -1374,5 +1374,36 @@ class SelectCoursebookView(TemplateView):
 
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
-        context["lessons"] = self.request.user.person.lessons_as_teacher.all()
+        person = self.request.user.person
+
+        current_week = CalendarWeek.current_week()
+        current_year = get_current_year()
+        # Show all future and the ones of last week
+
+        last_week, last_week_year = (
+            current_week - 1,
+            current_year
+        ) if current_week >= 2 else (
+            CalendarWeek.get_last_week_of_year(current_year - 1),
+            current_year - 1
+        )
+
+        last_week_query = Q(
+            lesson_periods__substitutions__week=last_week,
+            lesson_periods__substitutions__year=last_week_year
+        )
+        this_week_query = Q(
+            lesson_periods__substitutions__week__gte=current_week,
+            lesson_periods__substitutions__year=current_year
+        )
+        next_year_query = Q(
+            lesson_periods__substitutions__year__gt=current_year
+        )
+        context["lessons"] = Lesson.objects.filter(
+            Q(teachers=person) | (
+                Q(lesson_periods__substitutions__teachers=person) & (
+                    last_week_query | this_week_query | next_year_query
+                )
+            )
+        ).for_current_or_all()
         return context