diff --git a/AKModel/locale/de_DE/LC_MESSAGES/django.po b/AKModel/locale/de_DE/LC_MESSAGES/django.po
index 7b8d710abd0eadfd21b5d98876be2d5dd053db73..c44a1fab5c315f6ae5193186726c0b651c87d54b 100644
--- a/AKModel/locale/de_DE/LC_MESSAGES/django.po
+++ b/AKModel/locale/de_DE/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-26 16:35+0100\n"
+"POT-Creation-Date: 2025-03-03 20:47+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -33,7 +33,7 @@ msgstr "Plan veröffentlichen"
 msgid "Unpublish plan"
 msgstr "Plan verbergen"
 
-#: AKModel/admin.py:170 AKModel/models.py:381 AKModel/models.py:707
+#: AKModel/admin.py:170 AKModel/models.py:396 AKModel/models.py:736
 #: AKModel/templates/admin/AKModel/aks_by_user.html:12
 #: AKModel/templates/admin/AKModel/status/event_aks.html:10
 #: AKModel/views/manage.py:73 AKModel/views/status.py:102
@@ -84,19 +84,19 @@ msgstr "Constraintverletzungen auf Level \"Violation\" setzen"
 msgid "Set Constraint Violations to level \"warning\""
 msgstr "Constraintverletzungen auf Level \"Warning\" setzen"
 
-#: AKModel/admin.py:580
+#: AKModel/admin.py:585
 msgid "Activate selected users"
 msgstr "Ausgewählte Benutzer*innen aktivieren"
 
-#: AKModel/admin.py:583
+#: AKModel/admin.py:594
 msgid "The selected users have been activated."
 msgstr "Benutzer*innen aktiviert"
 
-#: AKModel/admin.py:585
+#: AKModel/admin.py:596
 msgid "Deactivate selected users"
 msgstr "Ausgewählte Benutzer*innen deaktivieren"
 
-#: AKModel/admin.py:588
+#: AKModel/admin.py:605
 msgid "The selected users have been deactivated."
 msgstr "Benutzer*innen deaktiviert"
 
@@ -125,19 +125,19 @@ msgstr "Die eingegebene Verfügbarkeit enthält ein ungültiges Datum."
 msgid "Please fill in your availabilities!"
 msgstr "Bitte Verfügbarkeiten eintragen!"
 
-#: AKModel/availability/models.py:43 AKModel/models.py:60 AKModel/models.py:174
-#: AKModel/models.py:251 AKModel/models.py:270 AKModel/models.py:296
-#: AKModel/models.py:315 AKModel/models.py:371 AKModel/models.py:517
-#: AKModel/models.py:556 AKModel/models.py:646 AKModel/models.py:703
-#: AKModel/models.py:894
+#: AKModel/availability/models.py:43 AKModel/models.py:71 AKModel/models.py:187
+#: AKModel/models.py:264 AKModel/models.py:283 AKModel/models.py:309
+#: AKModel/models.py:328 AKModel/models.py:386 AKModel/models.py:546
+#: AKModel/models.py:585 AKModel/models.py:675 AKModel/models.py:732
+#: AKModel/models.py:923
 msgid "Event"
 msgstr "Event"
 
-#: AKModel/availability/models.py:44 AKModel/models.py:175
-#: AKModel/models.py:252 AKModel/models.py:271 AKModel/models.py:297
-#: AKModel/models.py:316 AKModel/models.py:372 AKModel/models.py:518
-#: AKModel/models.py:557 AKModel/models.py:647 AKModel/models.py:704
-#: AKModel/models.py:895
+#: AKModel/availability/models.py:44 AKModel/models.py:188
+#: AKModel/models.py:265 AKModel/models.py:284 AKModel/models.py:310
+#: AKModel/models.py:329 AKModel/models.py:387 AKModel/models.py:547
+#: AKModel/models.py:586 AKModel/models.py:676 AKModel/models.py:733
+#: AKModel/models.py:924
 msgid "Associated event"
 msgstr "Zugehöriges Event"
 
@@ -149,8 +149,8 @@ msgstr "Person"
 msgid "Person whose availability this is"
 msgstr "Person deren Verfügbarkeit hier abgebildet wird"
 
-#: AKModel/availability/models.py:61 AKModel/models.py:521
-#: AKModel/models.py:546 AKModel/models.py:713
+#: AKModel/availability/models.py:61 AKModel/models.py:550
+#: AKModel/models.py:575 AKModel/models.py:742
 msgid "Room"
 msgstr "Raum"
 
@@ -158,8 +158,8 @@ msgstr "Raum"
 msgid "Room whose availability this is"
 msgstr "Raum dessen Verfügbarkeit hier abgebildet wird"
 
-#: AKModel/availability/models.py:70 AKModel/models.py:380
-#: AKModel/models.py:545 AKModel/models.py:641
+#: AKModel/availability/models.py:70 AKModel/models.py:395
+#: AKModel/models.py:574 AKModel/models.py:670
 msgid "AK"
 msgstr "AK"
 
