diff --git a/src/core/models/events.py b/src/core/models/events.py
index d6682e365427580cf803a76da43a0d41c8b33472..9ec059f64ccf6590afd9112083308f7c17bb1e87 100644
--- a/src/core/models/events.py
+++ b/src/core/models/events.py
@@ -331,6 +331,9 @@ class EventParticipant(models.Model):
         help_text=_('EventParticipant__personal_comment__help'),
         verbose_name=_('EventParticipant__personal_comment'))
 
+    class Meta:
+        unique_together = ['participant', 'event', 'role']
+
     def clean(self, *args, **kwargs):
         # verify that the participant is a member of the event's conference
         try: