diff --git a/AKModel/locale/de_DE/LC_MESSAGES/django.po b/AKModel/locale/de_DE/LC_MESSAGES/django.po
index 4fcbd8a8b0d5c9e5dbaab566dd88652847e2058c..42b38565b67a2042eabcdf11b06b6a437d9f6eef 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: 2024-05-31 14:22+0000\n"
+"POT-Creation-Date: 2025-01-22 19:00+0000\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,8 @@ msgstr "Plan veröffentlichen"
 msgid "Unpublish plan"
 msgstr "Plan verbergen"
 
-#: AKModel/admin.py:168 AKModel/models.py:612 AKModel/models.py:1028
+#: AKModel/admin.py:168 AKModel/models.py:689 AKModel/models.py:1114
+#: AKModel/models.py:1150
 #: AKModel/templates/admin/AKModel/status/event_aks.html:10
 #: AKModel/views/manage.py:75 AKModel/views/status.py:97
 msgid "AKs"
@@ -59,11 +60,11 @@ msgstr "In Wiki-Syntax exportieren"
 msgid "Cannot export AKs from more than one event at the same time."
 msgstr "Kann nicht AKs von mehreren Events zur selben Zeit exportieren."
 
-#: AKModel/admin.py:320 AKModel/views/ak.py:226
+#: AKModel/admin.py:320 AKModel/views/ak.py:237
 msgid "Reset interest in AKs"
 msgstr "Interesse an AKs zurücksetzen"
 
-#: AKModel/admin.py:330 AKModel/views/ak.py:241
+#: AKModel/admin.py:330 AKModel/views/ak.py:252
 msgid "Reset AKs' interest counters"
 msgstr "Interessenszähler der AKs zurücksetzen"
 
@@ -108,17 +109,18 @@ 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:91 AKModel/models.py:412
-#: AKModel/models.py:489 AKModel/models.py:522 AKModel/models.py:548
-#: AKModel/models.py:602 AKModel/models.py:744 AKModel/models.py:820
-#: AKModel/models.py:967 AKModel/models.py:1024 AKModel/models.py:1215
+#: AKModel/availability/models.py:43 AKModel/models.py:160
+#: AKModel/models.py:489 AKModel/models.py:566 AKModel/models.py:599
+#: AKModel/models.py:625 AKModel/models.py:679 AKModel/models.py:821
+#: AKModel/models.py:897 AKModel/models.py:1053 AKModel/models.py:1110
+#: AKModel/models.py:1301
 msgid "Event"
 msgstr "Event"
 
-#: AKModel/availability/models.py:44 AKModel/models.py:413
-#: AKModel/models.py:490 AKModel/models.py:523 AKModel/models.py:549
-#: AKModel/models.py:603 AKModel/models.py:745 AKModel/models.py:821
-#: AKModel/models.py:968 AKModel/models.py:1025 AKModel/models.py:1216
+#: AKModel/availability/models.py:44 AKModel/models.py:490
+#: AKModel/models.py:567 AKModel/models.py:600 AKModel/models.py:626
+#: AKModel/models.py:680 AKModel/models.py:822 AKModel/models.py:898
+#: AKModel/models.py:1054 AKModel/models.py:1111 AKModel/models.py:1302
 msgid "Associated event"
 msgstr "Zugehöriges Event"
 
@@ -130,8 +132,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:748
-#: AKModel/models.py:810 AKModel/models.py:1034
+#: AKModel/availability/models.py:61 AKModel/models.py:825
+#: AKModel/models.py:887 AKModel/models.py:1120
 msgid "Room"
 msgstr "Raum"
 
@@ -139,8 +141,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:611
-#: AKModel/models.py:809 AKModel/models.py:962
+#: AKModel/availability/models.py:70 AKModel/models.py:688
+#: AKModel/models.py:886 AKModel/models.py:1048
 msgid "AK"
 msgstr "AK"
 
@@ -148,8 +150,8 @@ msgstr "AK"
 msgid "AK whose availability this is"
 msgstr "Verfügbarkeiten"
 
-#: AKModel/availability/models.py:79 AKModel/models.py:493
-#: AKModel/models.py:1040
+#: AKModel/availability/models.py:79 AKModel/models.py:570
+#: AKModel/models.py:1126
 msgid "AK Category"
 msgstr "AK-Kategorie"
 
@@ -157,7 +159,7 @@ msgstr "AK-Kategorie"
 msgid "AK Category whose availability this is"
 msgstr "AK-Kategorie, deren Verfügbarkeit hier abgebildet wird"
 
-#: AKModel/availability/models.py:300
+#: AKModel/availability/models.py:300 AKModel/models.py:721
 msgid "Availabilities"
 msgstr "Verfügbarkeiten"
 
@@ -219,7 +221,7 @@ msgstr ""
 "fürWünsche markieren, z.B. um während der Präsentation auf einem Touchscreen "
 "ausgefüllt zu werden?"
 
-#: AKModel/forms.py:189 AKModel/models.py:1209
+#: AKModel/forms.py:189 AKModel/models.py:1295
 msgid "Default Slots"
 msgstr "Standardslots"
 
@@ -266,7 +268,7 @@ msgstr "JSON-Daten"
 msgid "JSON data from the scheduling solver"
 msgstr "JSON-Daten, die der scheduling-solver produziert hat"
 