@@ -167,8 +167,8 @@ msgstr "AK"
 msgid "AK whose availability this is"
 msgstr "Verfügbarkeiten"
 
-#: AKModel/availability/models.py:79 AKModel/models.py:255
-#: AKModel/models.py:719
+#: AKModel/availability/models.py:79 AKModel/models.py:268
+#: AKModel/models.py:748
 msgid "AK Category"
 msgstr "AK-Kategorie"
 
@@ -242,7 +242,7 @@ msgstr ""
 "fürWünsche markieren, z.B. um während der Präsentation auf einem Touchscreen "
 "ausgefüllt zu werden?"
 
-#: AKModel/forms.py:198 AKModel/models.py:888
+#: AKModel/forms.py:198 AKModel/models.py:917
 msgid "Default Slots"
 msgstr "Standardslots"
 
@@ -281,7 +281,7 @@ msgstr "Standardverfügbarkeiten für alle Räume anlegen?"
 msgid "CSV must contain a name column"
 msgstr "CSV muss eine name-Spalte enthalten"
 
-#: AKModel/metaviews/admin.py:156 AKModel/models.py:29
+#: AKModel/metaviews/admin.py:156 AKModel/models.py:40
 msgid "Start"
 msgstr "Start"
 
@@ -306,67 +306,75 @@ msgstr "Aktivieren?"
 msgid "Finish"
 msgstr "Abschluss"
 
-#: AKModel/models.py:20 AKModel/models.py:243 AKModel/models.py:267
-#: AKModel/models.py:294 AKModel/models.py:313 AKModel/models.py:331
-#: AKModel/models.py:507
+#: AKModel/models.py:21
+msgid "May not contain quotation marks"
+msgstr "Darf keine Anführungszeichen enthalten"
+
+#: AKModel/models.py:24
+msgid "Must contain at least one letter or digit"
+msgstr "Muss mindestens einen Buchstaben oder eine Ziffer enthalten"
+
+#: AKModel/models.py:31 AKModel/models.py:256 AKModel/models.py:280
+#: AKModel/models.py:307 AKModel/models.py:326 AKModel/models.py:344
+#: AKModel/models.py:536
 msgid "Name"
 msgstr "Name"
 
-#: AKModel/models.py:21
+#: AKModel/models.py:32
 msgid "Name or iteration of the event"
 msgstr "Name oder Iteration des Events"
 
-#: AKModel/models.py:22
+#: AKModel/models.py:33
 msgid "Short Form"
 msgstr "Kurzer Name"
 
-#: AKModel/models.py:23
+#: AKModel/models.py:34
 msgid "Short name of letters/numbers/dots/dashes/underscores used in URLs."
 msgstr ""
 "Kurzname bestehend aus Buchstaben, Nummern, Punkten und Unterstrichen zur "
 "Nutzung in URLs"
 
-#: AKModel/models.py:25
+#: AKModel/models.py:36
 msgid "Place"
 msgstr "Ort"
 
-#: AKModel/models.py:26
+#: AKModel/models.py:37
 msgid "City etc. the event takes place in"
 msgstr "Stadt o.ä. in der das Event stattfindet"
 
-#: AKModel/models.py:28
+#: AKModel/models.py:39
 msgid "Time Zone"
 msgstr "Zeitzone"
 
-#: AKModel/models.py:28
+#: AKModel/models.py:39
 msgid "Time Zone where this event takes place in"
 msgstr "Zeitzone in der das Event stattfindet"
 
-#: AKModel/models.py:29
+#: AKModel/models.py:40
 msgid "Time the event begins"
 msgstr "Zeit zu der das Event beginnt"
 
-#: AKModel/models.py:30
+#: AKModel/models.py:41
 msgid "End"
 msgstr "Ende"
 
-#: AKModel/models.py:30
+#: AKModel/models.py:41
 msgid "Time the event ends"
 msgstr "Zeit zu der das Event endet"
 
-#: AKModel/models.py:31
+#: AKModel/models.py:42
 msgid "Resolution Deadline"
 msgstr "Resolutionsdeadline"
 
-#: AKModel/models.py:32
+#: AKModel/models.py:43
 msgid "When should AKs with intention to submit a resolution be done?"
 msgstr "Wann sollen AKs mit Resolutionsabsicht stattgefunden haben?"
 
-#: AKModel/models.py:34
+#: AKModel/models.py:45
 msgid "Interest Window Start"
 msgstr "Beginn Interessensbekundung"
 
-#: AKModel/models.py:36
+#: AKModel/models.py:47
 msgid ""
 "Opening time for expression of interest. When left blank, no interest "
 "indication will be possible."
@@ -374,71 +382,71 @@ msgstr ""
 "Öffnungszeitpunkt für die Angabe von Interesse an AKs.Wenn das Feld leer "
 "bleibt, wird keine Abgabe von Interesse möglich sein."
 
-#: AKModel/models.py:38
+#: AKModel/models.py:49
 msgid "Interest Window End"
 msgstr "Ende Interessensbekundung"
 
