diff --git a/AKModel/admin.py b/AKModel/admin.py
index a6aae5ae249182e80490221d7670952a018c3d89..a6e6b79ee4f152c0c8db0630d03b1f652fefddca 100644
--- a/AKModel/admin.py
+++ b/AKModel/admin.py
@@ -13,8 +13,8 @@ from django.utils.translation import gettext_lazy as _
 from rest_framework.reverse import reverse
 from simple_history.admin import SimpleHistoryAdmin
 
-from AKModel.availability.forms import AvailabilitiesFormMixin
 from AKModel.availability.models import Availability
+from AKModel.forms import RoomFormWithAvailabilities
 from AKModel.models import Event, AKOwner, AKCategory, AKTrack, AKRequirement, AK, AKSlot, Room, AKOrgaMessage, \
     ConstraintViolation, DefaultSlot
 from AKModel.urls import get_admin_urls_event_wizard, get_admin_urls_event
@@ -235,30 +235,6 @@ class AKAdmin(SimpleHistoryAdmin):
         return HttpResponseRedirect(f"{reverse_lazy('admin:ak-reset-interest-counter')}?pks={','.join(str(pk) for pk in selected)}")
 
 
-class RoomForm(AvailabilitiesFormMixin, forms.ModelForm):
-    class Meta:
-        model = Room
-        fields = ['name',
-                  'location',
-                  'capacity',
-                  'properties',
-                  'event',
-                  ]
-
-        widgets = {
-            'properties': forms.CheckboxSelectMultiple,
-        }
-
-    def __init__(self, *args, **kwargs):
-        # Init availability mixin
-        kwargs['initial'] = dict()
-        super().__init__(*args, **kwargs)
-        self.initial = {**self.initial, **kwargs['initial']}
-        # Filter possible values for m2m when event is specified
-        if hasattr(self.instance, "event") and self.instance.event is not None:
-            self.fields["properties"].queryset = AKRequirement.objects.filter(event=self.instance.event)
-
-
 @admin.register(Room)
 class RoomAdmin(admin.ModelAdmin):
     model = Room
@@ -268,9 +244,13 @@ class RoomAdmin(admin.ModelAdmin):
     ordering = ['location', 'name']
     change_form_template = "admin/AKModel/room_change_form.html"
 
+    def add_view(self, request, form_url='', extra_context=None):
+        # Use custom view for room creation (either room form or combined form if virtual rooms are supported)
+        return redirect("admin:room-new")
+
     def get_form(self, request, obj=None, change=False, **kwargs):
         if obj is not None:
-            return RoomForm
+            return RoomFormWithAvailabilities
         return super().get_form(request, obj, change, **kwargs)
 
     def formfield_for_foreignkey(self, db_field, request, **kwargs):
@@ -280,6 +260,18 @@ class RoomAdmin(admin.ModelAdmin):
             db_field, request, **kwargs
         )
 
+    def get_urls(self):
+        if apps.is_installed("AKOnline"):
+            from AKOnline.views import RoomCreationWithVirtualView as RoomCreationView
+        else:
+            from .views import RoomCreationView
+
+        urls = [
+            path('new/', self.admin_site.admin_view(RoomCreationView.as_view()), name="room-new"),
+        ]
+        urls.extend(super().get_urls())
+        return urls
+
 
 class AKSlotAdminForm(forms.ModelForm):
     def __init__(self, *args, **kwargs):
diff --git a/AKModel/forms.py b/AKModel/forms.py
index bfa327e8835cb0f8b32eb32575a60c0409b505a6..0ca5c1c5412ea92f117acf26f64a38a86a028eeb 100644
--- a/AKModel/forms.py
+++ b/AKModel/forms.py
@@ -6,7 +6,8 @@ from django import forms
 from django.forms.utils import ErrorList
 from django.utils.translation import gettext_lazy as _
 
-from AKModel.models import Event, AKCategory, AKRequirement
+from AKModel.availability.forms import AvailabilitiesFormMixin
+from AKModel.models import Event, AKCategory, AKRequirement, Room
 
 
 class NewEventWizardStartForm(forms.ModelForm):
@@ -148,3 +149,37 @@ class RoomBatchCreationForm(AdminIntermediateForm):
             raise forms.ValidationError(_("CSV must contain a name column"))
 
         return rooms_raw_dict
+
+
+class RoomForm(forms.ModelForm):
+    class Meta:
+        model = Room
+        fields = ['name',
+                  'location',
+                  'capacity',
+                  'event',
+                  ]
+
+
+class RoomFormWithAvailabilities(AvailabilitiesFormMixin, RoomForm):
+    class Meta:
+        model = Room
+        fields = ['name',
+                  'location',
+                  'capacity',
+                  'properties',
+                  'event',
+                  ]
+
+        widgets = {
+            'properties': forms.CheckboxSelectMultiple,
+        }
+
+    def __init__(self, *args, **kwargs):
+        # Init availability mixin
+        kwargs['initial'] = dict()
+        super().__init__(*args, **kwargs)
+        self.initial = {**self.initial, **kwargs['initial']}
+        # Filter possible values for m2m when event is specified
+        if hasattr(self.instance, "event") and self.instance.event is not None:
+            self.fields["properties"].queryset = AKRequirement.objects.filter(event=self.instance.event)
diff --git a/AKModel/locale/de_DE/LC_MESSAGES/django.po b/AKModel/locale/de_DE/LC_MESSAGES/django.po
index b33558d0ecaa0d7f0c73aebfc07e2af2bc3deec6..2c101f90249bcf4daa1b5fec826f38d6b2bcc87d 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: 2023-01-01 20:05+0100\n"
+"POT-Creation-Date: 2023-03-24 17:57+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"
@@ -25,11 +25,11 @@ msgstr "Status"
 msgid "Toggle plan visibility"
 msgstr "Plansichtbarkeit ändern"
 
-#: AKModel/admin.py:73 AKModel/admin.py:84 AKModel/views.py:496
+#: AKModel/admin.py:73 AKModel/admin.py:84 AKModel/views.py:497
 msgid "Publish plan"
 msgstr "Plan veröffentlichen"
 
-#: AKModel/admin.py:76 AKModel/admin.py:89 AKModel/views.py:506
+#: AKModel/admin.py:76 AKModel/admin.py:89 AKModel/views.py:507
 msgid "Unpublish plan"
 msgstr "Plan verbergen"
 
@@ -53,27 +53,27 @@ 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:227 AKModel/views.py:476
+#: AKModel/admin.py:227 AKModel/views.py:477
 msgid "Reset interest in AKs"
 msgstr "Interesse an AKs zurücksetzen"
 
-#: AKModel/admin.py:232 AKModel/views.py:486
+#: AKModel/admin.py:232 AKModel/views.py:487
 msgid "Reset AKs' interest counters"
 msgstr "Interessenszähler der AKs zurücksetzen"
 
-#: AKModel/admin.py:316 AKModel/admin.py:323
+#: AKModel/admin.py:308 AKModel/admin.py:315
 msgid "AK Details"
 msgstr "AK-Details"
 
-#: AKModel/admin.py:375 AKModel/views.py:446
+#: AKModel/admin.py:367 AKModel/views.py:447
 msgid "Mark Constraint Violations as manually resolved"
 msgstr "Markiere Constraintverletzungen als manuell behoben"
 
-#: AKModel/admin.py:380 AKModel/views.py:456
+#: AKModel/admin.py:372 AKModel/views.py:457
 msgid "Set Constraint Violations to level \"violation\""
 msgstr "Constraintverletzungen auf Level \"Violation\" setzen"
 
-#: AKModel/admin.py:385 AKModel/views.py:466
+#: AKModel/admin.py:377 AKModel/views.py:467
 msgid "Set Constraint Violations to level \"warning\""
 msgstr "Constraintverletzungen auf Level \"Warning\" setzen"
 
@@ -103,16 +103,16 @@ msgid "Please fill in your availabilities!"
 msgstr "Bitte Verfügbarkeiten eintragen!"
 
 #: AKModel/availability/models.py:38 AKModel/models.py:56 AKModel/models.py:128
-#: AKModel/models.py:183 AKModel/models.py:202 AKModel/models.py:220
-#: AKModel/models.py:273 AKModel/models.py:338 AKModel/models.py:371
-#: AKModel/models.py:442 AKModel/models.py:483 AKModel/models.py:648
+#: AKModel/models.py:183 AKModel/models.py:202 AKModel/models.py:223
+#: AKModel/models.py:276 AKModel/models.py:341 AKModel/models.py:374
+#: AKModel/models.py:445 AKModel/models.py:486 AKModel/models.py:651
 msgid "Event"
 msgstr "Event"
 
 #: AKModel/availability/models.py:39 AKModel/models.py:129
-#: AKModel/models.py:184 AKModel/models.py:203 AKModel/models.py:221
-#: AKModel/models.py:274 AKModel/models.py:339 AKModel/models.py:372
-#: AKModel/models.py:443 AKModel/models.py:484 AKModel/models.py:649
+#: AKModel/models.py:184 AKModel/models.py:203 AKModel/models.py:224
+#: AKModel/models.py:277 AKModel/models.py:342 AKModel/models.py:375
+#: AKModel/models.py:446 AKModel/models.py:487 AKModel/models.py:652
 msgid "Associated event"
 msgstr "Zugehöriges Event"
 
@@ -124,8 +124,8 @@ msgstr "Person"
 msgid "Person whose availability this is"
 msgstr "Person deren Verfügbarkeit hier abgebildet wird"
 
-#: AKModel/availability/models.py:56 AKModel/models.py:342
-#: AKModel/models.py:361 AKModel/models.py:492
+#: AKModel/availability/models.py:56 AKModel/models.py:345
+#: AKModel/models.py:364 AKModel/models.py:495
 msgid "Room"
 msgstr "Raum"
 
