diff --git a/src/core/schedules/base.py b/src/core/schedules/base.py
index 7735ba89ee0c2d2bfccceb47de4f512bc436042f..36e763e69ccb537ba018e5f458b3860c2ad6281f 100644
--- a/src/core/schedules/base.py
+++ b/src/core/schedules/base.py
@@ -7,10 +7,10 @@ from django.utils import timezone
 from django.utils.module_loading import import_string
 
 
-def filter_additional_data(data: dict, computed_fields: dict | None = None) -> dict:
+def filter_additional_data(data: dict, computed_fields: dict | None = None, others=[]) -> dict:
     computed_fields = computed_fields or {}
     return {
-        k: v for k, v in data.items() if (v and k not in ['guid', 'room', 'start', 'date', 'duration', 'title', 'abstract', 'description', 'language'])
+        k: v for k, v in data.items() if (v and k not in ['guid', 'room', 'start', 'date', 'duration', 'title', 'abstract', 'description', 'language', *others])
     } | computed_fields
 
 
diff --git a/src/core/schedules/schedulejson.py b/src/core/schedules/schedulejson.py
index 32a603c5d234601037fd0a900b9bec47b1e08e6d..a4ecf60205e6dc9266a3580e1aaa4f5d1d0afa2b 100644
--- a/src/core/schedules/schedulejson.py
+++ b/src/core/schedules/schedulejson.py
@@ -22,6 +22,7 @@ class ScheduleJSONSupport(BaseScheduleSupport):
         'kind':     ('string', 'assembly', False, 'kind of events, either `assembly` or `official` or `sos` or `lightning`'),
         'headers':  ('dict',   {},         False, 'HTTP headers to send with the request e.g. Authorization'),
         'auth':     ('string', None,       False, 'HTTP Authentification header e.g. `Token 123456`'),
+        'legacy_id': ('string', None,      False, 'Use `drop` to regenerate legacy ids from the event guid, to avoid collisions with other sources'),
         'legacy_id_offset': ('int', None,  False, 'Offset to add to the legacy integer `id` to avoid collisions with other sources'),
     }
     # fmt: on
@@ -57,6 +58,10 @@ class ScheduleJSONSupport(BaseScheduleSupport):
 
         kind = self.conf_value('kind')
 
+        other_fields_to_drop = []
+        if self.conf_value('legacy_id') == 'drop':
+            other_fields_to_drop.append('id')
+
         def ensure_full_url(uri):
             if not uri:
                 return None
@@ -85,7 +90,7 @@ class ScheduleJSONSupport(BaseScheduleSupport):
                     'kind': kind,
                     'speakers': e.get('persons', []),
                     'banner_image_url': ensure_full_url(e.get('logo')),
-                    'additional_data': filter_additional_data(e, self.computed_data(e)),
+                    'additional_data': filter_additional_data(e, self.computed_data(e), other_fields_to_drop),
                 }
                 for e in schedule.events()
             },