-#: AKModel/metaviews/admin.py:156 AKModel/models.py:60
+#: AKModel/metaviews/admin.py:156 AKModel/models.py:129
 msgid "Start"
 msgstr "Start"
 
@@ -291,66 +293,66 @@ msgstr "Aktivieren?"
 msgid "Finish"
 msgstr "Abschluss"
 
-#: AKModel/models.py:51 AKModel/models.py:481 AKModel/models.py:519
-#: AKModel/models.py:546 AKModel/models.py:564 AKModel/models.py:736
+#: AKModel/models.py:120 AKModel/models.py:558 AKModel/models.py:596
+#: AKModel/models.py:623 AKModel/models.py:641 AKModel/models.py:813
 msgid "Name"
 msgstr "Name"
 
-#: AKModel/models.py:52
+#: AKModel/models.py:121
 msgid "Name or iteration of the event"
 msgstr "Name oder Iteration des Events"
 
-#: AKModel/models.py:53
+#: AKModel/models.py:122
 msgid "Short Form"
 msgstr "Kurzer Name"
 
-#: AKModel/models.py:54
+#: AKModel/models.py:123
 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:56
+#: AKModel/models.py:125
 msgid "Place"
 msgstr "Ort"
 
-#: AKModel/models.py:57
+#: AKModel/models.py:126
 msgid "City etc. the event takes place in"
 msgstr "Stadt o.ä. in der das Event stattfindet"
 
-#: AKModel/models.py:59
+#: AKModel/models.py:128
 msgid "Time Zone"
 msgstr "Zeitzone"
 
-#: AKModel/models.py:59
+#: AKModel/models.py:128
 msgid "Time Zone where this event takes place in"
 msgstr "Zeitzone in der das Event stattfindet"
 
-#: AKModel/models.py:60
+#: AKModel/models.py:129
 msgid "Time the event begins"
 msgstr "Zeit zu der das Event beginnt"
 
-#: AKModel/models.py:61
+#: AKModel/models.py:130
 msgid "End"
 msgstr "Ende"
 
-#: AKModel/models.py:61
+#: AKModel/models.py:130
 msgid "Time the event ends"
 msgstr "Zeit zu der das Event endet"
 
-#: AKModel/models.py:62
+#: AKModel/models.py:131
 msgid "Resolution Deadline"
 msgstr "Resolutionsdeadline"
 
-#: AKModel/models.py:63
+#: AKModel/models.py:132
 msgid "When should AKs with intention to submit a resolution be done?"
 msgstr "Wann sollen AKs mit Resolutionsabsicht stattgefunden haben?"
 
-#: AKModel/models.py:65
+#: AKModel/models.py:134
 msgid "Interest Window Start"
 msgstr "Beginn Interessensbekundung"
 
-#: AKModel/models.py:67
+#: AKModel/models.py:136
 msgid ""
 "Opening time for expression of interest. When left blank, no interest "
 "indication will be possible."
@@ -358,71 +360,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:69
+#: AKModel/models.py:138
 msgid "Interest Window End"
 msgstr "Ende Interessensbekundung"
 
-#: AKModel/models.py:70
+#: AKModel/models.py:139
 msgid "Closing time for expression of interest."
 msgstr "Öffnungszeitpunkt für die Angabe von Interesse an AKs."
 
-#: AKModel/models.py:72
+#: AKModel/models.py:141
 msgid "Public event"
 msgstr "Öffentliches Event"
 
-#: AKModel/models.py:73
+#: AKModel/models.py:142
 msgid "Show this event on overview page."
 msgstr "Zeige dieses Event auf der Ãœbersichtseite an"
 
-#: AKModel/models.py:75
+#: AKModel/models.py:144
 msgid "Active State"
 msgstr "Aktiver Status"
 
-#: AKModel/models.py:75
+#: AKModel/models.py:144
 msgid "Marks currently active events"
 msgstr "Markiert aktuell aktive Events"
 
-#: AKModel/models.py:76
+#: AKModel/models.py:145
 msgid "Plan Hidden"
 msgstr "Plan verborgen"
 
-#: AKModel/models.py:76
+#: AKModel/models.py:145
 msgid "Hides plan for non-staff users"
 msgstr "Verbirgt den Plan für Nutzer*innen ohne erweiterte Rechte"
 
-#: AKModel/models.py:78
+#: AKModel/models.py:147
 msgid "Plan published at"
 msgstr "Plan veröffentlicht am/um"
 
-#: AKModel/models.py:79
+#: AKModel/models.py:148
 msgid "Timestamp at which the plan was published"
 msgstr "Zeitpunkt, zu dem der Plan veröffentlicht wurde"
 
-#: AKModel/models.py:81
+#: AKModel/models.py:150
 msgid "Base URL"
 msgstr "URL-Prefix"
 
-#: AKModel/models.py:81
+#: AKModel/models.py:150
 msgid "Prefix for wiki link construction"
 msgstr "Prefix für die automatische Generierung von Wiki-Links"
 
-#: AKModel/models.py:82
+#: AKModel/models.py:151
 msgid "Wiki Export Template Name"
 msgstr "Wiki-Export Templatename"
 
-#: AKModel/models.py:83
+#: AKModel/models.py:152
 msgid "Default Slot Length"
 msgstr "Standardslotlänge"
 