@@ -133,8 +133,8 @@ msgstr "Raum"
 msgid "Room whose availability this is"
 msgstr "Raum dessen Verfügbarkeit hier abgebildet wird"
 
-#: AKModel/availability/models.py:65 AKModel/models.py:282
-#: AKModel/models.py:360 AKModel/models.py:437
+#: AKModel/availability/models.py:65 AKModel/models.py:285
+#: AKModel/models.py:363 AKModel/models.py:440
 msgid "AK"
 msgstr "AK"
 
@@ -143,7 +143,7 @@ msgid "AK whose availability this is"
 msgstr "Verfügbarkeiten"
 
 #: AKModel/availability/models.py:74 AKModel/models.py:187
-#: AKModel/models.py:498
+#: AKModel/models.py:501
 msgid "AK Category"
 msgstr "AK-Kategorie"
 
@@ -155,56 +155,56 @@ msgstr "AK-Kategorie, deren Verfügbarkeit hier abgebildet wird"
 msgid "Availabilities"
 msgstr "Verfügbarkeiten"
 
-#: AKModel/forms.py:42
+#: AKModel/forms.py:43
 msgid "Copy ak requirements and ak categories of existing event"
 msgstr "AK-Anforderungen und AK-Kategorien eines existierenden Events kopieren"
 
-#: AKModel/forms.py:43
+#: AKModel/forms.py:44
 msgid "You can choose what to copy in the next step"
 msgstr ""
 "Im nächsten Schritt kann ausgewählt werden, was genau kopiert werden soll"
 
-#: AKModel/forms.py:51
+#: AKModel/forms.py:52
 msgid "Copy ak categories"
 msgstr "AK-Kategorien kopieren"
 
-#: AKModel/forms.py:58
+#: AKModel/forms.py:59
 msgid "Copy ak requirements"
 msgstr "AK-Anforderungen kopieren"
 
-#: AKModel/forms.py:79
+#: AKModel/forms.py:80
 msgid "Copy dashboard buttons"
 msgstr "Dashboard-Buttons kopieren"
 
-#: AKModel/forms.py:103
+#: AKModel/forms.py:104
 msgid "# next AKs"
 msgstr "# nächste AKs"
 
-#: AKModel/forms.py:104
+#: AKModel/forms.py:105
 msgid "How many next AKs should be shown on a slide?"
 msgstr "Wie viele nächste AKs sollen auf einer Folie angezeigt werden?"
 
-#: AKModel/forms.py:107
+#: AKModel/forms.py:108
 msgid "Presentation only?"
 msgstr "Nur Vorstellung?"
 
-#: AKModel/forms.py:109 AKModel/forms.py:116
+#: AKModel/forms.py:110 AKModel/forms.py:117
 msgid "Yes"
 msgstr "Ja"
 
-#: AKModel/forms.py:109 AKModel/forms.py:116
+#: AKModel/forms.py:110 AKModel/forms.py:117
 msgid "No"
 msgstr "Nein"
 
-#: AKModel/forms.py:111
+#: AKModel/forms.py:112
 msgid "Restrict AKs to those that asked for chance to be presented?"
 msgstr "AKs auf solche, die um eine Vorstellung gebeten haben, einschränken?"
 
-#: AKModel/forms.py:114
+#: AKModel/forms.py:115
 msgid "Space for notes in wishes?"
 msgstr "Platz für Notizen bei den Wünschen?"
 
-#: AKModel/forms.py:118
+#: AKModel/forms.py:119
 msgid ""
 "Create symbols indicating space to note down owners and timeslots for "
 "wishes, e.g., to be filled out on a touch screen while presenting?"
@@ -213,11 +213,11 @@ msgstr ""
 "fürWünsche markieren, z.B. um während der Präsentation auf einem Touchscreen "
 "ausgefüllt zu werden?"
 
-#: AKModel/forms.py:124 AKModel/models.py:642
+#: AKModel/forms.py:125 AKModel/models.py:645
 msgid "Default Slots"
 msgstr "Standardslots"
 
-#: AKModel/forms.py:126
+#: AKModel/forms.py:127
 msgid ""
 "Click and drag to add default slots, double-click to delete. Or use the "
 "start and end inputs to add entries to the calendar view."
@@ -226,11 +226,11 @@ msgstr ""
 "Einträge zu löschen. Oder Start- und End-Eingabe verwenden, um der "
 "Kalenderansicht neue Einträge hinzuzufügen."
 
-#: AKModel/forms.py:136
+#: AKModel/forms.py:137
 msgid "New rooms"
 msgstr "Neue Räume"
 
-#: AKModel/forms.py:137
+#: AKModel/forms.py:138
 msgid ""
 "Enter room details in CSV format. Required colum is \"name\", optional "
 "colums are \"location\", \"capacity\", and \"url\" for online/hybrid rooms. "
@@ -240,12 +240,12 @@ msgstr ""
 "Spalten sind \"location\", \"capacity\", und \"url\" for Online-/"
 "HybridräumeTrennzeichen: Semikolon"
 
-#: AKModel/forms.py:148
+#: AKModel/forms.py:149
 msgid "CSV must contain a name column"
 msgstr "CSV muss eine name-Spalte enthalten"
 
 #: AKModel/models.py:18 AKModel/models.py:175 AKModel/models.py:199
-#: AKModel/models.py:218 AKModel/models.py:236 AKModel/models.py:330
+#: AKModel/models.py:221 AKModel/models.py:239 AKModel/models.py:333
 msgid "Name"
 msgstr "Name"
 
@@ -279,7 +279,7 @@ msgstr "Zeitzone"
 msgid "Time Zone where this event takes place in"
 msgstr "Zeitzone in der das Event stattfindet"
 
-#: AKModel/models.py:27 AKModel/views.py:252
+#: AKModel/models.py:27 AKModel/views.py:253
 msgid "Start"
 msgstr "Start"
 
@@ -411,7 +411,7 @@ msgstr "Instutution"
 msgid "Uni etc."
 msgstr "Universität o.ä."
 
-#: AKModel/models.py:126 AKModel/models.py:245
+#: AKModel/models.py:126 AKModel/models.py:248
 msgid "Web Link"
 msgstr "Internet Link"
 
@@ -419,7 +419,7 @@ msgstr "Internet Link"
 msgid "Link to Homepage"
 msgstr "Link zu Homepage oder Webseite"
 
-#: AKModel/models.py:132 AKModel/models.py:491
+#: AKModel/models.py:132 AKModel/models.py:494
 msgid "AK Owner"
 msgstr "AK-Leitung"
 
@@ -439,7 +439,7 @@ msgstr "Farbe"
 msgid "Color for displaying"
 msgstr "Farbe für die Anzeige"
 
-#: AKModel/models.py:177 AKModel/models.py:239
+#: AKModel/models.py:177 AKModel/models.py:242
 msgid "Description"
 msgstr "Beschreibung"
 
@@ -475,116 +475,116 @@ msgstr "AK-Track"
 msgid "AK Tracks"
 msgstr "AK-Tracks"
 
-#: AKModel/models.py:218
+#: AKModel/models.py:221
 msgid "Name of the Requirement"
 msgstr "Name der Anforderung"
 
-#: AKModel/models.py:224 AKModel/models.py:495
+#: AKModel/models.py:227 AKModel/models.py:498
 msgid "AK Requirement"
 msgstr "AK-Anforderung"
 
-#: AKModel/models.py:225
+#: AKModel/models.py:228
 msgid "AK Requirements"
 msgstr "AK-Anforderungen"
 
-#: AKModel/models.py:236
+#: AKModel/models.py:239
 msgid "Name of the AK"
 msgstr "Name des AKs"
 
-#: AKModel/models.py:237
+#: AKModel/models.py:240
 msgid "Short Name"
 msgstr "Kurzer Name"
 
-#: AKModel/models.py:238
+#: AKModel/models.py:241
 msgid "Name displayed in the schedule"
 msgstr "Name zur Anzeige im AK-Plan"
 
-#: AKModel/models.py:239
+#: AKModel/models.py:242
 msgid "Description of the AK"
 msgstr "Beschreibung des AKs"
 
-#: AKModel/models.py:241
+#: AKModel/models.py:244
 msgid "Owners"
 msgstr "Leitungen"
 
-#: AKModel/models.py:242
+#: AKModel/models.py:245
 msgid "Those organizing the AK"
 msgstr "Menschen, die den AK organisieren und halten"
 
-#: AKModel/models.py:245
+#: AKModel/models.py:248
 msgid "Link to wiki page"
 msgstr "Link zur Wiki Seite"
 
-#: AKModel/models.py:246
+#: AKModel/models.py:249
 msgid "Protocol Link"
 msgstr "Protokolllink"
 
-#: AKModel/models.py:246
+#: AKModel/models.py:249
 msgid "Link to protocol"
 msgstr "Link zum Protokoll"
 
-#: AKModel/models.py:248
+#: AKModel/models.py:251
 msgid "Category"
 msgstr "Kategorie"
 
-#: AKModel/models.py:249
+#: AKModel/models.py:252
 msgid "Category of the AK"
 msgstr "Kategorie des AKs"
 
-#: AKModel/models.py:250
+#: AKModel/models.py:253
 msgid "Track"
 msgstr "Track"
 
-#: AKModel/models.py:251
+#: AKModel/models.py:254
 msgid "Track the AK belongs to"
 msgstr "Track zu dem der AK gehört"
 
-#: AKModel/models.py:253
+#: AKModel/models.py:256
 msgid "Resolution Intention"
 msgstr "Resolutionsabsicht"
 
-#: AKModel/models.py:254
+#: AKModel/models.py:257
 msgid "Intends to submit a resolution"
 msgstr "Beabsichtigt eine Resolution einzureichen"
 
-#: AKModel/models.py:255
+#: AKModel/models.py:258
 msgid "Present this AK"
 msgstr "AK präsentieren"
 
-#: AKModel/models.py:256
+#: AKModel/models.py:259
 msgid "Present results of this AK"
 msgstr "Die Ergebnisse dieses AKs vorstellen"
 