-#: AKModel/models.py:39
+#: AKModel/models.py:50
 msgid "Closing time for expression of interest."
 msgstr "Öffnungszeitpunkt für die Angabe von Interesse an AKs."
 
-#: AKModel/models.py:41
+#: AKModel/models.py:52
 msgid "Public event"
 msgstr "Öffentliches Event"
 
-#: AKModel/models.py:42
+#: AKModel/models.py:53
 msgid "Show this event on overview page."
 msgstr "Zeige dieses Event auf der Übersichtseite an"
 
-#: AKModel/models.py:44
+#: AKModel/models.py:55
 msgid "Active State"
 msgstr "Aktiver Status"
 
-#: AKModel/models.py:44
+#: AKModel/models.py:55
 msgid "Marks currently active events"
 msgstr "Markiert aktuell aktive Events"
 
-#: AKModel/models.py:45
+#: AKModel/models.py:56
 msgid "Plan Hidden"
 msgstr "Plan verborgen"
 
-#: AKModel/models.py:45
+#: AKModel/models.py:56
 msgid "Hides plan for non-staff users"
 msgstr "Verbirgt den Plan für Nutzer*innen ohne erweiterte Rechte"
 
-#: AKModel/models.py:47
+#: AKModel/models.py:58
 msgid "Plan published at"
 msgstr "Plan veröffentlicht am/um"
 
-#: AKModel/models.py:48
+#: AKModel/models.py:59
 msgid "Timestamp at which the plan was published"
 msgstr "Zeitpunkt, zu dem der Plan veröffentlicht wurde"
 
-#: AKModel/models.py:50
+#: AKModel/models.py:61
 msgid "Base URL"
 msgstr "URL-Prefix"
 
-#: AKModel/models.py:50
+#: AKModel/models.py:61
 msgid "Prefix for wiki link construction"
 msgstr "Prefix für die automatische Generierung von Wiki-Links"
 
-#: AKModel/models.py:51
+#: AKModel/models.py:62
 msgid "Wiki Export Template Name"
 msgstr "Wiki-Export Templatename"
 
-#: AKModel/models.py:52
+#: AKModel/models.py:63
 msgid "Default Slot Length"
 msgstr "Standardslotlänge"
 
-#: AKModel/models.py:53
+#: AKModel/models.py:64
 msgid "Default length in hours that is assumed for AKs in this event."
 msgstr "Standardlänge von Slots (in Stunden) für dieses Event"
 
-#: AKModel/models.py:55
+#: AKModel/models.py:66
 msgid "Contact email address"
 msgstr "E-Mail Kontaktadresse"
 
-#: AKModel/models.py:56
+#: AKModel/models.py:67
 msgid ""
 "An email address that is displayed on every page and can be used for all "
 "kinds of questions"
@@ -446,75 +454,75 @@ msgstr ""
 "Eine Mailadresse die auf jeder Seite angezeigt wird und für alle Arten von "
 "Fragen genutzt werden kann"
 
-#: AKModel/models.py:61
+#: AKModel/models.py:72
 msgid "Events"
 msgstr "Events"
 
-#: AKModel/models.py:169
+#: AKModel/models.py:180
 msgid "Nickname"
 msgstr "Spitzname"
 
-#: AKModel/models.py:169
+#: AKModel/models.py:182
 msgid "Name to identify an AK owner by"
 msgstr "Name, durch den eine AK-Leitung identifiziert wird"
 
-#: AKModel/models.py:170
+#: AKModel/models.py:183
 msgid "Slug"
 msgstr "Slug"
 
-#: AKModel/models.py:170
+#: AKModel/models.py:183
 msgid "Slug for URL generation"
 msgstr "Slug für URL-Generierung"
 
-#: AKModel/models.py:171
+#: AKModel/models.py:184
 msgid "Institution"
 msgstr "Instutution"
 
-#: AKModel/models.py:171
+#: AKModel/models.py:184
 msgid "Uni etc."
 msgstr "Universität o.ä."
 
-#: AKModel/models.py:172 AKModel/models.py:340
+#: AKModel/models.py:185 AKModel/models.py:355
 msgid "Web Link"
 msgstr "Internet Link"
 
-#: AKModel/models.py:172
+#: AKModel/models.py:185
 msgid "Link to Homepage"
 msgstr "Link zu Homepage oder Webseite"
 
-#: AKModel/models.py:178 AKModel/models.py:712
+#: AKModel/models.py:191 AKModel/models.py:741
 msgid "AK Owner"
 msgstr "AK-Leitung"
 
-#: AKModel/models.py:179
+#: AKModel/models.py:192
 msgid "AK Owners"
 msgstr "AK-Leitungen"
 
-#: AKModel/models.py:243
+#: AKModel/models.py:256
 msgid "Name of the AK Category"
 msgstr "Name der AK-Kategorie"
 
-#: AKModel/models.py:244 AKModel/models.py:268
+#: AKModel/models.py:257 AKModel/models.py:281
 msgid "Color"
 msgstr "Farbe"
 
