diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php
index 58842dddaec08cfddbf165c127e070a48fbb524d..6a0c9087edbeb4886b2d18205dd0aa9e9a28b78a 100644
--- a/app/controllers/resources/room_request.php
+++ b/app/controllers/resources/room_request.php
@@ -1760,6 +1760,7 @@ class Resources_RoomRequestController extends AuthenticatedController
             }
 
             $errors = [];
+            $warnings = [];
             $bookings = [];
 
             foreach ($this->selected_rooms as $range_str => $room_id) {
@@ -1858,6 +1859,7 @@ class Resources_RoomRequestController extends AuthenticatedController
                         return;
                     }
                     if ($metadate->dates) {
+                        $overlap_messages = [];
                         foreach ($metadate->dates as $date) {
                             if ($date->room_booking->resource_id != $room_id) {
                                 try {
@@ -1878,12 +1880,20 @@ class Resources_RoomRequestController extends AuthenticatedController
                                     if ($booking instanceof ResourceBooking) {
                                         $bookings[] = $booking;
                                     }
+                                } catch (ResourceBookingException $e) {
+                                    $overlap_messages[] = $e->getMessage();
                                 } catch (Exception $e) {
                                     $errors[] = $e->getMessage();
                                     continue;
                                 }
                             }
                         }
+                        if (count($overlap_messages) == count($metadate->dates)) {
+                            //The booking could not be saved at all.
+                            $errors = array_merge($errors, $overlap_messages);
+                        } else {
+                            $warnings = array_merge($warnings, $overlap_messages);
+                        }
                     }
                 } elseif ($range_data[0] == 'User') {
                     $user = User::find($range_data[1]);
@@ -1938,6 +1948,12 @@ class Resources_RoomRequestController extends AuthenticatedController
                     _('Es traten Fehler beim Auflösen der Anfrage auf!'),
                     $errors
                 );
+            } else if ($warnings && !$force_resolve && !$save_only) {
+                PageLayout::postWarning(
+                    _('Es wurden nicht für alle Termine der Anfrage Räume ausgewählt! Soll die Anfrage wirklich aufgelöst werden?'),
+                    $warnings
+                );
+                $this->show_force_resolve_button = true;
             } else if (!$save_only) {
                 //No errors: We can close the request.