-#: AKModel/models.py:84
+#: AKModel/models.py:153
 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:86
+#: AKModel/models.py:155
 msgid "Contact email address"
 msgstr "E-Mail Kontaktadresse"
 
-#: AKModel/models.py:87
+#: AKModel/models.py:156
 msgid ""
 "An email address that is displayed on every page and can be used for all "
 "kinds of questions"
@@ -430,75 +432,107 @@ msgstr ""
 "Eine Mailadresse die auf jeder Seite angezeigt wird und für alle Arten von "
 "Fragen genutzt werden kann"
 
-#: AKModel/models.py:92
+#: AKModel/models.py:161
 msgid "Events"
 msgstr "Events"
 
-#: AKModel/models.py:407
+#: AKModel/models.py:430
+#, python-brace-format
+msgid "AK {ak_name} is not assigned any timeslot by the solver"
+msgstr "Dem AK {ak_name} wurde vom Solver kein Zeitslot zugewiesen"
+
+#: AKModel/models.py:440
+#, python-brace-format
+msgid ""
+"Duration of AK {ak_name} assigned by solver ({solver_duration} hours) is "
+"less than the duration required by the slot ({slot_duration} hours)"
+msgstr ""
+"Die dem AK {ak_name} vom Solver zugewiesene Dauer ({solver_duration} Stunden) ist "
+"kürzer als die aktuell vorgesehene Dauer des Slots ({slot_duration} Stunden)"
+
+#: AKModel/models.py:454
+#, python-brace-format
+msgid ""
+"Fixed AK {ak_name} assigned by solver to room {solver_room} is fixed to room "
+"{slot_room}"
+msgstr ""
+"Dem fix geplanten AK {ak_name} wurde vom Solver Raum {solver_room} zugewiesen, "
+"dabei ist der AK bereits fix in Raum {slot_room} eingeplant."
+
+#: AKModel/models.py:465
+#, python-brace-format
+msgid ""
+"Fixed AK {ak_name} assigned by solver to start at {solver_start} is fixed to "
+"start at {slot_start}"
+msgstr ""
+"Dem fix geplanten AK {ak_name} wurde vom Solver die Startzeit {solver_start} zugewiesen, "
+"dabei ist der AK bereits für {slot_start} eingeplant."
+
+#: AKModel/models.py:484
 msgid "Nickname"
 msgstr "Spitzname"
 
-#: AKModel/models.py:407
+#: AKModel/models.py:484
 msgid "Name to identify an AK owner by"
 msgstr "Name, durch den eine AK-Leitung identifiziert wird"
 
-#: AKModel/models.py:408
+#: AKModel/models.py:485
 msgid "Slug"
 msgstr "Slug"
 
-#: AKModel/models.py:408
+#: AKModel/models.py:485
 msgid "Slug for URL generation"
 msgstr "Slug für URL-Generierung"
 
-#: AKModel/models.py:409
+#: AKModel/models.py:486
 msgid "Institution"
 msgstr "Instutution"
 
-#: AKModel/models.py:409
+#: AKModel/models.py:486
 msgid "Uni etc."
 msgstr "Universität o.ä."
 
-#: AKModel/models.py:410 AKModel/models.py:573
+#: AKModel/models.py:487 AKModel/models.py:650
 msgid "Web Link"
 msgstr "Internet Link"
 
-#: AKModel/models.py:410
+#: AKModel/models.py:487
 msgid "Link to Homepage"
 msgstr "Link zu Homepage oder Webseite"
 
-#: AKModel/models.py:416 AKModel/models.py:1033
+#: AKModel/models.py:493 AKModel/models.py:1119
 msgid "AK Owner"
 msgstr "AK-Leitung"
 
-#: AKModel/models.py:417
+#: AKModel/models.py:494
 msgid "AK Owners"
 msgstr "AK-Leitungen"
 
-#: AKModel/models.py:481
+#: AKModel/models.py:558
 msgid "Name of the AK Category"
 msgstr "Name der AK-Kategorie"
 
-#: AKModel/models.py:482 AKModel/models.py:520
+#: AKModel/models.py:559 AKModel/models.py:597
 msgid "Color"
 msgstr "Farbe"
 
-#: AKModel/models.py:482 AKModel/models.py:520
+#: AKModel/models.py:559 AKModel/models.py:597
 msgid "Color for displaying"
 msgstr "Farbe für die Anzeige"
 
-#: AKModel/models.py:483 AKModel/models.py:567
+#: AKModel/models.py:560 AKModel/models.py:644
 msgid "Description"
 msgstr "Beschreibung"
 
-#: AKModel/models.py:484
+#: AKModel/models.py:561
 msgid "Short description of this AK Category"
 msgstr "Beschreibung der AK-Kategorie"
 
-#: AKModel/models.py:485
+#: AKModel/models.py:562
 msgid "Present by default"
 msgstr "Defaultmäßig präsentieren"
 
-#: AKModel/models.py:486
+#: AKModel/models.py:563
 msgid ""
 "Present AKs of this category by default if AK owner did not specify whether "
 "this AK should be presented?"
@@ -506,132 +540,132 @@ msgstr ""
 "AKs dieser Kategorie standardmäßig vorstellen, wenn die Leitungen das für "
 "ihren AK nicht explizit spezifiziert haben?"
 