-#: AKModel/models.py:258 AKModel/templates/admin/AKModel/status.html:105
+#: AKModel/models.py:261 AKModel/templates/admin/AKModel/status.html:105
 msgid "Requirements"
 msgstr "Anforderungen"
 
-#: AKModel/models.py:259
+#: AKModel/models.py:262
 msgid "AK's Requirements"
 msgstr "Anforderungen des AKs"
 
-#: AKModel/models.py:261
+#: AKModel/models.py:264
 msgid "Conflicting AKs"
 msgstr "AK-Konflikte"
 
-#: AKModel/models.py:262
+#: AKModel/models.py:265
 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:263
+#: AKModel/models.py:266
 msgid "Prerequisite AKs"
 msgstr "Vorausgesetzte AKs"
 
-#: AKModel/models.py:264
+#: AKModel/models.py:267
 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:266
+#: AKModel/models.py:269
 msgid "Organizational Notes"
 msgstr "Notizen zur Organisation"
 
-#: AKModel/models.py:267
+#: AKModel/models.py:270
 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/"
@@ -594,287 +594,287 @@ msgstr ""
 "Anmerkungen bitte den Button für Direktnachrichten verwenden (nach dem "
 "Anlegen/Bearbeiten)."
 
-#: AKModel/models.py:269
+#: AKModel/models.py:272
 msgid "Interest"
 msgstr "Interesse"
 
-#: AKModel/models.py:269
+#: AKModel/models.py:272
 msgid "Expected number of people"
 msgstr "Erwartete Personenzahl"
 
-#: AKModel/models.py:270
+#: AKModel/models.py:273
 msgid "Interest Counter"
 msgstr "Interessenszähler"
 
-#: AKModel/models.py:271
+#: AKModel/models.py:274
 msgid "People who have indicated interest online"
 msgstr "Anzahl Personen, die online Interesse bekundet haben"
 
-#: AKModel/models.py:276
+#: AKModel/models.py:279
 msgid "Export?"
 msgstr "Export?"
 
-#: AKModel/models.py:277
+#: AKModel/models.py:280
 msgid "Include AK in wiki export?"
 msgstr "AK bei Wiki-Export berücksichtigen?"
 
-#: AKModel/models.py:283 AKModel/models.py:486
+#: AKModel/models.py:286 AKModel/models.py:489
 #: AKModel/templates/admin/AKModel/status.html:57
-#: AKModel/templates/admin/AKModel/status.html:64 AKModel/views.py:374
+#: AKModel/templates/admin/AKModel/status.html:64 AKModel/views.py:375
 msgid "AKs"
 msgstr "AKs"
 
-#: AKModel/models.py:330
+#: AKModel/models.py:333
 msgid "Name or number of the room"
 msgstr "Name oder Nummer des Raums"
 
-#: AKModel/models.py:331
+#: AKModel/models.py:334
 msgid "Location"
 msgstr "Ort"
 
-#: AKModel/models.py:332
+#: AKModel/models.py:335
 msgid "Name or number of the location"
 msgstr "Name oder Nummer des Ortes"
 
-#: AKModel/models.py:333
+#: AKModel/models.py:336
 msgid "Capacity"
 msgstr "Kapazität"
 
-#: AKModel/models.py:334
+#: AKModel/models.py:337
 msgid "Maximum number of people (-1 for unlimited)."
 msgstr "Maximale Personenzahl (-1 wenn unbeschränkt)."
 
-#: AKModel/models.py:335
+#: AKModel/models.py:338
 msgid "Properties"
 msgstr "Eigenschaften"
 
-#: AKModel/models.py:336
+#: AKModel/models.py:339
 msgid "AK requirements fulfilled by the room"
 msgstr "AK-Anforderungen, die dieser Raum erfüllt"
 
-#: AKModel/models.py:343 AKModel/templates/admin/AKModel/status.html:40
+#: AKModel/models.py:346 AKModel/templates/admin/AKModel/status.html:40
 msgid "Rooms"
 msgstr "Räume"
 
-#: AKModel/models.py:360
+#: AKModel/models.py:363
 msgid "AK being mapped"
 msgstr "AK, der zugeordnet wird"
 
-#: AKModel/models.py:362
+#: AKModel/models.py:365
 msgid "Room the AK will take place in"
 msgstr "Raum in dem der AK stattfindet"
 
-#: AKModel/models.py:363 AKModel/models.py:645
+#: AKModel/models.py:366 AKModel/models.py:648
 msgid "Slot Begin"
 msgstr "Beginn des Slots"
 
-#: AKModel/models.py:363 AKModel/models.py:645
+#: AKModel/models.py:366 AKModel/models.py:648
 msgid "Time and date the slot begins"
 msgstr "Zeit und Datum zu der der AK beginnt"
 
-#: AKModel/models.py:365
+#: AKModel/models.py:368
 msgid "Duration"
 msgstr "Dauer"
 
-#: AKModel/models.py:366
+#: AKModel/models.py:369
 msgid "Length in hours"
 msgstr "Länge in Stunden"
 
-#: AKModel/models.py:368
+#: AKModel/models.py:371
 msgid "Scheduling fixed"
 msgstr "Planung fix"
 
-#: AKModel/models.py:369
+#: AKModel/models.py:372
 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:374
+#: AKModel/models.py:377
 msgid "Last update"
 msgstr "Letzte Aktualisierung"
 
-#: AKModel/models.py:377
+#: AKModel/models.py:380
 msgid "AK Slot"
 msgstr "AK-Slot"
 
-#: AKModel/models.py:378 AKModel/models.py:488
+#: AKModel/models.py:381 AKModel/models.py:491
 msgid "AK Slots"
 msgstr "AK-Slot"
 
-#: AKModel/models.py:400 AKModel/models.py:409
+#: AKModel/models.py:403 AKModel/models.py:412
 msgid "Not scheduled yet"
 msgstr "Noch nicht geplant"
 
-#: AKModel/models.py:438
+#: AKModel/models.py:441
 msgid "AK this message belongs to"
 msgstr "AK zu dem die Nachricht gehört"
 
-#: AKModel/models.py:439
+#: AKModel/models.py:442
 msgid "Message text"
 msgstr "Nachrichtentext"
 
-#: AKModel/models.py:440
+#: AKModel/models.py:443
 msgid "Message to the organizers. This is not publicly visible."
 msgstr ""
 "Nachricht an die Organisator*innen. Diese ist nicht öffentlich sichtbar."
 
-#: AKModel/models.py:446
+#: AKModel/models.py:449
 msgid "AK Orga Message"
 msgstr "AK-Organachricht"
 
-#: AKModel/models.py:447
+#: AKModel/models.py:450
 msgid "AK Orga Messages"
 msgstr "AK-Organachrichten"
 
-#: AKModel/models.py:456
+#: AKModel/models.py:459
 msgid "Constraint Violation"
 msgstr "Constraintverletzung"
 
-#: AKModel/models.py:457 AKModel/templates/admin/AKModel/status.html:87
+#: AKModel/models.py:460 AKModel/templates/admin/AKModel/status.html:87
 msgid "Constraint Violations"
 msgstr "Constraintverletzungen"
 
-#: AKModel/models.py:461
+#: AKModel/models.py:464
 msgid "Owner has two parallel slots"
 msgstr "Leitung hat zwei Slots parallel"
 
-#: AKModel/models.py:462
+#: AKModel/models.py:465
 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:463
+#: AKModel/models.py:466
 msgid "Room has two AK slots scheduled at the same time"
 msgstr "Raum hat zwei AK Slots gleichzeitig"
 
-#: AKModel/models.py:464
+#: AKModel/models.py:467
 msgid "Room does not satisfy the requirement of the scheduled AK"
 msgstr "Room erfüllt die Anforderungen des platzierten AKs nicht"
 
-#: AKModel/models.py:465
+#: AKModel/models.py:468
 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:466
+#: AKModel/models.py:469
 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:468
+#: AKModel/models.py:471
 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:469
+#: AKModel/models.py:472
 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:470
+#: AKModel/models.py:473
 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:471
+#: AKModel/models.py:474
 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:472
+#: AKModel/models.py:475
 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:475
+#: AKModel/models.py:478
 msgid "Warning"
 msgstr "Warnung"
 
-#: AKModel/models.py:476
+#: AKModel/models.py:479
 msgid "Violation"
 msgstr "Verletzung"
 
-#: AKModel/models.py:478
+#: AKModel/models.py:481
 msgid "Type"
 msgstr "Art"
 
-#: AKModel/models.py:479
+#: AKModel/models.py:482
 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:480
+#: AKModel/models.py:483
 msgid "Level"
 msgstr "Level"
 
-#: AKModel/models.py:481
+#: AKModel/models.py:484
 msgid "Severity level of the violation"
 msgstr "Schweregrad der Verletzung"
 
-#: AKModel/models.py:487
+#: AKModel/models.py:490
 msgid "AK(s) belonging to this constraint"
 msgstr "AK(s), die zu diesem Constraint gehören"
 
-#: AKModel/models.py:489
+#: AKModel/models.py:492
 msgid "AK Slot(s) belonging to this constraint"
 msgstr "AK Slot(s), die zu diesem Constraint gehören"
 
-#: AKModel/models.py:491
+#: AKModel/models.py:494
 msgid "AK Owner belonging to this constraint"
 msgstr "AK Leitung(en), die zu diesem Constraint gehören"
 
-#: AKModel/models.py:493
+#: AKModel/models.py:496
 msgid "Room belonging to this constraint"
 msgstr "Raum, der zu diesem Constraint gehört"
 
-#: AKModel/models.py:496
+#: AKModel/models.py:499
 msgid "AK Requirement belonging to this constraint"
 msgstr "AK Anforderung, die zu diesem Constraint gehört"
 