-#: AKModel/models.py:244 AKModel/models.py:268
+#: AKModel/models.py:257 AKModel/models.py:281
 msgid "Color for displaying"
 msgstr "Farbe für die Anzeige"
 
-#: AKModel/models.py:245 AKModel/models.py:334
+#: AKModel/models.py:258 AKModel/models.py:349
 msgid "Description"
 msgstr "Beschreibung"
 
-#: AKModel/models.py:246
+#: AKModel/models.py:259
 msgid "Short description of this AK Category"
 msgstr "Beschreibung der AK-Kategorie"
 
-#: AKModel/models.py:247
+#: AKModel/models.py:260
 msgid "Present by default"
 msgstr "Defaultmäßig präsentieren"
 
-#: AKModel/models.py:248
+#: AKModel/models.py:261
 msgid ""
 "Present AKs of this category by default if AK owner did not specify whether "
 "this AK should be presented?"
@@ -522,152 +530,152 @@ msgstr ""
 "AKs dieser Kategorie standardmäßig vorstellen, wenn die Leitungen das für "
 "ihren AK nicht explizit spezifiziert haben?"
 
-#: AKModel/models.py:256
+#: AKModel/models.py:269
 msgid "AK Categories"
 msgstr "AK-Kategorien"
 
-#: AKModel/models.py:267
+#: AKModel/models.py:280
 msgid "Name of the AK Track"
 msgstr "Name des AK-Tracks"
 
-#: AKModel/models.py:274
+#: AKModel/models.py:287
 msgid "AK Track"
 msgstr "AK-Track"
 
-#: AKModel/models.py:275
+#: AKModel/models.py:288
 msgid "AK Tracks"
 msgstr "AK-Tracks"
 
-#: AKModel/models.py:294
+#: AKModel/models.py:307
 msgid "Name of the Requirement"
 msgstr "Name der Anforderung"
 
-#: AKModel/models.py:300 AKModel/models.py:716
+#: AKModel/models.py:313 AKModel/models.py:745
 msgid "AK Requirement"
 msgstr "AK-Anforderung"
 
-#: AKModel/models.py:301
+#: AKModel/models.py:314
 msgid "AK Requirements"
 msgstr "AK-Anforderungen"
 
-#: AKModel/models.py:313
+#: AKModel/models.py:326
 msgid "Name describing the type"
 msgstr "Name, der den Typ beschreibt"
 
-#: AKModel/models.py:319
+#: AKModel/models.py:332
 msgid "AK Type"
 msgstr "AK Typ"
 
-#: AKModel/models.py:320
+#: AKModel/models.py:333
 msgid "AK Types"
 msgstr "AK-Typen"
 
-#: AKModel/models.py:331
+#: AKModel/models.py:344
 msgid "Name of the AK"
 msgstr "Name des AKs"
 
-#: AKModel/models.py:332
+#: AKModel/models.py:346
 msgid "Short Name"
 msgstr "Kurzer Name"
 
-#: AKModel/models.py:333
+#: AKModel/models.py:348
 msgid "Name displayed in the schedule"
 msgstr "Name zur Anzeige im AK-Plan"
 
-#: AKModel/models.py:334
+#: AKModel/models.py:349
 msgid "Description of the AK"
 msgstr "Beschreibung des AKs"
 
-#: AKModel/models.py:336
+#: AKModel/models.py:351
 msgid "Owners"
 msgstr "Leitungen"
 
-#: AKModel/models.py:337
+#: AKModel/models.py:352
 msgid "Those organizing the AK"
 msgstr "Menschen, die den AK organisieren und halten"
 
-#: AKModel/models.py:340
+#: AKModel/models.py:355
 msgid "Link to wiki page"
 msgstr "Link zur Wiki Seite"
 
-#: AKModel/models.py:341
+#: AKModel/models.py:356
 msgid "Protocol Link"
 msgstr "Protokolllink"
 
-#: AKModel/models.py:341
+#: AKModel/models.py:356
 msgid "Link to protocol"
 msgstr "Link zum Protokoll"
 
-#: AKModel/models.py:343
+#: AKModel/models.py:358
 msgid "Category"
 msgstr "Kategorie"
 
-#: AKModel/models.py:344
+#: AKModel/models.py:359
 msgid "Category of the AK"
 msgstr "Kategorie des AKs"
 
-#: AKModel/models.py:345
+#: AKModel/models.py:360
 msgid "Types"
 msgstr "Typen"
 
-#: AKModel/models.py:346
+#: AKModel/models.py:361
 msgid "This AK is"
 msgstr "Dieser AK ist"
 
-#: AKModel/models.py:347
+#: AKModel/models.py:362
 msgid "Track"
 msgstr "Track"
 
-#: AKModel/models.py:348
+#: AKModel/models.py:363
 msgid "Track the AK belongs to"
 msgstr "Track zu dem der AK gehört"
 
-#: AKModel/models.py:350
+#: AKModel/models.py:365
 msgid "Resolution Intention"
 msgstr "Resolutionsabsicht"
 