-#: AKModel/models.py:494
+#: AKModel/models.py:571
 msgid "AK Categories"
 msgstr "AK-Kategorien"
 
-#: AKModel/models.py:519
+#: AKModel/models.py:596
 msgid "Name of the AK Track"
 msgstr "Name des AK-Tracks"
 
-#: AKModel/models.py:526
+#: AKModel/models.py:603
 msgid "AK Track"
 msgstr "AK-Track"
 
-#: AKModel/models.py:527
+#: AKModel/models.py:604
 msgid "AK Tracks"
 msgstr "AK-Tracks"
 
-#: AKModel/models.py:546
+#: AKModel/models.py:623
 msgid "Name of the Requirement"
 msgstr "Name der Anforderung"
 
-#: AKModel/models.py:552 AKModel/models.py:1037
+#: AKModel/models.py:629 AKModel/models.py:1123
 msgid "AK Requirement"
 msgstr "AK-Anforderung"
 
-#: AKModel/models.py:553
+#: AKModel/models.py:630
 msgid "AK Requirements"
 msgstr "AK-Anforderungen"
 
-#: AKModel/models.py:564
+#: AKModel/models.py:641
 msgid "Name of the AK"
 msgstr "Name des AKs"
 
-#: AKModel/models.py:565
+#: AKModel/models.py:642
 msgid "Short Name"
 msgstr "Kurzer Name"
 
-#: AKModel/models.py:566
+#: AKModel/models.py:643
 msgid "Name displayed in the schedule"
 msgstr "Name zur Anzeige im AK-Plan"
 
-#: AKModel/models.py:567
+#: AKModel/models.py:644
 msgid "Description of the AK"
 msgstr "Beschreibung des AKs"
 
-#: AKModel/models.py:569
+#: AKModel/models.py:646
 msgid "Owners"
 msgstr "Leitungen"
 
-#: AKModel/models.py:570
+#: AKModel/models.py:647
 msgid "Those organizing the AK"
 msgstr "Menschen, die den AK organisieren und halten"
 
-#: AKModel/models.py:573
+#: AKModel/models.py:650
 msgid "Link to wiki page"
 msgstr "Link zur Wiki Seite"
 
-#: AKModel/models.py:574
+#: AKModel/models.py:651
 msgid "Protocol Link"
 msgstr "Protokolllink"
 
-#: AKModel/models.py:574
+#: AKModel/models.py:651
 msgid "Link to protocol"
 msgstr "Link zum Protokoll"
 
-#: AKModel/models.py:576
+#: AKModel/models.py:653
 msgid "Category"
 msgstr "Kategorie"
 
-#: AKModel/models.py:577
+#: AKModel/models.py:654
 msgid "Category of the AK"
 msgstr "Kategorie des AKs"
 
-#: AKModel/models.py:578
+#: AKModel/models.py:655
 msgid "Track"
 msgstr "Track"
 
-#: AKModel/models.py:579
+#: AKModel/models.py:656
 msgid "Track the AK belongs to"
 msgstr "Track zu dem der AK gehört"
 
-#: AKModel/models.py:581
+#: AKModel/models.py:658
 msgid "Resolution Intention"
 msgstr "Resolutionsabsicht"
 
-#: AKModel/models.py:582
+#: AKModel/models.py:659
 msgid "Intends to submit a resolution"
 msgstr "Beabsichtigt eine Resolution einzureichen"
 
-#: AKModel/models.py:583
+#: AKModel/models.py:660
 msgid "Present this AK"
 msgstr "AK präsentieren"
 
-#: AKModel/models.py:584
+#: AKModel/models.py:661
 msgid "Present results of this AK"
 msgstr "Die Ergebnisse dieses AKs vorstellen"
 
-#: AKModel/models.py:586 AKModel/views/status.py:170
+#: AKModel/models.py:663 AKModel/models.py:716 AKModel/views/status.py:170
 msgid "Requirements"
 msgstr "Anforderungen"
 
-#: AKModel/models.py:587
+#: AKModel/models.py:664
 msgid "AK's Requirements"
 msgstr "Anforderungen des AKs"
 
-#: AKModel/models.py:589
+#: AKModel/models.py:666
 msgid "Conflicting AKs"
 msgstr "AK-Konflikte"
 
-#: AKModel/models.py:590
+#: AKModel/models.py:667
 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:591
+#: AKModel/models.py:668
 msgid "Prerequisite AKs"
 msgstr "Vorausgesetzte AKs"
 
-#: AKModel/models.py:592
+#: AKModel/models.py:669
 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:594
+#: AKModel/models.py:671
 msgid "Organizational Notes"
 msgstr "Notizen zur Organisation"
 
-#: AKModel/models.py:595
+#: AKModel/models.py:672
 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/"
@@ -641,295 +675,303 @@ msgstr ""
 "Anmerkungen bitte den Button für Direktnachrichten verwenden (nach dem "
 "Anlegen/Bearbeiten)."
 
-#: AKModel/models.py:598
+#: AKModel/models.py:675 AKModel/models.py:714
 msgid "Interest"
 msgstr "Interesse"
 
-#: AKModel/models.py:598
+#: AKModel/models.py:675
 msgid "Expected number of people"
 msgstr "Erwartete Personenzahl"
 
-#: AKModel/models.py:599
+#: AKModel/models.py:676
 msgid "Interest Counter"
 msgstr "Interessenszähler"
 
