diff --git a/aleksis/apps/untis/util/mysql/importers/common_data.py b/aleksis/apps/untis/util/mysql/importers/common_data.py
index 1e0446562ffc0731649b4c2416594f0445ba8b08..135714eb9238a241b13160068ae56db879342e3c 100644
--- a/aleksis/apps/untis/util/mysql/importers/common_data.py
+++ b/aleksis/apps/untis/util/mysql/importers/common_data.py
@@ -453,6 +453,8 @@ def import_supervision_areas(
             if delete:
                 with create_revision():
                     set_comment(_("Deleted by Untis import"))
+                    if supervision.supervision_event:
+                        supervision.supervision_event.delete()
                     supervision.delete()
                 logger.info(f"    Supervision {supervision.id} deleted")
 
diff --git a/aleksis/apps/untis/util/mysql/importers/lessons.py b/aleksis/apps/untis/util/mysql/importers/lessons.py
index ada52804ee168842d1e1de7f31b386b95984e25c..4fc8eaeddc20ef832d060777547c59877907ff82 100644
--- a/aleksis/apps/untis/util/mysql/importers/lessons.py
+++ b/aleksis/apps/untis/util/mysql/importers/lessons.py
@@ -8,6 +8,7 @@ import reversion
 from reversion import set_comment
 from tqdm import tqdm
 
+from aleksis.apps.chronos.models import LessonEvent
 from aleksis.apps.cursus import models as cursus_models
 from aleksis.apps.lesrooster import models as lesrooster_models
 from aleksis.core import models as core_models
@@ -371,8 +372,11 @@ def import_lessons(
                 existing_lesson_pks.append(lesson.pk)
 
             # delete all no-longer existing lesson periods
-            old_lessons_qs.exclude(pk__in=existing_lesson_pks).delete()
-            logger.info("    Old lessons deleted")
+            for old_lesson in old_lessons_qs.exclude(pk__in=existing_lesson_pks):
+                logger.info(f"    Old lesson {old_lesson.id} deleted")
+                if old_lesson.lesson_event:
+                    old_lesson.lesson_event.delete()
+                old_lesson.delete()
             current_teacher_id = teacher_id
 
     for lesson in lesrooster_models.Lesson.objects.filter(
@@ -383,4 +387,17 @@ def import_lessons(
             logger.info(f"Lesson {lesson.id} deleted")
             with reversion.create_revision():
                 set_comment(_("Deleted by Untis import"))
+                if lesson.lesson_event:
+                    lesson.lesson_event.delete()
                 lesson.delete()
+
+    lesson_event_pks = lesrooster_models.Lesson.objects.filter(
+        extended_data__lesson_id_untis__in=existing_lessons, lesson_event__isnull=False
+    ).values_list("lesson_event_id", flat=True)
+    for lesson_event in LessonEvent.objects.filter(
+        rrule_until__date__gte=validity_range.date_start,
+        datetime_start__date__lt=validity_range.start,
+    ).exclude(pk__in=lesson_event_pks):
+        logger.warning(f"Tag lesson event {lesson_event.id} for deletion")
+        lesson_event.extended_data["delete_by_untis"] = True
+        lesson_event.save()