-#: AKModel/models.py:351
+#: AKModel/models.py:366
 msgid "Intends to submit a resolution"
 msgstr "Beabsichtigt eine Resolution einzureichen"
 
-#: AKModel/models.py:352
+#: AKModel/models.py:367
 msgid "Present this AK"
 msgstr "AK präsentieren"
 
-#: AKModel/models.py:353
+#: AKModel/models.py:368
 msgid "Present results of this AK"
 msgstr "Die Ergebnisse dieses AKs vorstellen"
 
-#: AKModel/models.py:355 AKModel/views/status.py:167
+#: AKModel/models.py:370 AKModel/views/status.py:167
 msgid "Requirements"
 msgstr "Anforderungen"
 
-#: AKModel/models.py:356
+#: AKModel/models.py:371
 msgid "AK's Requirements"
 msgstr "Anforderungen des AKs"
 
-#: AKModel/models.py:358
+#: AKModel/models.py:373
 msgid "Conflicting AKs"
 msgstr "AK-Konflikte"
 
-#: AKModel/models.py:359
+#: AKModel/models.py:374
 msgid "AKs that conflict and thus must not take place at the same time"
 msgstr ""
 "AKs, die Konflikte haben und deshalb nicht gleichzeitig stattfinden dürfen"
 
-#: AKModel/models.py:360
+#: AKModel/models.py:375
 msgid "Prerequisite AKs"
 msgstr "Vorausgesetzte AKs"
 
-#: AKModel/models.py:361
+#: AKModel/models.py:376
 msgid "AKs that should precede this AK in the schedule"
 msgstr "AKs die im AK-Plan vor diesem AK stattfinden müssen"
 
-#: AKModel/models.py:363
+#: AKModel/models.py:378
 msgid "Organizational Notes"
 msgstr "Notizen zur Organisation"
 
-#: AKModel/models.py:364
+#: AKModel/models.py:379
 msgid ""
 "Notes to organizers. These are public. For private notes, please use the "
 "button for private messages on the detail page of this AK (after creation/"
@@ -677,291 +685,291 @@ msgstr ""
 "Anmerkungen bitte den Button für Direktnachrichten verwenden (nach dem "
 "Anlegen/Bearbeiten)."
 
-#: AKModel/models.py:367
+#: AKModel/models.py:382
 msgid "Interest"
 msgstr "Interesse"
 
-#: AKModel/models.py:367
+#: AKModel/models.py:382
 msgid "Expected number of people"
 msgstr "Erwartete Personenzahl"
 
-#: AKModel/models.py:368
+#: AKModel/models.py:383
 msgid "Interest Counter"
 msgstr "Interessenszähler"
 
-#: AKModel/models.py:369
+#: AKModel/models.py:384
 msgid "People who have indicated interest online"
 msgstr "Anzahl Personen, die online Interesse bekundet haben"
 
-#: AKModel/models.py:374
+#: AKModel/models.py:389
 msgid "Export?"
 msgstr "Export?"
 
-#: AKModel/models.py:375
+#: AKModel/models.py:390
 msgid "Include AK in wiki export?"
 msgstr "AK bei Wiki-Export berücksichtigen?"
 
-#: AKModel/models.py:507
+#: AKModel/models.py:536
 msgid "Name or number of the room"
 msgstr "Name oder Nummer des Raums"
 
-#: AKModel/models.py:508
+#: AKModel/models.py:537
 msgid "Location"
 msgstr "Ort"
 
-#: AKModel/models.py:509
+#: AKModel/models.py:538
 msgid "Name or number of the location"
 msgstr "Name oder Nummer des Ortes"
 
-#: AKModel/models.py:510
+#: AKModel/models.py:539
 msgid "Capacity"
 msgstr "Kapazität"
 
-#: AKModel/models.py:511
+#: AKModel/models.py:540
 msgid "Maximum number of people (-1 for unlimited)."
 msgstr "Maximale Personenzahl (-1 wenn unbeschränkt)."
 
-#: AKModel/models.py:512
+#: AKModel/models.py:541
 msgid "Properties"
 msgstr "Eigenschaften"
 
-#: AKModel/models.py:513
+#: AKModel/models.py:542
 msgid "AK requirements fulfilled by the room"
 msgstr "AK-Anforderungen, die dieser Raum erfüllt"
 
-#: AKModel/models.py:522 AKModel/views/status.py:59
+#: AKModel/models.py:551 AKModel/views/status.py:59
 msgid "Rooms"
 msgstr "Räume"
 
-#: AKModel/models.py:545
+#: AKModel/models.py:574
 msgid "AK being mapped"
 msgstr "AK, der zugeordnet wird"
 
-#: AKModel/models.py:547
+#: AKModel/models.py:576
 msgid "Room the AK will take place in"
 msgstr "Raum in dem der AK stattfindet"
 
-#: AKModel/models.py:548 AKModel/models.py:891
+#: AKModel/models.py:577 AKModel/models.py:920
 msgid "Slot Begin"
 msgstr "Beginn des Slots"
 