-#: AKModel/models.py:600
+#: AKModel/models.py:677
 msgid "People who have indicated interest online"
 msgstr "Anzahl Personen, die online Interesse bekundet haben"
 
-#: AKModel/models.py:605
+#: AKModel/models.py:682
 msgid "Export?"
 msgstr "Export?"
 
-#: AKModel/models.py:606
+#: AKModel/models.py:683
 msgid "Include AK in wiki export?"
 msgstr "AK bei Wiki-Export berücksichtigen?"
 
-#: AKModel/models.py:736
+#: AKModel/models.py:718
+msgid "Conflicts"
+msgstr "Konflikte"
+
+#: AKModel/models.py:720
+msgid "Prerequisites"
+msgstr "Voraussetzungen"
+
+#: AKModel/models.py:813
 msgid "Name or number of the room"
 msgstr "Name oder Nummer des Raums"
 
-#: AKModel/models.py:737
+#: AKModel/models.py:814
 msgid "Location"
 msgstr "Ort"
 
-#: AKModel/models.py:738
+#: AKModel/models.py:815
 msgid "Name or number of the location"
 msgstr "Name oder Nummer des Ortes"
 
-#: AKModel/models.py:739
+#: AKModel/models.py:816
 msgid "Capacity"
 msgstr "Kapazität"
 
-#: AKModel/models.py:740
+#: AKModel/models.py:817
 msgid "Maximum number of people (-1 for unlimited)."
 msgstr "Maximale Personenzahl (-1 wenn unbeschränkt)."
 
-#: AKModel/models.py:741
+#: AKModel/models.py:818
 msgid "Properties"
 msgstr "Eigenschaften"
 
-#: AKModel/models.py:742
+#: AKModel/models.py:819
 msgid "AK requirements fulfilled by the room"
 msgstr "AK-Anforderungen, die dieser Raum erfüllt"
 
-#: AKModel/models.py:749 AKModel/views/status.py:59
+#: AKModel/models.py:826 AKModel/views/status.py:59
 msgid "Rooms"
 msgstr "Räume"
 
-#: AKModel/models.py:809
+#: AKModel/models.py:886
 msgid "AK being mapped"
 msgstr "AK, der zugeordnet wird"
 
-#: AKModel/models.py:811
+#: AKModel/models.py:888
 msgid "Room the AK will take place in"
 msgstr "Raum in dem der AK stattfindet"
 
-#: AKModel/models.py:812 AKModel/models.py:1212
+#: AKModel/models.py:889 AKModel/models.py:1298
 msgid "Slot Begin"
 msgstr "Beginn des Slots"
 
-#: AKModel/models.py:812 AKModel/models.py:1212
+#: AKModel/models.py:889 AKModel/models.py:1298
 msgid "Time and date the slot begins"
 msgstr "Zeit und Datum zu der der AK beginnt"
 
-#: AKModel/models.py:814
+#: AKModel/models.py:891
 msgid "Duration"
 msgstr "Dauer"
 
-#: AKModel/models.py:815
+#: AKModel/models.py:892
 msgid "Length in hours"
 msgstr "Länge in Stunden"
 
-#: AKModel/models.py:817
+#: AKModel/models.py:894
 msgid "Scheduling fixed"
 msgstr "Planung fix"
 
-#: AKModel/models.py:818
+#: AKModel/models.py:895
 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:823
+#: AKModel/models.py:900
 msgid "Last update"
 msgstr "Letzte Aktualisierung"
 
-#: AKModel/models.py:826
+#: AKModel/models.py:903
 msgid "AK Slot"
 msgstr "AK-Slot"
 
-#: AKModel/models.py:827 AKModel/models.py:1030
+#: AKModel/models.py:904 AKModel/models.py:1116 AKModel/models.py:1151
 msgid "AK Slots"
 msgstr "AK-Slot"
 
-#: AKModel/models.py:849 AKModel/models.py:858
+#: AKModel/models.py:926 AKModel/models.py:935
 msgid "Not scheduled yet"
 msgstr "Noch nicht geplant"
 
-#: AKModel/models.py:963
+#: AKModel/models.py:1049
 msgid "AK this message belongs to"
 msgstr "AK zu dem die Nachricht gehört"
 
-#: AKModel/models.py:964
+#: AKModel/models.py:1050
 msgid "Message text"
 msgstr "Nachrichtentext"
 
-#: AKModel/models.py:965
+#: AKModel/models.py:1051
 msgid "Message to the organizers. This is not publicly visible."
 msgstr ""
 "Nachricht an die Organisator*innen. Diese ist nicht öffentlich sichtbar."
 
-#: AKModel/models.py:969
+#: AKModel/models.py:1055
 msgid "Resolved"
 msgstr "Erledigt"
 
-#: AKModel/models.py:970
+#: AKModel/models.py:1056
 msgid "This message has been resolved (no further action needed)"
 msgstr ""
 "Diese Nachricht wurde vollständig bearbeitet (keine weiteren Aktionen "
 "notwendig)"
 
-#: AKModel/models.py:973
+#: AKModel/models.py:1059
 msgid "AK Orga Message"
 msgstr "AK-Organachricht"
 
-#: AKModel/models.py:974
+#: AKModel/models.py:1060
 msgid "AK Orga Messages"
 msgstr "AK-Organachrichten"
 