-#: AKModel/models.py:498
+#: AKModel/models.py:501
 msgid "AK Category belonging to this constraint"
 msgstr "AK Kategorie, di zu diesem Constraint gehört"
 
-#: AKModel/models.py:500
+#: AKModel/models.py:503
 msgid "Comment"
 msgstr "Kommentar"
 
-#: AKModel/models.py:500
+#: AKModel/models.py:503
 msgid "Comment or further details for this violation"
 msgstr "Kommentar oder weitere Details zu dieser Vereletzung"
 
-#: AKModel/models.py:503
+#: AKModel/models.py:506
 msgid "Timestamp"
 msgstr "Timestamp"
 
-#: AKModel/models.py:503
+#: AKModel/models.py:506
 msgid "Time of creation"
 msgstr "Zeitpunkt der ERstellung"
 
-#: AKModel/models.py:504
+#: AKModel/models.py:507
 msgid "Manually Resolved"
 msgstr "Manuell behoben"
 
-#: AKModel/models.py:505
+#: AKModel/models.py:508
 msgid "Mark this violation manually as resolved"
 msgstr "Markiere diese Verletzung manuell als behoben"
 
-#: AKModel/models.py:532
+#: AKModel/models.py:535
 #: AKModel/templates/admin/AKModel/requirements_overview.html:27
 msgid "Details"
 msgstr "Details"
 
-#: AKModel/models.py:641
+#: AKModel/models.py:644
 msgid "Default Slot"
 msgstr "Standardslot"
 
-#: AKModel/models.py:646
+#: AKModel/models.py:649
 msgid "Slot End"
 msgstr "Ende des Slots"
 
-#: AKModel/models.py:646
+#: AKModel/models.py:649
 msgid "Time and date the slot ends"
 msgstr "Zeit und Datum zu der der Slot endet"
 
-#: AKModel/models.py:651
+#: AKModel/models.py:654
 msgid "Primary categories"
 msgstr "Primäre Kategorien"
 
-#: AKModel/models.py:652
+#: AKModel/models.py:655
 msgid "Categories that should be assigned to this slot primarily"
 msgstr "Kategorieren, die diesem Slot primär zugewiesen werden sollen"
 
@@ -882,20 +882,20 @@ msgstr "Kategorieren, die diesem Slot primär zugewiesen werden sollen"
 msgid "Administration"
 msgstr "Verwaltung"
 
-#: AKModel/templates/AKModel/user.html:31
+#: AKModel/templates/AKModel/user.html:23
 msgid "Hello"
 msgstr "Hallo"
 
-#: AKModel/templates/AKModel/user.html:34
+#: AKModel/templates/AKModel/user.html:26
 msgid "Go to backend"
 msgstr "Zum Backend"
 
-#: AKModel/templates/AKModel/user.html:37
+#: AKModel/templates/AKModel/user.html:29
 msgid "Please wait for an administrator to confirm your account"
 msgstr ""
 "Bitte warte darauf, dass ein*e Administrator*in deinen Account bestätigt"
 
-#: AKModel/templates/AKModel/user.html:40
+#: AKModel/templates/AKModel/user.html:32
 msgid "Logout"
 msgstr "Ausloggen"
 
@@ -907,6 +907,7 @@ msgstr "Bestätigen"
 #: AKModel/templates/admin/AKModel/event_wizard/import.html:24
 #: AKModel/templates/admin/AKModel/event_wizard/settings.html:29
 #: AKModel/templates/admin/AKModel/event_wizard/start.html:23
+#: AKModel/templates/admin/AKModel/room_create.html:30
 msgid "Cancel"
 msgstr "Abbrechen"
 
@@ -925,7 +926,7 @@ msgid "Successfully imported.<br><br>Do you want to activate your event now?"
 msgstr "Erfolgreich importiert.<br><br>Soll das Event jetzt aktiviert werden?"
 
 #: AKModel/templates/admin/AKModel/event_wizard/activate.html:27
-#: AKModel/views.py:257
+#: AKModel/views.py:258
 msgid "Finish"
 msgstr "Abschluss"
 
@@ -994,6 +995,23 @@ msgstr "Kein AK mit dieser Anforderung"
 msgid "Add Requirement"
 msgstr "Anforderung hinzufügen"
 
+#: AKModel/templates/admin/AKModel/room_create.html:9
+#: AKModel/templates/admin/AKModel/room_create.html:12
+msgid "Create room"
+msgstr "Raum anlegen"
+
+#: AKModel/templates/admin/AKModel/room_create.html:20
+msgid "Save and add another"
+msgstr "Sichern und neu hinzufügen"
+
+#: AKModel/templates/admin/AKModel/room_create.html:23
+msgid "Save and continue editing"
+msgstr "Sichern und weiter bearbeiten"
+
+#: AKModel/templates/admin/AKModel/room_create.html:26
+msgid "Save"
+msgstr "Sichern"
+
 #: AKModel/templates/admin/AKModel/status.html:18
 msgid "Plan published?"
 msgstr "Plan veröffentlicht?"
@@ -1018,7 +1036,7 @@ msgstr "Bisher keine Räume"
 msgid "Add Room"
 msgstr "Raum hinzufügen"
 
-#: AKModel/templates/admin/AKModel/status.html:55 AKModel/views.py:593
+#: AKModel/templates/admin/AKModel/status.html:55 AKModel/views.py:613
 msgid "Import Rooms from CSV"
 msgstr "Räume aus CSV importieren"
 
@@ -1047,7 +1065,7 @@ msgstr "AKs, die besondere Aufmerksamkeit benötigen"
 msgid "Enter Interest"
 msgstr "Interesse erfassen"
 
-#: AKModel/templates/admin/AKModel/status.html:94 AKModel/views.py:518
+#: AKModel/templates/admin/AKModel/status.html:94 AKModel/views.py:519
 msgid "Edit Default Slots"
 msgstr "Standardslots bearbeiten"
 
@@ -1063,7 +1081,7 @@ msgstr "AKs als CSV exportieren"
 msgid "Export AKs for Wiki"
 msgstr "AKs im Wiki-Format exportieren"
 
-#: AKModel/templates/admin/AKModel/status.html:102 AKModel/views.py:344
+#: AKModel/templates/admin/AKModel/status.html:102 AKModel/views.py:345
 msgid "Export AK Slides"
 msgstr "AK-Folien exportieren"
 
@@ -1116,162 +1134,167 @@ msgstr "Login"
 msgid "Register"
 msgstr "Registrieren"
 
-#: AKModel/views.py:155
+#: AKModel/views.py:156
 msgid "Event Status"
 msgstr "Eventstatus"
 
-#: AKModel/views.py:168
+#: AKModel/views.py:169
 msgid "Requirements for Event"
 msgstr "Anforderungen für das Event"
 
-#: AKModel/views.py:182
+#: AKModel/views.py:183
 msgid "AK CSV Export"
 msgstr "AK-CSV-Export"
 
-#: AKModel/views.py:196
+#: AKModel/views.py:197
 msgid "AK Wiki Export"
 msgstr "AK-Wiki-Export"
 
-#: AKModel/views.py:207 AKModel/views.py:360
+#: AKModel/views.py:208 AKModel/views.py:361
 msgid "Wishes"
 msgstr "Wünsche"
 
-#: AKModel/views.py:228
+#: AKModel/views.py:229
 msgid "Delete AK Orga Messages"
 msgstr "AK-Organachrichten löschen"
 
-#: AKModel/views.py:243
+#: AKModel/views.py:244
 msgid "AK Orga Messages successfully deleted"
 msgstr "AK-Organachrichten erfolgreich gelöscht"
 
-#: AKModel/views.py:253
+#: AKModel/views.py:254
 msgid "Settings"
 msgstr "Einstellungen"
 
-#: AKModel/views.py:254
+#: AKModel/views.py:255
 msgid "Event created, Prepare Import"
 msgstr "Event angelegt, Import vorbereiten"
 
-#: AKModel/views.py:255
+#: AKModel/views.py:256
 msgid "Import categories & requirements"
 msgstr "Kategorien & Anforderungen kopieren"
 
-#: AKModel/views.py:256
+#: AKModel/views.py:257
 msgid "Activate?"
 msgstr "Aktivieren?"
 
-#: AKModel/views.py:319
+#: AKModel/views.py:320
 #, python-format
 msgid "Copied '%(obj)s'"
 msgstr "'%(obj)s' kopiert"
 
-#: AKModel/views.py:322
+#: AKModel/views.py:323
 #, python-format
 msgid "Could not copy '%(obj)s' (%(error)s)"
 msgstr "'%(obj)s' konnte nicht kopiert werden (%(error)s)"
 
-#: AKModel/views.py:355
+#: AKModel/views.py:356
 msgid "Symbols"
 msgstr "Symbole"
 
-#: AKModel/views.py:356
+#: AKModel/views.py:357
 msgid "Who?"
 msgstr "Wer?"
 
-#: AKModel/views.py:357
+#: AKModel/views.py:358
 msgid "Duration(s)"
 msgstr "Dauer(n)"
 
-#: AKModel/views.py:358
+#: AKModel/views.py:359
 msgid "Reso intention?"
 msgstr "Resolutionsabsicht?"
 
-#: AKModel/views.py:359
+#: AKModel/views.py:360
 msgid "Category (for Wishes)"
 msgstr "Kategorie (für Wünsche)"
 
-#: AKModel/views.py:448
+#: AKModel/views.py:449
 msgid "The following Constraint Violations will be marked as manually resolved"
 msgstr ""
 "Die folgenden Constraintverletzungen werden als manuell behoben markiert."
 
-#: AKModel/views.py:449
+#: AKModel/views.py:450
 msgid "Constraint Violations marked as resolved"
 msgstr "Constraintverletzungen als manuell behoben markiert"
 
-#: AKModel/views.py:458
+#: AKModel/views.py:459
 msgid "The following Constraint Violations will be set to level 'violation'"
 msgstr ""
 "Die folgenden Constraintverletzungen werden auf das Level \"Violation\" "
 "gesetzt."
 