-#: AKModel/models.py:548 AKModel/models.py:891
+#: AKModel/models.py:577 AKModel/models.py:920
 msgid "Time and date the slot begins"
 msgstr "Zeit und Datum zu der der AK beginnt"
 
-#: AKModel/models.py:550
+#: AKModel/models.py:579
 msgid "Duration"
 msgstr "Dauer"
 
-#: AKModel/models.py:551
+#: AKModel/models.py:580
 msgid "Length in hours"
 msgstr "Länge in Stunden"
 
-#: AKModel/models.py:553
+#: AKModel/models.py:582
 msgid "Scheduling fixed"
 msgstr "Planung fix"
 
-#: AKModel/models.py:554
+#: AKModel/models.py:583
 msgid "Length and time of this AK should not be changed"
 msgstr "Dauer und Zeit dieses AKs sollten nicht verändert werden"
 
-#: AKModel/models.py:559
+#: AKModel/models.py:588
 msgid "Last update"
 msgstr "Letzte Aktualisierung"
 
-#: AKModel/models.py:562
+#: AKModel/models.py:591
 msgid "AK Slot"
 msgstr "AK-Slot"
 
-#: AKModel/models.py:563 AKModel/models.py:709
+#: AKModel/models.py:592 AKModel/models.py:738
 msgid "AK Slots"
 msgstr "AK-Slot"
 
-#: AKModel/models.py:585 AKModel/models.py:594
+#: AKModel/models.py:614 AKModel/models.py:623
 msgid "Not scheduled yet"
 msgstr "Noch nicht geplant"
 
-#: AKModel/models.py:642
+#: AKModel/models.py:671
 msgid "AK this message belongs to"
 msgstr "AK zu dem die Nachricht gehört"
 
-#: AKModel/models.py:643
+#: AKModel/models.py:672
 msgid "Message text"
 msgstr "Nachrichtentext"
 
-#: AKModel/models.py:644
+#: AKModel/models.py:673
 msgid "Message to the organizers. This is not publicly visible."
 msgstr ""
 "Nachricht an die Organisator*innen. Diese ist nicht öffentlich sichtbar."
 
-#: AKModel/models.py:648
+#: AKModel/models.py:677
 msgid "Resolved"
 msgstr "Erledigt"
 
-#: AKModel/models.py:649
+#: AKModel/models.py:678
 msgid "This message has been resolved (no further action needed)"
 msgstr ""
 "Diese Nachricht wurde vollständig bearbeitet (keine weiteren Aktionen "
 "notwendig)"
 
-#: AKModel/models.py:652
+#: AKModel/models.py:681
 msgid "AK Orga Message"
 msgstr "AK-Organachricht"
 
-#: AKModel/models.py:653
+#: AKModel/models.py:682
 msgid "AK Orga Messages"
 msgstr "AK-Organachrichten"
 
-#: AKModel/models.py:670
+#: AKModel/models.py:699
 msgid "Constraint Violation"
 msgstr "Constraintverletzung"
 
-#: AKModel/models.py:671
+#: AKModel/models.py:700
 msgid "Constraint Violations"
 msgstr "Constraintverletzungen"
 
-#: AKModel/models.py:678
+#: AKModel/models.py:707
 msgid "Owner has two parallel slots"
 msgstr "Leitung hat zwei Slots parallel"
 
-#: AKModel/models.py:679
+#: AKModel/models.py:708
 msgid "AK Slot was scheduled outside the AK's availabilities"
 msgstr "AK Slot wurde außerhalb der Verfügbarkeit des AKs platziert"
 
-#: AKModel/models.py:680
+#: AKModel/models.py:709
 msgid "Room has two AK slots scheduled at the same time"
 msgstr "Raum hat zwei AK Slots gleichzeitig"
 
-#: AKModel/models.py:681
+#: AKModel/models.py:710
 msgid "Room does not satisfy the requirement of the scheduled AK"
 msgstr "Room erfüllt die Anforderungen des platzierten AKs nicht"
 
-#: AKModel/models.py:682
+#: AKModel/models.py:711
 msgid "AK Slot is scheduled at the same time as an AK listed as a conflict"
 msgstr ""
 "AK Slot wurde wurde zur gleichen Zeit wie ein Konflikt des AKs platziert"
 
-#: AKModel/models.py:683
+#: AKModel/models.py:712
 msgid "AK Slot is scheduled before an AK listed as a prerequisite"
 msgstr "AK Slot wurde vor einem als Voraussetzung gelisteten AK platziert"
 
-#: AKModel/models.py:685
+#: AKModel/models.py:714
 msgid ""
 "AK Slot for AK with intention to submit a resolution is scheduled after "
 "resolution deadline"
 msgstr ""
 "AK Slot eines AKs mit Resoabsicht wurde nach der Resodeadline platziert"
 
-#: AKModel/models.py:686
+#: AKModel/models.py:715
 msgid "AK Slot in a category is outside that categories availabilities"
 msgstr "AK Slot wurde außerhalb der Verfügbarkeiten seiner Kategorie"
 
