diff --git a/src/app/pages/booking-input-page/booking-input-page.component.html b/src/app/pages/booking-input-page/booking-input-page.component.html
index 2526b705daa6280ada87bec6cb915645ac71053d..af773d576be82246330b2662d07dfc2469c24cd7 100644
--- a/src/app/pages/booking-input-page/booking-input-page.component.html
+++ b/src/app/pages/booking-input-page/booking-input-page.component.html
@@ -27,59 +27,52 @@
       <div class="flex flex-col items-center w-full">
         <p-calendar
           inputId="calendar-24h"
-          [(ngModel)]="datetime24h"
           [showTime]="true"
           [inline]="true"
           [hourFormat]="String(24)"
           styleClass="w-full"
-          (ngModelChange)="synchronizeDateTime()"
         ></p-calendar>
       </div>
     </div>
-
-    <!-- Datum und Zeit Eingabe -->
-    <div class="lg:w-1/2 lg:pl-4">
-      <div class="mb-4">
-        <label for="date" class="block text-gray-700 font-medium mb-2">Datum</label>
-        <p-calendar
-          [(ngModel)]="date"
-          dateFormat="dd/mm/yy"
-          id="date"
-          class="w-full p-2 border border-gray-300 rounded-md"
-          showIcon="true"
-          inputStyleClass="w-full p-2 border border-gray-300 rounded-md"
-        ></p-calendar>
+    <form [formGroup]="timeDateForm">
+      <!-- Datum und Zeit Eingabe -->
+      <div class="lg:w-1/2 lg:pl-4">
+        <div class="mb-4">
+          <label for="date" class="block text-gray-700 font-medium mb-2">Datum</label>
+          <p-calendar
+            formControlName="date"
+            dateFormat="dd/mm/yy"
+            id="date"
+            class="w-full p-2 border border-gray-300 rounded-md"
+            showIcon="true"
+            inputStyleClass="w-full p-2 border border-gray-300 rounded-md"
+          ></p-calendar>
+        </div>
+        <div class="mb-4">
+          <label for="start-time" class="block text-gray-700 font-medium mb-2">Anfangszeit</label>
+          <p-calendar
+            formControlName="startTime"
+            timeOnly="true"
+            id="start-time"
+            class="w-full p-2 border border-gray-300 rounded-md"
+            showIcon="true"
+            inputStyleClass="w-full p-2 border border-gray-300 rounded-md"
+          ></p-calendar>
+        </div>
+        <div>
+          <label for="end-time" class="block text-gray-700 font-medium mb-2">Endzeit</label>
+          <p-calendar
+            formControlName="endTime"
+            timeOnly="true"
+            id="end-time"
+            class="w-full p-2 border border-gray-300 rounded-md"
+            showIcon="true"
+            inputStyleClass="w-full p-2 border border-gray-300 rounded-md"
+          ></p-calendar>
+        </div>
       </div>
-      <div class="mb-4">
-        <label for="start-time" class="block text-gray-700 font-medium mb-2">Anfangszeit</label>
-        <p-calendar
-          [(ngModel)]="startTime"
-          timeOnly="true"
-          id="start-time"
-          class="w-full p-2 border border-gray-300 rounded-md"
-          showIcon="true"
-          inputStyleClass="w-full p-2 border border-gray-300 rounded-md"
-        ></p-calendar>
-      </div>
-      <div>
-        <label for="end-time" class="block text-gray-700 font-medium mb-2">Endzeit</label>
-        <p-calendar
-          [(ngModel)]="endTime"
-          timeOnly="true"
-          id="end-time"
-          class="w-full p-2 border border-gray-300 rounded-md"
-          showIcon="true"
-          inputStyleClass="w-full p-2 border border-gray-300 rounded-md"
-        ></p-calendar>
-      </div>
-    </div>
+    </form>
   </div>
-
-  <!-- Filter Settings -->
-  <div class="mt-1">
-    <app-filter-settings></app-filter-settings>
-  </div>
-
   <!-- Weitere Informationen -->
   <h3 class="text-2xl font-semibold mb-4">Weitere Informationen</h3>
   <div class="mb-6">
diff --git a/src/app/pages/booking-input-page/booking-input-page.component.ts b/src/app/pages/booking-input-page/booking-input-page.component.ts
index 4f64474a3f43c8619a93856be094c0c028db40a8..8db4a6a10474c12c0710bd061f1a2c5bc942d496 100644
--- a/src/app/pages/booking-input-page/booking-input-page.component.ts
+++ b/src/app/pages/booking-input-page/booking-input-page.component.ts
@@ -1,6 +1,12 @@
 import { Component } from '@angular/core'
 import { FilterSettingsComponent } from '../../components/filter-settings/filter-settings.component'
-import { FormsModule } from '@angular/forms'
+import {
+  FormBuilder,
+  FormControl,
+  FormGroup,
+  FormsModule,
+  ReactiveFormsModule,
+} from '@angular/forms'
 import { CalendarModule } from 'primeng/calendar'
 import { CardModule } from 'primeng/card'
 import { HttpClientModule, HttpClient } from '@angular/common/http' // Importiere HttpClientModule und HttpClient