-#: AKModel/models.py:991
+#: AKModel/models.py:1077
 msgid "Constraint Violation"
 msgstr "Constraintverletzung"
 
-#: AKModel/models.py:992
+#: AKModel/models.py:1078
 msgid "Constraint Violations"
 msgstr "Constraintverletzungen"
 
-#: AKModel/models.py:999
+#: AKModel/models.py:1085
 msgid "Owner has two parallel slots"
 msgstr "Leitung hat zwei Slots parallel"
 
-#: AKModel/models.py:1000
+#: AKModel/models.py:1086
 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:1001
+#: AKModel/models.py:1087
 msgid "Room has two AK slots scheduled at the same time"
 msgstr "Raum hat zwei AK Slots gleichzeitig"
 
-#: AKModel/models.py:1002
+#: AKModel/models.py:1088
 msgid "Room does not satisfy the requirement of the scheduled AK"
 msgstr "Room erfüllt die Anforderungen des platzierten AKs nicht"
 
-#: AKModel/models.py:1003
+#: AKModel/models.py:1089
 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:1004
+#: AKModel/models.py:1090
 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:1006
+#: AKModel/models.py:1092
 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:1007
+#: AKModel/models.py:1093
 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:1008
+#: AKModel/models.py:1094
 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:1009
+#: AKModel/models.py:1095
 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:1010
+#: AKModel/models.py:1096
 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:1016
+#: AKModel/models.py:1102
 msgid "Warning"
 msgstr "Warnung"
 
-#: AKModel/models.py:1017
+#: AKModel/models.py:1103
 msgid "Violation"
 msgstr "Verletzung"
 
-#: AKModel/models.py:1019
+#: AKModel/models.py:1105
 msgid "Type"
 msgstr "Art"
 
-#: AKModel/models.py:1020
+#: AKModel/models.py:1106
 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:1021
+#: AKModel/models.py:1107
 msgid "Level"
 msgstr "Level"
 
-#: AKModel/models.py:1022
+#: AKModel/models.py:1108
 msgid "Severity level of the violation"
 msgstr "Schweregrad der Verletzung"
 
-#: AKModel/models.py:1029
+#: AKModel/models.py:1115
 msgid "AK(s) belonging to this constraint"
 msgstr "AK(s), die zu diesem Constraint gehören"
 
-#: AKModel/models.py:1031
+#: AKModel/models.py:1117
 msgid "AK Slot(s) belonging to this constraint"
 msgstr "AK Slot(s), die zu diesem Constraint gehören"
 
-#: AKModel/models.py:1033
+#: AKModel/models.py:1119
 msgid "AK Owner belonging to this constraint"
 msgstr "AK Leitung(en), die zu diesem Constraint gehören"
 
-#: AKModel/models.py:1035
+#: AKModel/models.py:1121
 msgid "Room belonging to this constraint"
 msgstr "Raum, der zu diesem Constraint gehört"
 
-#: AKModel/models.py:1038
+#: AKModel/models.py:1124
 msgid "AK Requirement belonging to this constraint"
 msgstr "AK Anforderung, die zu diesem Constraint gehört"
 
-#: AKModel/models.py:1040
+#: AKModel/models.py:1126
 msgid "AK Category belonging to this constraint"
 msgstr "AK Kategorie, di zu diesem Constraint gehört"
 
-#: AKModel/models.py:1042
+#: AKModel/models.py:1128
 msgid "Comment"
 msgstr "Kommentar"
 
-#: AKModel/models.py:1042
+#: AKModel/models.py:1128
 msgid "Comment or further details for this violation"
 msgstr "Kommentar oder weitere Details zu dieser Vereletzung"
 
-#: AKModel/models.py:1045
+#: AKModel/models.py:1131
 msgid "Timestamp"
 msgstr "Timestamp"
 
-#: AKModel/models.py:1045
+#: AKModel/models.py:1131
 msgid "Time of creation"
 msgstr "Zeitpunkt der ERstellung"
 
-#: AKModel/models.py:1046
+#: AKModel/models.py:1132
 msgid "Manually Resolved"
 msgstr "Manuell behoben"
 
-#: AKModel/models.py:1047
+#: AKModel/models.py:1133
 msgid "Mark this violation manually as resolved"
 msgstr "Markiere diese Verletzung manuell als behoben"
 
-#: AKModel/models.py:1074
+#: AKModel/models.py:1160
 #: AKModel/templates/admin/AKModel/requirements_overview.html:27
 msgid "Details"
 msgstr "Details"
 
-#: AKModel/models.py:1208
+#: AKModel/models.py:1294
 msgid "Default Slot"
 msgstr "Standardslot"
 
-#: AKModel/models.py:1213
+#: AKModel/models.py:1299
 msgid "Slot End"
 msgstr "Ende des Slots"
 
-#: AKModel/models.py:1213
+#: AKModel/models.py:1299
 msgid "Time and date the slot ends"
 msgstr "Zeit und Datum zu der der Slot endet"
 
-#: AKModel/models.py:1218
+#: AKModel/models.py:1304
 msgid "Primary categories"
 msgstr "Primäre Kategorien"
 
-#: AKModel/models.py:1219
+#: AKModel/models.py:1305
 msgid "Categories that should be assigned to this slot primarily"
 msgstr "Kategorieren, die diesem Slot primär zugewiesen werden sollen"
 
