diff --git a/aleksis/apps/chronos/managers.py b/aleksis/apps/chronos/managers.py
index b61587a8867745914f158c3d419e7c48c148d908..3d8f8e0ac263587b789d845ca3403510c30467d9 100644
--- a/aleksis/apps/chronos/managers.py
+++ b/aleksis/apps/chronos/managers.py
@@ -876,6 +876,15 @@ class LessonEventQuerySet(PolymorphicQuerySet):
         )
         return self.filter(Q(teachers=teacher) | Q(pk__in=amended)).distinct()
 
+    def for_participant(self, person: Union[int, Person]) -> "LessonEventQuerySet":
+        """Get all lesson events the person participates in (including amends)."""
+        amended = self.filter(
+            Q(amended_by__isnull=False) | Q(groups__members=person)
+        ).values_list("amended_by__pk", flat=True)
+        return self.filter(
+            Q(groups__members=person) | Q(pk__in=amended)
+        ).distinct()
+
     def for_group(self, group: Union[int, Group]) -> "LessonEventQuerySet":
         """Get all lesson events for a certain group (including amends/as parent group)."""
         amended = self.filter(