diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 4fed9bc57cdf05f45aa7ba8faac411e9995fe4ff..c4910d94b5b1e282a9bb6b1ede5c930df33d3c6c 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -9,6 +9,11 @@ and this project adheres to `Semantic Versioning`_.
 Unreleased
 ----------
 
+Fixed
+~~~~~
+
+* Remove lessons replaced by events from "My timetable"
+
 `3.0.1`_ - 2023-07-20
 ---------------------
 
diff --git a/aleksis/apps/chronos/util/build.py b/aleksis/apps/chronos/util/build.py
index a6c89a347ffdf2cc10e01b705fcad746eb7535e2..f79ecf6484dbaa18f22447ad9a0a0c57160add96 100644
--- a/aleksis/apps/chronos/util/build.py
+++ b/aleksis/apps/chronos/util/build.py
@@ -34,7 +34,7 @@ def build_timetable(
         type_ = obj.timetable_type
 
     is_week = False
-    if type(date_ref) == CalendarWeek:
+    if isinstance(date_ref, CalendarWeek):
         is_week = True
 
     if type_ is None:
@@ -361,17 +361,22 @@ def build_timetable(
                     continue
 
                 events_for_this_period = events_per_period.get(period, [])
+                events_for_replacement_for_this_period = events_for_replacement_per_period.get(
+                    period, []
+                )
                 lesson_periods_for_this_period = lesson_periods_per_period.get(period, [])
 
                 # Add lesson periods
                 if lesson_periods_for_this_period:
-                    if events_for_this_period:
+                    if events_for_replacement_for_this_period:
                         # If there is a event in this period,
                         # we have to check whether the actual lesson is taking place.
 
                         lesson_periods_to_keep = []
                         for lesson_period in lesson_periods_for_this_period:
-                            if not lesson_period.is_replaced_by_event(events_for_this_period):
+                            if not lesson_period.is_replaced_by_event(
+                                events_for_replacement_for_this_period
+                            ):
                                 lesson_periods_to_keep.append(lesson_period)
                         col += lesson_periods_to_keep
                     else:
diff --git a/aleksis/apps/chronos/views.py b/aleksis/apps/chronos/views.py
index fdb6def85b24e1f166ff7ee1139e04b0e4bfe9a5..a7ae9b77b322c00f41860c39a3f6cc7ae6376687 100644
--- a/aleksis/apps/chronos/views.py
+++ b/aleksis/apps/chronos/views.py
@@ -139,7 +139,7 @@ def timetable(
 
     el = get_el_by_pk(request, type_, pk, prefetch=True)
 
-    if type(el) == HttpResponseNotFound:
+    if isinstance(el, HttpResponseNotFound):
         return HttpResponseNotFound()
 
     type_ = TimetableType.from_string(type_)