-#: AKModel/site.py:14
+#: AKModel/site.py:13 AKModel/site.py:14
 msgid "Administration"
 msgstr "Verwaltung"
 
@@ -1135,35 +1177,35 @@ msgstr "AK-CSV-Export"
 msgid "AK JSON Export"
 msgstr "AK-JSON-Export"
 
-#: AKModel/views/ak.py:175
+#: AKModel/views/ak.py:186
 msgid "AK Wiki Export"
 msgstr "AK-Wiki-Export"
 
-#: AKModel/views/ak.py:186 AKModel/views/manage.py:55
+#: AKModel/views/ak.py:197 AKModel/views/manage.py:55
 msgid "Wishes"
 msgstr "Wünsche"
 
-#: AKModel/views/ak.py:198
+#: AKModel/views/ak.py:209
 msgid "Delete AK Orga Messages"
 msgstr "AK-Organachrichten löschen"
 
-#: AKModel/views/ak.py:216
+#: AKModel/views/ak.py:227
 msgid "AK Orga Messages successfully deleted"
 msgstr "AK-Organachrichten erfolgreich gelöscht"
 
-#: AKModel/views/ak.py:228
+#: AKModel/views/ak.py:239
 msgid "Interest of the following AKs will be set to not filled (-1):"
 msgstr "Interesse an den folgenden AKs wird auf nicht ausgefüllt (-1) gesetzt:"
 
-#: AKModel/views/ak.py:229
+#: AKModel/views/ak.py:240
 msgid "Reset of interest in AKs successful."
 msgstr "Interesse an AKs erfolgreich zurückgesetzt."
 
-#: AKModel/views/ak.py:243
+#: AKModel/views/ak.py:254
 msgid "Interest counter of the following AKs will be set to 0:"
 msgstr "Interessensbekundungszähler der folgenden AKs wird auf 0 gesetzt:"
 
-#: AKModel/views/ak.py:244
+#: AKModel/views/ak.py:255
 msgid "AKs' interest counters set back to 0."
 msgstr "Interessenszähler der AKs zurückgesetzt"
 
@@ -1265,6 +1307,15 @@ msgstr ""
 msgid "AK Schedule JSON Import"
 msgstr "AK-Plan JSON-Import"
 
+#: AKModel/views/manage.py:265
+#, python-brace-format
+msgid "Successfully imported {n} slot(s)"
+msgstr "Erfolgreich {n} Slot(s) importiert"
+
+#: AKModel/views/manage.py:271
+msgid "Importing an AK schedule failed! Reason: "
+msgstr "AK-Plan importieren fehlgeschlagen! Grund: "
+
 #: AKModel/views/room.py:37
 #, python-format
 msgid "Created Room '%(room)s'"
diff --git a/AKModel/models.py b/AKModel/models.py
index c51b75566c43840c679de07e3a9231acf6e5365b..1cd3f1ba908d63d5f59ceb0c3d07b33322e500d5 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -6,7 +6,7 @@ from dataclasses import dataclass
 from datetime import datetime, timedelta
 from typing import Iterable, Generator
 
-from django.db import models
+from django.db import models, transaction
 from django.apps import apps
 from django.db.models import Count
 from django.urls import reverse_lazy
@@ -401,7 +401,8 @@ class Event(models.Model):
         else:
             yield from self.uniform_time_slots(slots_in_an_hour=slots_in_an_hour)
 
-    def schedule_from_json(self, schedule: str) -> None:
+    @transaction.atomic
+    def schedule_from_json(self, schedule: str) -> int:
         """Load AK schedule from a json string.
 
         :param schedule: A string that can be decoded to json, describing
@@ -419,18 +420,63 @@ class Event(models.Model):
             for timeslot in block
         }
 
+        slots_updated = 0
         for scheduled_slot in schedule["scheduled_aks"]:
+            scheduled_slot["timeslot_ids"] = list(map(int, scheduled_slot["timeslot_ids"]))
             slot = AKSlot.objects.get(id=int(scheduled_slot["ak_id"]))
-            slot.room = Room.objects.get(id=int(scheduled_slot["room_id"]))
 
-            scheduled_slot["timeslot_ids"] = list(map(int, scheduled_slot["timeslot_ids"]))
+            if not scheduled_slot["timeslot_ids"]:
+                raise ValueError(
+                    _("AK {ak_name} is not assigned any timeslot by the solver").format(ak_name=slot.ak.name)
+                )
 
             start_timeslot = timeslot_dict[min(scheduled_slot["timeslot_ids"])].avail
             end_timeslot = timeslot_dict[max(scheduled_slot["timeslot_ids"])].avail
+            solver_duration = (end_timeslot.end - start_timeslot.start).total_seconds() / 3600.0
+
+            if solver_duration + 2e-4 < slot.duration:
+                raise ValueError(
+                    _(
+                        "Duration of AK {ak_name} assigned by solver ({solver_duration} hours) "
+                        "is less than the duration required by the slot ({slot_duration} hours)"
+                    ).format(
+                        ak_name=slot.ak.name,
+                        solver_duration=solver_duration,
+                        slot_duration=slot.duration,
+                    )
+                )
+
+            if slot.fixed:
+                solver_room = Room.objects.get(id=int(scheduled_slot["room_id"]))
+                if slot.room != solver_room:
+                    raise ValueError(
+                        _(
+                            "Fixed AK {ak_name} assigned by solver to room {solver_room} "
+                            "is fixed to room {slot_room}"
+                        ).format(
+                            ak_name=slot.ak.name,
+                            solver_room=solver_room.name,
+                            slot_room=slot.room.name,
+                        )
+                    )
+                if slot.start != start_timeslot.start:
+                    raise ValueError(
+                        _(
+                            "Fixed AK {ak_name} assigned by solver to start at {solver_start} "
+                            "is fixed to start at {slot_start}"
+                        ).format(
+                            ak_name=slot.ak.name,
+                            solver_start=start_timeslot.start,
+                            slot_start=slot.start,
+                        )
+                    )
+            else:
+                slot.room = Room.objects.get(id=int(scheduled_slot["room_id"]))
+                slot.start = start_timeslot.start
+                slot.save()
+                slots_updated += 1
 
-            slot.start = start_timeslot.start
-            slot.duration = (end_timeslot.end - start_timeslot.start).total_seconds() / 3600.0
-            slot.save()
+        return slots_updated
 
 class AKOwner(models.Model):
     """ An AKOwner describes the person organizing/holding an AK.
