diff --git a/src/core/models/events.py b/src/core/models/events.py
index c05859c5818348c64210734f4037a2a62c5651b5..fd156b7cb17072cbc80baa4d32642dd186c8c9dd 100644
--- a/src/core/models/events.py
+++ b/src/core/models/events.py
@@ -195,7 +195,7 @@ class Event(TaggedItemMixin, BackendMixin, ActivityLogMixin, models.Model):
 
         return hub_absolute('plainui:event', event_slug=self.slug, i18n=settings.ARCHIVE_MODE)
 
-    @property
+    @cached_property
     def public_speakers(self) -> list:
         """Returns a list of all public speakers of this event."""
         persons = [participant.participant for participant in self.participants.filter(is_public=True, role=EventParticipant.Role.SPEAKER)]