-#: AKModel/models.py:687
+#: AKModel/models.py:716
 msgid "Two AK Slots for the same AK scheduled at the same time"
 msgstr "Zwei AK Slots eines AKs wurden zur selben Zeit platziert"
 
-#: AKModel/models.py:688
+#: AKModel/models.py:717
 msgid "Room does not have enough space for interest in scheduled AK Slot"
 msgstr "Room hat nicht genug Platz für das Interesse am geplanten AK-Slot"
 
-#: AKModel/models.py:689
+#: AKModel/models.py:718
 msgid "AK Slot is scheduled outside the event's availabilities"
 msgstr "AK Slot wurde außerhalb der Verfügbarkeit des Events platziert"
 
-#: AKModel/models.py:695
+#: AKModel/models.py:724
 msgid "Warning"
 msgstr "Warnung"
 
-#: AKModel/models.py:696
+#: AKModel/models.py:725
 msgid "Violation"
 msgstr "Verletzung"
 
-#: AKModel/models.py:698
+#: AKModel/models.py:727
 msgid "Type"
 msgstr "Art"
 
-#: AKModel/models.py:699
+#: AKModel/models.py:728
 msgid "Type of violation, i.e. what kind of constraint was violated"
 msgstr "Art der Verletzung, gibt an welche Art Constraint verletzt wurde"
 
-#: AKModel/models.py:700
+#: AKModel/models.py:729
 msgid "Level"
 msgstr "Level"
 
-#: AKModel/models.py:701
+#: AKModel/models.py:730
 msgid "Severity level of the violation"
 msgstr "Schweregrad der Verletzung"
 
-#: AKModel/models.py:708
+#: AKModel/models.py:737
 msgid "AK(s) belonging to this constraint"
 msgstr "AK(s), die zu diesem Constraint gehören"
 
-#: AKModel/models.py:710
+#: AKModel/models.py:739
 msgid "AK Slot(s) belonging to this constraint"
 msgstr "AK Slot(s), die zu diesem Constraint gehören"
 
-#: AKModel/models.py:712
+#: AKModel/models.py:741
 msgid "AK Owner belonging to this constraint"
 msgstr "AK Leitung(en), die zu diesem Constraint gehören"
 
-#: AKModel/models.py:714
+#: AKModel/models.py:743
 msgid "Room belonging to this constraint"
 msgstr "Raum, der zu diesem Constraint gehört"
 
-#: AKModel/models.py:717
+#: AKModel/models.py:746
 msgid "AK Requirement belonging to this constraint"
 msgstr "AK Anforderung, die zu diesem Constraint gehört"
 
-#: AKModel/models.py:719
+#: AKModel/models.py:748
 msgid "AK Category belonging to this constraint"
 msgstr "AK Kategorie, di zu diesem Constraint gehört"
 
-#: AKModel/models.py:721
+#: AKModel/models.py:750
 msgid "Comment"
 msgstr "Kommentar"
 
-#: AKModel/models.py:721
+#: AKModel/models.py:750
 msgid "Comment or further details for this violation"
 msgstr "Kommentar oder weitere Details zu dieser Vereletzung"
 
-#: AKModel/models.py:724
+#: AKModel/models.py:753
 msgid "Timestamp"
 msgstr "Timestamp"
 
-#: AKModel/models.py:724
+#: AKModel/models.py:753
 msgid "Time of creation"
 msgstr "Zeitpunkt der ERstellung"
 
-#: AKModel/models.py:725
+#: AKModel/models.py:754
 msgid "Manually Resolved"
 msgstr "Manuell behoben"
 
-#: AKModel/models.py:726
+#: AKModel/models.py:755
 msgid "Mark this violation manually as resolved"
 msgstr "Markiere diese Verletzung manuell als behoben"
 
-#: AKModel/models.py:753 AKModel/templates/admin/AKModel/aks_by_user.html:22
+#: AKModel/models.py:782 AKModel/templates/admin/AKModel/aks_by_user.html:22
 #: AKModel/templates/admin/AKModel/requirements_overview.html:27
 msgid "Details"
 msgstr "Details"
 
-#: AKModel/models.py:887
+#: AKModel/models.py:916
 msgid "Default Slot"
 msgstr "Standardslot"
 
-#: AKModel/models.py:892
+#: AKModel/models.py:921
 msgid "Slot End"
 msgstr "Ende des Slots"
 
-#: AKModel/models.py:892
+#: AKModel/models.py:921
 msgid "Time and date the slot ends"
 msgstr "Zeit und Datum zu der der Slot endet"
 
-#: AKModel/models.py:897
+#: AKModel/models.py:926
 msgid "Primary categories"
 msgstr "Primäre Kategorien"
 
-#: AKModel/models.py:898
+#: AKModel/models.py:927
 msgid "Categories that should be assigned to this slot primarily"
 msgstr "Kategorieren, die diesem Slot primär zugewiesen werden sollen"
 
