diff --git a/aleksis/apps/paweljong/data_checks.py b/aleksis/apps/paweljong/data_checks.py
new file mode 100644
index 0000000000000000000000000000000000000000..09b3ed25a5d6a04aee4e2586b8652bc90b8745f1
--- /dev/null
+++ b/aleksis/apps/paweljong/data_checks.py
@@ -0,0 +1,37 @@
+from django.utils.translation import ugettext_lazy as _
+
+from aleksis.core.data_checks import DataCheck, IgnoreSolveOption, SolveOption
+
+class SyncEventMembers(SolveOption):
+    name = "sync_event_members"
+    verbose_name = _("Sync members")
+
+    @classmethod
+    def solve(cls, check_result: "DataCheckResult"):
+        event = check_result.related_object
+        event.sync_group_members()
+        check_result.delete()
+
+
+class EventMembersSyncDataCheck(DataCheck):
+    name = "event_members_sync"
+    verbose_name = _("Ensure that all registered persons are member of the linked group")
+    problem_name = _("Event members are out of sync with registrations!")
+    solve_options = {
+        IgnoreSolveOption.name: IgnoreSolveOption,
+        SyncEventMembers.name: SyncEventMembers,
+    }
+
+    @classmethod
+    def check_data(cls):
+        from .models import Event
+
+        async_events = []
+        for event in Event.objects.all():
+            if not set(event.linked_group.members.values_list("id", flat=True)) == set(event.registrations.values_list(
+                "person", flat=True
+            )):
+                async_events.append(event)
+
+        for event in async_events:
+            cls.register_result(event)
diff --git a/aleksis/apps/paweljong/models.py b/aleksis/apps/paweljong/models.py
index 5d12ea6188d749e89fa847633268c28e41bbdd52..b80441699c88bda607547de732318a959fbc37ca 100644
--- a/aleksis/apps/paweljong/models.py
+++ b/aleksis/apps/paweljong/models.py
@@ -1,8 +1,10 @@
 from datetime import datetime
 from decimal import Decimal
+from typing import Optional
 
 from django.contrib.contenttypes.models import ContentType
 from django.db import models
+from django.dispatch import receiver
 from django.urls import reverse
 from django.utils.text import slugify
 from django.utils.timezone import now
@@ -19,6 +21,7 @@ from aleksis.core.models import Group, Person
 from aleksis.core.util.core_helpers import generate_random_code, get_site_preferences
 from aleksis.core.util.email import send_email
 
+from .data_checks import EventMembersSyncDataCheck
 
 class RegistrationState(ExtensibleModel):
 
@@ -101,6 +104,9 @@ class InfoMailing(ExtensibleModel):
 
 
 class Event(ExtensibleModel):
+
+    data_checks = [EventMembersSyncDataCheck]
+
     # Event details
     display_name = models.CharField(verbose_name=_("Display name"), max_length=255)
     linked_group = models.OneToOneField(
@@ -136,11 +142,17 @@ class Event(ExtensibleModel):
             else:
                 self.slug = slugify(self.display_name)
 
-        return super().save(*args, **kwargs)
+        super().save(*args, **kwargs)
+        self.sync_group_members()
 
     def __str__(self) -> str:
         return self.display_name
 
+    def sync_group_members(self):
+        self.linked_group.members.set(
+            self.registrations.values_list("person", flat=True)
+        )
+
     def can_register(self, request=None):
         now = datetime.today().date()
 
@@ -355,6 +367,14 @@ class EventRegistration(ExtensibleModel):
     def __str__(self) -> str:
         return f"{self.event}, {self.person.first_name} {self.person.last_name}"
 
+    def save(self, *args, **kwargs):
+        self.event.sync_group_members()
+        super().save(*args, **kwargs)
+
+    def delete(self, *args, **kwargs):
+        self.event.sync_group_members()
+        super().delete(*args, **kwargs)
+
     class Meta:
         verbose_name = _("Event registration")
         verbose_name_plural = _("Event registrations")
diff --git a/aleksis/apps/paweljong/views.py b/aleksis/apps/paweljong/views.py
index daa4a7c6b127b80880ecb028f8071a007ee39904..a16c8f8f8ab446cadd4d5e4d3172900ac0a0a86f 100644
--- a/aleksis/apps/paweljong/views.py
+++ b/aleksis/apps/paweljong/views.py
@@ -609,9 +609,6 @@ class RegisterEventWizardView(SessionWizardView):
             _email.person = person
             _email.save()
 
-        # Add the current person to the event
-        event.linked_group.members.add(person)
-
         registration = EventRegistration.objects.create(
             event=event,
             person=person,