-#: AKModel/views.py:459
+#: AKModel/views.py:460
 msgid "Constraint Violations set to level 'violation'"
 msgstr "Constraintverletzungen auf Level \"Violation\" gesetzt"
 
-#: AKModel/views.py:468
+#: AKModel/views.py:469
 msgid "The following Constraint Violations will be set to level 'warning'"
 msgstr ""
 "Die folgenden Constraintverletzungen werden auf das Level 'warning' gesetzt."
 
-#: AKModel/views.py:469
+#: AKModel/views.py:470
 msgid "Constraint Violations set to level 'warning'"
 msgstr "Constraintverletzungen auf Level \"Warning\" gesetzt"
 
-#: AKModel/views.py:478
+#: AKModel/views.py:479
 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.py:479
+#: AKModel/views.py:480
 msgid "Reset of interest in AKs successful."
 msgstr "Interesse an AKs erfolgreich zurückgesetzt."
 
-#: AKModel/views.py:488
+#: AKModel/views.py:489
 msgid "Interest counter of the following AKs will be set to 0:"
 msgstr "Interessensbekundungszähler der folgenden AKs wird auf 0 gesetzt:"
 
-#: AKModel/views.py:489
+#: AKModel/views.py:490
 msgid "AKs' interest counters set back to 0."
 msgstr "Interessenszähler der AKs zurückgesetzt"
 
-#: AKModel/views.py:498
+#: AKModel/views.py:499
 msgid "Publish the plan(s) of:"
 msgstr "Den Plan/die Pläne veröffentlichen von:"
 
-#: AKModel/views.py:499
+#: AKModel/views.py:500
 msgid "Plan published"
 msgstr "Plan veröffentlicht"
 
-#: AKModel/views.py:508
+#: AKModel/views.py:509
 msgid "Unpublish the plan(s) of:"
 msgstr "Den Plan/die Pläne verbergen von:"
 
-#: AKModel/views.py:509
+#: AKModel/views.py:510
 msgid "Plan unpublished"
 msgstr "Plan verborgen"
 
-#: AKModel/views.py:555
+#: AKModel/views.py:556
 #, python-brace-format
 msgid "Could not update slot {id} since it does not belong to {event}"
 msgstr ""
 "Konnte  Slot {id} nicht bearbeiten, da er nicht zum Event {event} gehört"
 
-#: AKModel/views.py:585
+#: AKModel/views.py:586
 #, python-brace-format
 msgid "Updated {u} slot(s). created {c} new slot(s) and deleted {d} slot(s)"
 msgstr ""
 "{u} Slot(s) aktualisiert, {c} Slot(s) hinzugefügt und {d} Slot(s) gelöscht"
 
-#: AKModel/views.py:628
+#: AKModel/views.py:607
+#, python-format
+msgid "Created Room '%(room)s'"
+msgstr "Raum '%(room)s angelegt"
+
+#: AKModel/views.py:644
 #, python-brace-format
 msgid "Could not import room {name}: {e}"
 msgstr "Konnte Raum {name} nicht importieren: {e}"
 
-#: AKModel/views.py:632
+#: AKModel/views.py:648
 #, python-brace-format
 msgid "Imported {count} room(s)"
 msgstr "{count} Raum/Räume importiert"
 
-#: AKModel/views.py:634
+#: AKModel/views.py:650
 msgid "No rooms imported"
 msgstr "Keine Räume importiert"
diff --git a/AKModel/templates/admin/AKModel/room_create.html b/AKModel/templates/admin/AKModel/room_create.html
new file mode 100644
index 0000000000000000000000000000000000000000..f933b5303c54616aa4695c708de2e1b620d3d57e
--- /dev/null
+++ b/AKModel/templates/admin/AKModel/room_create.html
@@ -0,0 +1,33 @@
+{% extends "admin/base_site.html" %}
+{% load tags_AKModel %}
+
+{% load i18n %}
+{% load django_bootstrap5 %}
+{% load fontawesome_6 %}
+
+
+{% block title %}{% trans "Create room" %}{% endblock %}
+
+{% block content %}
+    <h2>{% trans "Create room" %}</h2>
+    <form method="post">{% csrf_token %}
+        {% block form_details %}
+            {% bootstrap_form form %}
+        {% endblock %}
+
+        <div class="float-end">
+            <button type="submit" name="save_action" class="save btn btn-secondary" value="save_add_another">
+                {% fa6_icon "plus" 'fas' %} {% trans "Save and add another" %}
+            </button>
+            <button type="submit" name="save_action" class="save btn btn-secondary" value="save_continue">
+                {% fa6_icon "pen" 'fas' %} {% trans "Save and continue editing" %}
+            </button>
+            <button type="submit" name="save_action" class="save btn btn-primary" value="save">
+                {% fa6_icon "check" 'fas' %} {% trans "Save" %}
+            </button>
+        </div>
+        <a href="javascript:history.back()" class="btn btn-info">
+            {% fa6_icon "times" 'fas' %} {% trans "Cancel" %}
+        </a>
+    </form>
+{% endblock %}
diff --git a/AKModel/views.py b/AKModel/views.py
index 68da9f431e43e61fdd48df32f311e7420ea669c4..3d4e56320752caf9be34fb8874326a587ea48a74 100644
--- a/AKModel/views.py
+++ b/AKModel/views.py
@@ -10,6 +10,7 @@ import django.db
 from django.apps import apps
 from django.contrib import admin, messages
 from django.db.models.functions import Now
+from django.http import HttpResponseRedirect
 from django.shortcuts import get_object_or_404, redirect
 from django.urls import reverse_lazy, reverse
 from django.utils.dateparse import parse_datetime
@@ -21,7 +22,7 @@ from rest_framework import viewsets, permissions, mixins
 
 from AKModel.forms import NewEventWizardStartForm, NewEventWizardSettingsForm, NewEventWizardPrepareImportForm, \
     NewEventWizardImportForm, NewEventWizardActivateForm, AdminIntermediateForm, SlideExportForm, \
-    AdminIntermediateActionForm, DefaultSlotEditorForm, RoomBatchCreationForm
+    AdminIntermediateActionForm, DefaultSlotEditorForm, RoomBatchCreationForm, RoomForm
 from AKModel.models import Event, AK, AKSlot, Room, AKTrack, AKCategory, AKOwner, AKOrgaMessage, AKRequirement, \
     ConstraintViolation, DefaultSlot
 from AKModel.serializers import AKSerializer, AKSlotSerializer, RoomSerializer, AKTrackSerializer, AKCategorySerializer, \
@@ -588,6 +589,25 @@ class DefaultSlotEditorView(EventSlugMixin, IntermediateAdminView):
         return super().form_valid(form)
 
 
+class RoomCreationView(AdminViewMixin, CreateView):
+    form_class = RoomForm
+    template_name = 'admin/AKModel/room_create.html'
+
+    def get_success_url(self):
+        print(self.request.POST['save_action'])
+        if self.request.POST['save_action'] == 'save_add_another':
+            return reverse_lazy('admin:room-new')
+        elif self.request.POST['save_action'] == 'save_continue':
+            return reverse_lazy('admin:AKModel_room_change', kwargs={'object_id': self.room.pk})
+        else:
+            return reverse_lazy('admin:AKModel_room_changelist')
+
+    def form_valid(self, form):
+        self.room = form.save()
+        messages.success(self.request, _("Created Room '%(room)s'" % {'room': self.room}))
+        return HttpResponseRedirect(self.get_success_url())
+
+
 class RoomBatchCreationView(EventSlugMixin, IntermediateAdminView):
     form_class = RoomBatchCreationForm
     title = _("Import Rooms from CSV")
@@ -611,17 +631,13 @@ class RoomBatchCreationView(EventSlugMixin, IntermediateAdminView):
             capacity = raw_room["capacity"] if "capacity" in rooms_raw_dict.fieldnames else -1
 
             try:
+                r = Room.objects.create(name=name,
+                                    location=location,
+                                    capacity=capacity,
+                                    event=self.event)
                 if virtual_rooms_support and raw_room["url"] != "":