diff --git a/AKModel/views/manage.py b/AKModel/views/manage.py
index 1bad9534efd6fe81fa70ebf30fbdf84aad476967..3acb05fd29a6e91cd17f45e9ed43d889a67da22c 100644
--- a/AKModel/views/manage.py
+++ b/AKModel/views/manage.py
@@ -257,6 +257,18 @@ class AKScheduleJSONImportView(EventSlugMixin, IntermediateAdminView):
     title = _("AK Schedule JSON Import")
 
     def form_valid(self, form):
-        self.event.schedule_from_json(form.data["json_data"])
+        try:
+            number_of_slots_changed = self.event.schedule_from_json(form.data["json_data"])
+            messages.add_message(
+                self.request,
+                messages.SUCCESS,
+                _("Successfully imported {n} slot(s)").format(n=number_of_slots_changed)
+            )
+        except ValueError as ex:
+            messages.add_message(
+                self.request,
+                messages.ERROR,
+                _("Importing an AK schedule failed! Reason: ") + str(ex),
+            )
 
         return redirect("admin:event_status", self.event.slug)
diff --git a/AKScheduling/locale/de_DE/LC_MESSAGES/django.po b/AKScheduling/locale/de_DE/LC_MESSAGES/django.po
index e66d8d55bcda42f3271b2400d6b98cf84f64ee1d..1e391c1fa08573165d8d02636ffd40027437b583 100644
--- a/AKScheduling/locale/de_DE/LC_MESSAGES/django.po
+++ b/AKScheduling/locale/de_DE/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-25 00:24+0200\n"
+"POT-Creation-Date: 2025-01-22 19:00+0000\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"
@@ -27,7 +27,7 @@ msgstr "Ende"
 
 #: AKScheduling/forms.py:26
 msgid "Duration"
-msgstr ""
+msgstr "Dauer"
 
 #: AKScheduling/forms.py:27
 #: AKScheduling/templates/admin/AKScheduling/scheduling.html:171
@@ -107,6 +107,7 @@ msgid "Event Status"
 msgstr "Event-Status"
 
 #: AKScheduling/templates/admin/AKScheduling/constraint_violations.html:113
+#: AKScheduling/views.py:48
 msgid "Scheduling"
 msgstr "Scheduling"
 
@@ -239,6 +240,7 @@ msgstr[1] ""
 "        "
 
 #: AKScheduling/templates/admin/AKScheduling/unscheduled.html:7
+#: AKScheduling/views.py:25
 msgid "Unscheduled AK Slots"
 msgstr "Noch nicht geschedulte AK-Slots"
 
@@ -246,10 +248,22 @@ msgstr "Noch nicht geschedulte AK-Slots"
 msgid "Count"
 msgstr "Anzahl"
 
+#: AKScheduling/views.py:89
+msgid "Constraint violations for"
+msgstr "Constraintverletzungen für"
+
+#: AKScheduling/views.py:104
+msgid "AKs requiring special attention for"
+msgstr "AKs die besondere Aufmerksamkeit erfordern für"
+
 #: AKScheduling/views.py:150
 msgid "Interest updated"
 msgstr "Interesse aktualisiert"
 
+#: AKScheduling/views.py:157
+msgid "Enter interest"
+msgstr "Interesse eingeben"
+
 #: AKScheduling/views.py:201
 msgid "Wishes"
 msgstr "Wünsche"
diff --git a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po
index e8add44b31100539ff4a2b8311b40ffba14c4b8a..e524139c69295e6a85683b3ad2e114714bca7b21 100644
--- a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po
+++ b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-27 01:57+0000\n"
+"POT-Creation-Date: 2025-01-22 19:00+0000\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"
@@ -418,6 +418,10 @@ msgstr ""
 msgid "Currently planned AKs"
 msgstr "Aktuell geplante AKs"
 
+#: AKSubmission/views.py:231
+msgid "AKs with Track"
+msgstr "AK mit Track"
+
 #: AKSubmission/views.py:300
 msgid "Event inactive. Cannot create or update."
 msgstr "Event inaktiv. Hinzufügen/Bearbeiten nicht möglich."