diff --git a/AKModel/migrations/0063_field_validators.py b/AKModel/migrations/0063_field_validators.py
new file mode 100644
index 0000000000000000000000000000000000000000..347eba289327dd8dc7b8c921f385626c2c725688
--- /dev/null
+++ b/AKModel/migrations/0063_field_validators.py
@@ -0,0 +1,39 @@
+# Generated by Django 4.2.13 on 2025-03-03 19:59
+
+import django.core.validators
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('AKModel', '0062_interest_no_history'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='ak',
+            name='name',
+            field=models.CharField(help_text='Name of the AK', max_length=256, validators=[django.core.validators.RegexValidator(inverse_match=True, message='May not contain quotation marks', regex='[\'\\"´`]+'), django.core.validators.RegexValidator(message='Must contain at least one letter or digit', regex='[\\w\\s]+')], verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='ak',
+            name='short_name',
+            field=models.CharField(blank=True, help_text='Name displayed in the schedule', max_length=64, validators=[django.core.validators.RegexValidator(inverse_match=True, message='May not contain quotation marks', regex='[\'\\"´`]+')], verbose_name='Short Name'),
+        ),
+        migrations.AlterField(
+            model_name='akowner',
+            name='name',
+            field=models.CharField(help_text='Name to identify an AK owner by', max_length=64, validators=[django.core.validators.RegexValidator(inverse_match=True, message='May not contain quotation marks', regex='[\'\\"´`]+'), django.core.validators.RegexValidator(message='Must contain at least one letter or digit', regex='[\\w\\s]+')], verbose_name='Nickname'),
+        ),
+        migrations.AlterField(
+            model_name='historicalak',
+            name='name',
+            field=models.CharField(help_text='Name of the AK', max_length=256, validators=[django.core.validators.RegexValidator(inverse_match=True, message='May not contain quotation marks', regex='[\'\\"´`]+'), django.core.validators.RegexValidator(message='Must contain at least one letter or digit', regex='[\\w\\s]+')], verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='historicalak',
+            name='short_name',
+            field=models.CharField(blank=True, help_text='Name displayed in the schedule', max_length=64, validators=[django.core.validators.RegexValidator(inverse_match=True, message='May not contain quotation marks', regex='[\'\\"´`]+')], verbose_name='Short Name'),
+        ),
+    ]
diff --git a/AKModel/models.py b/AKModel/models.py
index 9c5fea0e8205140bf01c5fdca1af03ee375bf98d..1b23b8732566652abf022f159bd8dbe063c68bb7 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -1,6 +1,7 @@
 import itertools
 from datetime import datetime, timedelta
 
+from django.core.validators import RegexValidator
 from django.apps import apps
 from django.db import models
 from django.db.models import Count
@@ -12,6 +13,16 @@ from simple_history.models import HistoricalRecords
 from timezone_field import TimeZoneField
 
 
+# Custom validators to be used for some of the fields
+# Prevent inclusion of the quotation marks ' " ´ `
+# This may be necessary to prevent javascript issues
+no_quotation_marks_validator = RegexValidator(regex=r"['\"´`]+", inverse_match=True,
+                                              message=_('May not contain quotation marks'))
+# Enforce that the field contains of at least one letter or digit (and not just special characters
+# This prevents issues when autogenerating slugs from that field
+slugable_validator = RegexValidator(regex=r"[\w\s]+", message=_('Must contain at least one letter or digit'))
+
+
 class Event(models.Model):
     """
     An event supplies the frame for all Aks.
@@ -166,7 +177,9 @@ class Event(models.Model):
 class AKOwner(models.Model):
     """ An AKOwner describes the person organizing/holding an AK.
     """
-    name = models.CharField(max_length=64, verbose_name=_('Nickname'), help_text=_('Name to identify an AK owner by'))
+    name = models.CharField(max_length=64, verbose_name=_('Nickname'),
+                            validators=[no_quotation_marks_validator, slugable_validator],
+                            help_text=_('Name to identify an AK owner by'))
     slug = models.SlugField(max_length=64, blank=True, verbose_name=_('Slug'), help_text=_('Slug for URL generation'))
     institution = models.CharField(max_length=128, blank=True, verbose_name=_('Institution'), help_text=_('Uni etc.'))
     link = models.URLField(blank=True, verbose_name=_('Web Link'), help_text=_('Link to Homepage'))
@@ -328,8 +341,10 @@ class AKType(models.Model):
 class AK(models.Model):
     """ An AK is a slot-based activity to be scheduled during an event.
     """
-    name = models.CharField(max_length=256, verbose_name=_('Name'), help_text=_('Name of the AK'))
+    name = models.CharField(max_length=256, verbose_name=_('Name'), help_text=_('Name of the AK'),
+                            validators=[no_quotation_marks_validator, slugable_validator])
     short_name = models.CharField(max_length=64, blank=True, verbose_name=_('Short Name'),
+                                  validators=[no_quotation_marks_validator],
                                   help_text=_('Name displayed in the schedule'))
     description = models.TextField(blank=True, verbose_name=_('Description'), help_text=_('Description of the AK'))