-                    VirtualRoom.objects.create(name=name,
-                                               location=location,
-                                               capacity=capacity,
-                                               url=raw_room["url"],
-                                               event=self.event)
-                else:
-                    Room.objects.create(name=name,
-                                        location=location,
-                                        capacity=capacity,
-                                        event=self.event)
+                    VirtualRoom.objects.create(room=r,
+                                               url=raw_room["url"])
                 created_count += 1
             except django.db.Error as e:
                 messages.add_message(self.request, messages.WARNING,
diff --git a/AKOnline/admin.py b/AKOnline/admin.py
index a6d94333a73726516c705d3c00e90c6e220b0b9f..69f4bed71466a3d8fa84341a3c6fedf05ccb8428 100644
--- a/AKOnline/admin.py
+++ b/AKOnline/admin.py
@@ -1,26 +1,17 @@
 from django.contrib import admin
 
-from AKModel.admin import RoomAdmin, RoomForm
 from AKOnline.models import VirtualRoom
 
 
-class VirtualRoomForm(RoomForm):
-    class Meta(RoomForm.Meta):
-        model = VirtualRoom
-        fields = ['name',
-                  'location',
-                  'url',
-                  'capacity',
-                  'properties',
-                  'event',
-                  ]
-
-
 @admin.register(VirtualRoom)
-class VirtualRoomAdmin(RoomAdmin):
+class VirtualRoomAdmin(admin.ModelAdmin):
     model = VirtualRoom
+    list_display = ['room', 'event', 'url']
+    list_filter = ['room__event']
 
-    def get_form(self, request, obj=None, change=False, **kwargs):
-        if obj is not None:
-            return VirtualRoomForm
-        return super().get_form(request, obj, change, **kwargs)
+    def get_readonly_fields(self, request, obj=None):
+        # Don't allow changing the room on existing virtual rooms
+        # Instead, a link to the room editing form will be displayed automatically
+        if obj:
+            return self.readonly_fields + ('room', )
+        return self.readonly_fields
diff --git a/AKOnline/forms.py b/AKOnline/forms.py
new file mode 100644
index 0000000000000000000000000000000000000000..bf33b9c4eb3366fb9ea61fe0f2d1867bfa96277f
--- /dev/null
+++ b/AKOnline/forms.py
@@ -0,0 +1,38 @@
+from betterforms.multiform import MultiModelForm
+from django.forms import ModelForm
+
+from AKModel.forms import RoomForm
+from AKOnline.models import VirtualRoom
+
+
+class VirtualRoomForm(ModelForm):
+    class Meta:
+        model = VirtualRoom
+        exclude = ['room']
+
+    def __init__(self, *args, **kwargs):
+        super(VirtualRoomForm, self).__init__(*args, **kwargs)
+        self.fields['url'].required = False
+
+
+class RoomWithVirtualForm(MultiModelForm):
+    form_classes = {
+        'room': RoomForm,
+        'virtual': VirtualRoomForm
+    }
+
+    def save(self, commit=True):
+        objects = super(RoomWithVirtualForm, self).save(commit=False)
+
+        if commit:
+            room = objects['room']
+            room.save()
+
+            virtual = objects['virtual']
+            if virtual.url != "":
+                virtual.room = room
+                virtual.save()
+            else:
+                objects['virtual'] = None
+
+        return objects
diff --git a/AKOnline/locale/de_DE/LC_MESSAGES/django.po b/AKOnline/locale/de_DE/LC_MESSAGES/django.po
new file mode 100644
index 0000000000000000000000000000000000000000..94047231f59ee7d730d6385199930514f73e2239
--- /dev/null
+++ b/AKOnline/locale/de_DE/LC_MESSAGES/django.po
@@ -0,0 +1,53 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-03-24 18:01+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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: AKOnline/models.py:11
+msgid "URL"
+msgstr "URL"
+
+#: AKOnline/models.py:11
+msgid "URL to the room or server"
+msgstr "URL zum Raum oder Server"
+
+#: AKOnline/models.py:12
+msgid "Room"
+msgstr "Raum"
+
+#: AKOnline/models.py:16
+#: AKOnline/templates/admin/AKOnline/room_create_with_virtual.html:10
+msgid "Virtual Room"
+msgstr "Virtueller Raum"
+
+#: AKOnline/models.py:17
+msgid "Virtual Rooms"
+msgstr "Virtuelle Räume"
+
+#: AKOnline/templates/admin/AKOnline/room_create_with_virtual.html:11
+msgid "Leave empty if that room is not virtual/hybrid."
+msgstr "Leer lassen wenn der Raum nicht virtuell/hybrid ist"
+
+#: AKOnline/views.py:16
+#, python-format
+msgid "Created Room '%(room)s'"
+msgstr "Raum '%(room)s' angelegt"
+
+#: AKOnline/views.py:18
+#, python-format
+msgid "Created related Virtual Room '%(vroom)s'"
+msgstr "Verbundenen virtuellen Raum '%(vroom)s' angelegt"
diff --git a/AKOnline/migrations/0001_virtualroom_new.py b/AKOnline/migrations/0001_virtualroom_new.py
new file mode 100644
index 0000000000000000000000000000000000000000..941441d43d1d4aa6f8e257da9711bcd042753fd8
--- /dev/null
+++ b/AKOnline/migrations/0001_virtualroom_new.py
@@ -0,0 +1,30 @@
+# Generated by Django 4.1.5 on 2023-03-22 12:22
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    replaces = [('AKOnline', '0001_AKOnline'), ('AKOnline', '0002_rework_virtual'), ('AKOnline', '0003_rework_virtual_2'), ('AKOnline', '0004_rework_virtual_3'), ('AKOnline', '0005_rework_virtual_4')]
+
+    initial = True
+
+    dependencies = [
+        ('AKModel', '0033_AKOnline'),
+        ('AKModel', '0057_upgrades'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='VirtualRoom',
+            fields=[
+                ('room', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, related_name='virtual', serialize=False, to='AKModel.room', verbose_name='Room')),
+                ('url', models.URLField(blank=True, help_text='URL to the room or server', verbose_name='URL')),
+            ],
+            options={
+                'verbose_name': 'Virtual Room',
+                'verbose_name_plural': 'Virtual Rooms',
+            },
+        ),
+    ]
diff --git a/AKOnline/migrations/0002_rework_virtual.py b/AKOnline/migrations/0002_rework_virtual.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b4d69be7ea26d89723c869a8838486cb62ead2d
--- /dev/null
+++ b/AKOnline/migrations/0002_rework_virtual.py
@@ -0,0 +1,19 @@
+# Generated by Django 4.1.5 on 2023-03-21 23:14
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('AKModel', '0057_upgrades'),
+        ('AKOnline', '0001_AKOnline'),
+    ]
+
+    operations = [
+        migrations.RenameModel(
+            'VirtualRoom',
+            'VirtualRoomOld'
+        ),
+
+    ]
diff --git a/AKOnline/migrations/0003_rework_virtual_2.py b/AKOnline/migrations/0003_rework_virtual_2.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a996bdff873aa76bde244e39391cde198058501
--- /dev/null
+++ b/AKOnline/migrations/0003_rework_virtual_2.py
@@ -0,0 +1,27 @@
+# Generated by Django 4.1.5 on 2023-03-21 23:16
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('AKOnline', '0002_rework_virtual'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='VirtualRoom',
+            fields=[
+                ('room', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True,
+                                              related_name='virtual', serialize=False, to='AKModel.room',
+                                              verbose_name='Room')),
+                ('url', models.URLField(blank=True, help_text='URL to the room or server', verbose_name='URL')),
+            ],
+            options={
+                'verbose_name': 'Virtual Room',
+                'verbose_name_plural': 'Virtual Rooms',
+            },
+        ),
+    ]
diff --git a/AKOnline/migrations/0004_rework_virtual_3.py b/AKOnline/migrations/0004_rework_virtual_3.py
new file mode 100644
index 0000000000000000000000000000000000000000..b92d61a4ea8a4c07991e3d96e08fd189690efee8
--- /dev/null
+++ b/AKOnline/migrations/0004_rework_virtual_3.py
@@ -0,0 +1,28 @@
+# Generated by Django 4.1.5 on 2023-03-21 23:21
+
+from django.db import migrations
+
+
+
+class Migration(migrations.Migration):
+
+    atomic = False
+
+    dependencies = [
+        ('AKOnline', '0003_rework_virtual_2'),
+    ]
+
+    def copy_rooms(apps, schema_editor):
+        VirtualRoomOld = apps.get_model('AKOnline', 'VirtualRoomOld')
+        VirtualRoom = apps.get_model('AKOnline', 'VirtualRoom')
+        for row in VirtualRoomOld.objects.all():
+            v = VirtualRoom(room_id=row.pk, url=row.url)
+            v.save()
+
+    operations = [
+        migrations.RunPython(
+            copy_rooms,
+            reverse_code=migrations.RunPython.noop,
+            elidable=True,
+        )
+    ]
diff --git a/AKOnline/migrations/0005_rework_virtual_4.py b/AKOnline/migrations/0005_rework_virtual_4.py
new file mode 100644
index 0000000000000000000000000000000000000000..1c5d2eae3ff5407d82f9f6509aada34c8aa1f78f
--- /dev/null
+++ b/AKOnline/migrations/0005_rework_virtual_4.py
@@ -0,0 +1,16 @@
+# Generated by Django 4.1.5 on 2023-03-21 23:41
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('AKOnline', '0004_rework_virtual_3'),
+    ]
+
+    operations = [
+        migrations.DeleteModel(
+            name='VirtualRoomOld',
+        ),
+    ]
diff --git a/AKOnline/models.py b/AKOnline/models.py
index c3496b01a719293920496c7b6432144114c71bf3..dad360cb42df6b602a99d9366b514a0d5ee5d912 100644
--- a/AKOnline/models.py
+++ b/AKOnline/models.py
@@ -4,11 +4,21 @@ from django.utils.translation import gettext_lazy as _
 from AKModel.models import Event, Room
 
 