@@ -29,20 +35,21 @@ import { NgIf } from '@angular/common'
     HttpClientModule,
     ConfirmationDialogComponent,
     NgIf,
+    ReactiveFormsModule,
     // Füge HttpClientModule zu den Imports hinzu
   ],
   templateUrl: './booking-input-page.component.html',
   styleUrl: './booking-input-page.component.scss',
 })
 export class BookingInputPageComponent {
-  datetime24h: Date | undefined
-  date: Date
-  startTime: Date
-  endTime: Date
+  date: Date = new Date()
+  startTime: Date = new Date(new Date().getTime())
+  endTime: Date = new Date(new Date().setHours(new Date().getHours() + 1))
   bookingAvailable: boolean = false
   deskId: string | undefined
   private user: User | null = null
   protected readonly String = String
+  timeDateForm
   timeOptions: any = {
     hour: '2-digit',
     minute: '2-digit',
@@ -60,46 +67,62 @@ export class BookingInputPageComponent {
     private reservationService: ReservationService,
     private userService: UserService,
     private deskService: DeskService,
-    private route: ActivatedRoute
+    private route: ActivatedRoute,
+    private formBuilder: FormBuilder
   ) {
-    this.date = new Date()
     this.route.params.subscribe((params) => {
       this.deskId = params['deskId']
     })
     this.userService.getUserAsObservable().subscribe((user) => {
       this.user = user
     })
-    this.startTime = new Date()
-    this.endTime = new Date(new Date().setHours(new Date().getHours() + 1))
-  }
-
-  get timeAsString(): string | undefined {
-    return this.datetime24h?.toLocaleTimeString('de-DE', this.timeOptions)
+    this.timeDateForm = this.formBuilder.group({
+      date: new FormControl(this.date),
+      startTime: new FormControl(this.startTime),
+      endTime: new FormControl(this.endTime),
+    })
+    this.subscribeToDateChanges()
   }
-
-  get dateAsString(): string {
-    let dateStr = this.datetime24h?.toLocaleDateString('de-DE', this.dateOptions)
-    return dateStr ? dateStr.replace(',', '') : ''
+  subscribeToDateChanges() {
+    const dateControl = this.timeDateForm.get('date')
+    if (dateControl) {
+      dateControl.valueChanges.subscribe((newDate) => {
+        if (newDate) {
+          this.updateTimeDate(newDate)
+        }
+      })
+    } else return
   }
-
   get userId() {
     return this.user?.id
   }
+
   //UCT+1
-  toLocalISOString(date: Date) {
+  toLocalISOString(anyDate: Date) {
     //offset in hours
-    const offSet = date.getTimezoneOffset() / -60
-    const localTime = new Date(date.getTime() - date.getTimezoneOffset() * 60000)
+    const offSet = anyDate.getTimezoneOffset() / -60
+    let localTime = new Date(anyDate.getTime() - anyDate.getTimezoneOffset() * 60000)
     return localTime.toISOString()
   }
 
+  get startTimeControl() {
+    return this.timeDateForm.controls['startTime'].value
+  }
+
+  get endTimeControl() {
+    return this.timeDateForm.controls['endTime'].value
+  }
+
   onSubmit() {
+    if (!this.startTimeControl || !this.endTimeControl || !this.date) {
+      return
+    }
     const response = this.reservationService
       .confirmReservation({
         userId: this.userId,
         deskId: this.deskId,
-        startTime: this.toLocalISOString(this.startTime),
-        endTime: this.toLocalISOString(this.endTime),
+        startTime: this.toLocalISOString(this.startTimeControl),
+        endTime: this.toLocalISOString(this.endTimeControl),
         type: 'shared',
       } as SimpleReservationResponse)
       .subscribe({
@@ -112,12 +135,19 @@ export class BookingInputPageComponent {
       })
   }
 
-  synchronizeDateTime(): void {
-    if (this.datetime24h) {
-      this.date = new Date(this.datetime24h)
-      this.startTime = new Date(this.datetime24h)
-      this.endTime = new Date(this.datetime24h)
-      this.endTime.setHours(this.endTime.getHours() + 1) // Beispiel: Endzeit eine Stunde nach der Startzeit
-    }
+  updateTimeDate(newDate: Date): void {
+    const newStartTime = new Date(this.startTime)
+    const newEndTime = new Date(this.endTime)
+
+    newStartTime.setFullYear(newDate.getFullYear(), newDate.getMonth(), newDate.getDate())
+    newEndTime.setFullYear(newDate.getFullYear(), newDate.getMonth(), newDate.getDate())
+
+    this.timeDateForm.patchValue({
+      startTime: newStartTime,
+      endTime: newEndTime,
+    })
+
+    this.startTime = newStartTime
+    this.endTime = newEndTime
   }
 }