-class VirtualRoom(Room):
-    """ A virtual room where an AK can be held.
+class VirtualRoom(models.Model):
+    """
+    Add details about a virtual or hybrid version of a room to it
     """
     url = models.URLField(verbose_name=_("URL"), help_text=_("URL to the room or server"), blank=True)
+    room = models.OneToOneField(Room, verbose_name=_("Room"), on_delete=models.CASCADE,
+                                related_name='virtual', primary_key=True)
 
     class Meta:
         verbose_name = _('Virtual Room')
         verbose_name_plural = _('Virtual Rooms')
+
+    @property
+    def event(self):
+        return self.room.event
+
+    def __str__(self):
+        return f"{self.room.title}: {self.url}"
diff --git a/AKOnline/templates/admin/AKOnline/room_create_with_virtual.html b/AKOnline/templates/admin/AKOnline/room_create_with_virtual.html
new file mode 100644
index 0000000000000000000000000000000000000000..d7e8d73b8de95bd85cdf4c2affe1ad8b2e9427e4
--- /dev/null
+++ b/AKOnline/templates/admin/AKOnline/room_create_with_virtual.html
@@ -0,0 +1,13 @@
+{% extends "admin/AKModel/room_create.html" %}
+{% load tags_AKModel %}
+
+{% load i18n %}
+{% load django_bootstrap5 %}
+
+{% block form_details %}
+    {% bootstrap_form form.room %}
+
+    <h3>{% trans "Virtual Room" %}</h3>
+    <p>{% trans "Leave empty if that room is not virtual/hybrid." %}</p>
+    {% bootstrap_form form.virtual %}
+{% endblock %}
diff --git a/AKOnline/views.py b/AKOnline/views.py
index 60f00ef0ef347811e7b0c0921b7fda097acd9fcc..44855eb41fa6f8562f6f65addcd7008e8fdfd0bd 100644
--- a/AKOnline/views.py
+++ b/AKOnline/views.py
@@ -1 +1,19 @@
-# Create your views here.
+from django.contrib import messages
+from django.http import HttpResponseRedirect
+from django.utils.translation import gettext_lazy as _
+
+from AKModel.views import AdminViewMixin, RoomCreationView
+from AKOnline.forms import RoomWithVirtualForm
+
+
+class RoomCreationWithVirtualView(RoomCreationView):
+    form_class = RoomWithVirtualForm
+    template_name = 'admin/AKOnline/room_create_with_virtual.html'
+
+    def form_valid(self, form):
+        objects = form.save()
+        self.room = objects['room']
+        messages.success(self.request, _("Created Room '%(room)s'" % {'room': objects['room']}))
+        if objects['virtual'] is not None:
+            messages.success(self.request, _("Created related Virtual Room '%(vroom)s'" % {'vroom': objects['virtual']}))
+        return HttpResponseRedirect(self.get_success_url())
diff --git a/AKPlan/templates/AKPlan/plan_room.html b/AKPlan/templates/AKPlan/plan_room.html
index 6620a5d7a26e946ac1b5d45ac473015baffdfcfa..430fd9b04246b984a4d9a8d42c6c2876cd16d1d5 100644
--- a/AKPlan/templates/AKPlan/plan_room.html
+++ b/AKPlan/templates/AKPlan/plan_room.html
@@ -58,8 +58,8 @@
 
     <h1>{% trans "Room" %}: {{ room.name }} {% if room.location != '' %}({{ room.location }}){% endif %}</h1>
 
-    {% if "AKOnline"|check_app_installed and room.virtualroom and room.virtualroom.url != '' %}
-        <a class="btn btn-success" target="_parent" href="{{ room.virtualroom.url }}">
+    {% if "AKOnline"|check_app_installed and room.virtual and room.virtual.url != '' %}
+        <a class="btn btn-success" target="_parent" href="{{ room.virtual.url }}">
             {% fa6_icon 'external-link-alt' 'fas' %} {% trans "Go to virtual room" %}
         </a>
     {% endif %}
diff --git a/AKSubmission/templates/AKSubmission/ak_detail.html b/AKSubmission/templates/AKSubmission/ak_detail.html
index 4cb54ebe422248ac89f0cca195f5549f6c87db66..eba22297893250349fdeed865637925fe9145400 100644
--- a/AKSubmission/templates/AKSubmission/ak_detail.html
+++ b/AKSubmission/templates/AKSubmission/ak_detail.html
@@ -144,8 +144,8 @@
                     {% endblocktrans %}
                 {% endif %}
 
-                {% if "AKOnline"|check_app_installed and featured_slot.room.virtualroom and featured_slot.room.virtualroom.url != '' %}
-                    <a class="btn btn-success" target="_parent" href="{{ featured_slot.room.virtualroom.url }}">
+                {% if "AKOnline"|check_app_installed and featured_slot.room.virtual and featured_slot.room.virtual.url != '' %}
+                    <a class="btn btn-success" target="_parent" href="{{ featured_slot.room.virtual.url }}">
                         {% fa6_icon 'external-link-alt' 'fas' %} {% trans "Go to virtual room" %}
                     </a>
                 {% endif %}
@@ -272,8 +272,8 @@
                                data-bs-toggle="tooltip" title="{% trans 'Delete' %}"
                                class="btn btn-danger">{% fa6_icon 'times' 'fas' %}</a>
                         {% else %}
-                            {% if "AKOnline"|check_app_installed and slot.room and slot.room.virtualroom and slot.room.virtualroom.url != '' %}
-                                <a class="btn btn-success" target="_parent" href="{{ slot.room.virtualroom.url }}">
+                            {% if "AKOnline"|check_app_installed and slot.room and slot.room.virtual and slot.room.virtual.url != '' %}
+                                <a class="btn btn-success" target="_parent" href="{{ slot.room.virtual.url }}">
                                     {% fa6_icon 'external-link-alt' 'fas' %} {% trans "Go to virtual room" %}
                                 </a>
                             {% endif %}
diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po
index 81ce51b66a37793d98e2e8091de4b90ad7d487e5..c23cd0ff9d9bc192a7d7685f644495a66180344b 100644
--- a/locale/de_DE/LC_MESSAGES/django.po
+++ b/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: 2022-08-15 18:26+0000\n"
+"POT-Creation-Date: 2023-03-24 18:01+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"
@@ -18,38 +18,1262 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: AKOnline/models.py:10
+#: templates/base.html:43
+msgid ""
+"Are you sure you want to change the language now? This will clear the form!"
+msgstr "Wirklich jetzt die Sprache ändern? Das wird das Formular zurücksetzen!"
+
+#: templates/base.html:108
+msgid "Go to backend"
+msgstr "Zum Backend"
+
+#: templates/base.html:114
+msgid "Impress"
+msgstr "Impressum"
+
+#: templates/base.html:117
+msgid "This software is open source"
+msgstr "Diese Software ist Open Source"
+
+#: venv-windows/Lib/site-packages/_pytest/config/argparsing.py:474
+#, python-format
+msgid "ambiguous option: %(option)s could match %(matches)s"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/bootstrap4/components.py:17
+#: venv-windows/Lib/site-packages/bootstrap4/templates/bootstrap4/form_errors.html:3
+#: venv-windows/Lib/site-packages/bootstrap4/templates/bootstrap4/messages.html:4
+#: venv-windows/Lib/site-packages/django_bootstrap5/components.py:26
+msgid "close"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/contrib/messages/apps.py:15
+msgid "Messages"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/contrib/sitemaps/apps.py:8
+msgid "Site Maps"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/contrib/staticfiles/apps.py:9
+msgid "Static Files"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/contrib/syndication/apps.py:7
+msgid "Syndication"
+msgstr ""
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+#: venv-windows/Lib/site-packages/django/core/paginator.py:30
+msgid "…"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/paginator.py:50
+msgid "That page number is not an integer"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/paginator.py:52
+msgid "That page number is less than 1"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/paginator.py:57
+msgid "That page contains no results"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:22
+msgid "Enter a valid value."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:104
+#: venv-windows/Lib/site-packages/django/forms/fields.py:751
+msgid "Enter a valid URL."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:164
+msgid "Enter a valid integer."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:175
+msgid "Enter a valid email address."
+msgstr ""
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+#: venv-windows/Lib/site-packages/django/core/validators.py:256
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:264
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:276
+#: venv-windows/Lib/site-packages/django/core/validators.py:284
+#: venv-windows/Lib/site-packages/django/core/validators.py:313
+msgid "Enter a valid IPv4 address."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:293
+#: venv-windows/Lib/site-packages/django/core/validators.py:314
+msgid "Enter a valid IPv6 address."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:305
+#: venv-windows/Lib/site-packages/django/core/validators.py:312
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:348
+msgid "Enter only digits separated by commas."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:354
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:389
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:398
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:407
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:417
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:435
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:458
+#: venv-windows/Lib/site-packages/django/forms/fields.py:347
+#: venv-windows/Lib/site-packages/django/forms/fields.py:386
+msgid "Enter a number."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:460
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:465
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:470
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:539
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/core/validators.py:600
+msgid "Null characters are not allowed."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/base.py:1401
+#: venv-windows/Lib/site-packages/django/forms/models.py:899
+msgid "and"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/base.py:1403
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/constraints.py:17
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:129
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:130
+msgid "This field cannot be null."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:131
+msgid "This field cannot be blank."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:132
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr ""
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:136
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:174
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1065
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1066
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1068
+msgid "Boolean (Either True or False)"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1118
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1222
+msgid "Comma-separated integers"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1323
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1327
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1462
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1331
+msgid "Date (without time)"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1458
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1466
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1471
+msgid "Date (with time)"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1595
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1597
+msgid "Decimal number"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1754
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1758
+msgid "Duration"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1810
+msgid "Email address"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1835
+msgid "File path"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1913
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1915
+msgid "Floating point number"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1955
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:1957
+msgid "Integer"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2049
+msgid "Big (8 byte) integer"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2066
+msgid "Small integer"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2074
+msgid "IPv4 address"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2105
+msgid "IP address"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2198
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2199
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2201
+msgid "Boolean (Either True, False or None)"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2252
+msgid "Positive big integer"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2267
+msgid "Positive integer"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2282
+msgid "Positive small integer"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2298
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2334
+msgid "Text"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2409
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2413
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2417
+msgid "Time"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2525
 msgid "URL"
 msgstr "URL"
 
-#: AKOnline/models.py:10
-msgid "URL to the room or server"
-msgstr "URL zum Raum/Server"
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2549
+msgid "Raw binary data"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2614
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/__init__.py:2616
+msgid "Universally unique identifier"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/files.py:232
+msgid "File"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/files.py:392
+msgid "Image"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/json.py:18
+msgid "A JSON object"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/json.py:20
+msgid "Value must be valid JSON."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/related.py:920
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/related.py:922
+msgid "Foreign Key (type determined by related field)"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/related.py:1229
+msgid "One-to-one relationship"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/related.py:1286
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/related.py:1288
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/db/models/fields/related.py:1336
+msgid "Many-to-many relationship"
+msgstr ""
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the label
+#: venv-windows/Lib/site-packages/django/forms/boundfield.py:176
+msgid ":?.!"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:91
+msgid "This field is required."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:298
+msgid "Enter a whole number."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:467
+#: venv-windows/Lib/site-packages/django/forms/fields.py:1240
+msgid "Enter a valid date."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:490
+#: venv-windows/Lib/site-packages/django/forms/fields.py:1241
+msgid "Enter a valid time."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:517
+msgid "Enter a valid date/time."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:551
+msgid "Enter a valid duration."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:552
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:618
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:619
+msgid "No file was submitted."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:620
+msgid "The submitted file is empty."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:622
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:627
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:693
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:856
+#: venv-windows/Lib/site-packages/django/forms/fields.py:948
+#: venv-windows/Lib/site-packages/django/forms/models.py:1572
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:950
+#: venv-windows/Lib/site-packages/django/forms/fields.py:1069
+#: venv-windows/Lib/site-packages/django/forms/models.py:1570
+msgid "Enter a list of values."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:1070
+msgid "Enter a complete value."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:1309
+msgid "Enter a valid UUID."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/fields.py:1339
+msgid "Enter a valid JSON."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+#: venv-windows/Lib/site-packages/django/forms/forms.py:98
+msgid ":"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/forms.py:248
+#: venv-windows/Lib/site-packages/django/forms/forms.py:332
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/formsets.py:63
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/formsets.py:67
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/forms/formsets.py:72
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/forms/formsets.py:483
+#: venv-windows/Lib/site-packages/django/forms/formsets.py:490
+msgid "Order"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/formsets.py:496
+msgid "Delete"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/models.py:892
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/models.py:897
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/models.py:904
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/models.py:913
+msgid "Please correct the duplicate values below."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/models.py:1344
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/models.py:1435
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/models.py:1574
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/utils.py:226
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/widgets.py:439
+msgid "Clear"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/widgets.py:440
+msgid "Currently"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/widgets.py:441
+msgid "Change"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/widgets.py:770
+msgid "Unknown"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/widgets.py:771
+msgid "Yes"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/forms/widgets.py:772
+msgid "No"
+msgstr ""
+
+#. Translators: Please do not add spaces around commas.
+#: venv-windows/Lib/site-packages/django/template/defaultfilters.py:853
+msgid "yes,no,maybe"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/template/defaultfilters.py:883
+#: venv-windows/Lib/site-packages/django/template/defaultfilters.py:900
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/template/defaultfilters.py:902
+#, python-format
+msgid "%s KB"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/template/defaultfilters.py:904
+#, python-format
+msgid "%s MB"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/template/defaultfilters.py:906
+#, python-format
+msgid "%s GB"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/template/defaultfilters.py:908
+#, python-format
+msgid "%s TB"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/template/defaultfilters.py:910
+#, python-format
+msgid "%s PB"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dateformat.py:77
+msgid "p.m."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dateformat.py:78
+msgid "a.m."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dateformat.py:83
+msgid "PM"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dateformat.py:84
+msgid "AM"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dateformat.py:155
+msgid "midnight"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dateformat.py:157
+msgid "noon"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:7
+msgid "Monday"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:8
+msgid "Tuesday"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:9
+msgid "Wednesday"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:10
+msgid "Thursday"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:11
+msgid "Friday"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:12
+msgid "Saturday"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:13
+msgid "Sunday"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:16
+msgid "Mon"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:17
+msgid "Tue"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:18
+msgid "Wed"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:19
+msgid "Thu"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:20
+msgid "Fri"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:21
+msgid "Sat"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:22
+msgid "Sun"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:25
+msgid "January"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:26
+msgid "February"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:27
+msgid "March"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:28
+msgid "April"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:29
+msgid "May"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:30
+msgid "June"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:31
+msgid "July"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:32
+msgid "August"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:33
+msgid "September"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:34
+msgid "October"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:35
+msgid "November"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:36
+msgid "December"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:39
+msgid "jan"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:40
+msgid "feb"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:41
+msgid "mar"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:42
+msgid "apr"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:43
+msgid "may"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:44
+msgid "jun"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:45
+msgid "jul"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:46
+msgid "aug"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:47
+msgid "sep"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:48
+msgid "oct"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:49
+msgid "nov"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:50
+msgid "dec"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:53
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:54
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:55
+msgctxt "abbrev. month"
+msgid "March"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:56
+msgctxt "abbrev. month"
+msgid "April"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:57
+msgctxt "abbrev. month"
+msgid "May"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:58
+msgctxt "abbrev. month"
+msgid "June"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:59
+msgctxt "abbrev. month"
+msgid "July"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:60
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:61
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:62
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:63
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr ""
 
-#: AKOnline/models.py:13
-msgid "Virtual Room"
-msgstr "Virtueller Raum"
+#: venv-windows/Lib/site-packages/django/utils/dates.py:64
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:67
+msgctxt "alt. month"
+msgid "January"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:68
+msgctxt "alt. month"
+msgid "February"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:69
+msgctxt "alt. month"
+msgid "March"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:70
+msgctxt "alt. month"
+msgid "April"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:71
+msgctxt "alt. month"
+msgid "May"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:72
+msgctxt "alt. month"
+msgid "June"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:73
+msgctxt "alt. month"
+msgid "July"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:74
+msgctxt "alt. month"
+msgid "August"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:75
+msgctxt "alt. month"
+msgid "September"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:76
+msgctxt "alt. month"
+msgid "October"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:77
+msgctxt "alt. month"
+msgid "November"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/dates.py:78
+msgctxt "alt. month"
+msgid "December"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/ipv6.py:8
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/text.py:76
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/text.py:252
+msgid "or"
+msgstr ""
+
+#. Translators: This string is used as a separator between list elements
+#: venv-windows/Lib/site-packages/django/utils/text.py:271
+#: venv-windows/Lib/site-packages/django/utils/timesince.py:94
+msgid ", "
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/utils/timesince.py:9
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/utils/timesince.py:10
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/utils/timesince.py:11
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/utils/timesince.py:12
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/utils/timesince.py:13
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/utils/timesince.py:14
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: venv-windows/Lib/site-packages/django/views/csrf.py:111
+msgid "Forbidden"
+msgstr ""
 
-#: AKOnline/models.py:14
-msgid "Virtual Rooms"
-msgstr "Virtuelle Räume"
+#: venv-windows/Lib/site-packages/django/views/csrf.py:112
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
 
-#: templates/base.html:29
+#: venv-windows/Lib/site-packages/django/views/csrf.py:116
 msgid ""
-"Are you sure you want to change the language now? This will clear the form!"
-msgstr "Wirklich jetzt die Sprache ändern? Das wird das Formular zurücksetzen!"
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
 
-#: templates/base.html:94
-msgid "Go to backend"
-msgstr "Zum Backend"
+#: venv-windows/Lib/site-packages/django/views/csrf.py:122
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
 
-#: templates/base.html:100
-msgid "Impress"
-msgstr "Impressum"
+#: venv-windows/Lib/site-packages/django/views/csrf.py:127
+msgid ""
+"If you are using the <meta name=\"referrer\" content=\"no-referrer\"> tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like <a rel=\"noreferrer"
+"\" …> for links to third-party sites."
+msgstr ""
 
-#: templates/base.html:103
-msgid "This software is open source"
-msgstr "Diese Software ist Open Source"
+#: venv-windows/Lib/site-packages/django/views/csrf.py:136
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/csrf.py:142
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/csrf.py:148
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:44
+msgid "No year specified"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:64
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:115
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:214
+msgid "Date out of range"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:94
+msgid "No month specified"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:147
+msgid "No day specified"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:194
+msgid "No week specified"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:349
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:380
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:652
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/dates.py:692
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/detail.py:56
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/list.py:70
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/list.py:77
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/generic/list.py:169
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/static.py:38
+msgid "Directory indexes are not allowed here."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/static.py:40
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/static.py:79
+#, python-format
+msgid "Index of %(directory)s"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:7
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:221
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:207
+#, python-format
+msgid ""
+"View <a href=\"https://docs.djangoproject.com/en/%(version)s/releases/\" "
+"target=\"_blank\" rel=\"noopener\">release notes</a> for Django %(version)s"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:222
+#, python-format
+msgid ""
+"You are seeing this page because <a href=\"https://docs.djangoproject.com/en/"
+"%(version)s/ref/settings/#debug\" target=\"_blank\" rel=\"noopener"
+"\">DEBUG=True</a> is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:230
+msgid "Django Documentation"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:231
+msgid "Topics, references, &amp; how-to’s"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:239
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:240
+msgid "Get started with Django"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:248
+msgid "Django Community"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django/views/templates/default_urlconf.html:249
+msgid "Connect, get help, or contribute"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/django_tex/models.py:12
+msgid "Template not found."
+msgstr ""
+
+#: venv-windows/Lib/site-packages/fontawesome_5/fields.py:16
+#: venv-windows/Lib/site-packages/fontawesome_6/fields.py:16
+msgid "A fontawesome icon field"
+msgstr ""
+
+#: venv-windows/Lib/site-packages/timezone_field/rest_framework.py:12
+msgid "A valid timezone is required."
+msgstr ""
+
+#~ msgid "URL to the room or server"
+#~ msgstr "URL zum Raum/Server"
+
+#~ msgid "Room"
+#~ msgstr "Raum"
+
+#~ msgid "Virtual Room"
+#~ msgstr "Virtueller Raum"
+
+#~ msgid "Virtual Rooms"
+#~ msgstr "Virtuelle Räume"
 
 #~ msgid "Scheduling for"
 #~ msgstr "Scheduling für"
@@ -66,9 +1290,6 @@ msgstr "Diese Software ist Open Source"
 #~ msgid "Event (Vertical)"
 #~ msgstr "Event (vertikal)"
 
-#~ msgid "Room"
-#~ msgstr "Raum"
-
 #~ msgid "Event Status"
 #~ msgstr "Event-Status"
 
diff --git a/requirements.txt b/requirements.txt
index 43194a7d775cb80054a7ca31e24bbd3e81707b35..64081f5febaae4aa1a8285a926181f590da5546e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -13,5 +13,6 @@ django-tex==1.1.10
 django-csp==3.7
 django-compressor==4.1
 django-libsass==0.9
+django-betterforms==2.0.0
 mysqlclient==2.1.1  # for production deployment
 tzdata==2022.7