diff --git a/assets/themes/rooms_menu.tres b/assets/themes/rooms_menu.tres
new file mode 100644
index 0000000..d5a6497
--- /dev/null
+++ b/assets/themes/rooms_menu.tres
@@ -0,0 +1,4 @@
+[gd_resource type="Theme" format=3 uid="uid://cdor0uw5aqxkq"]
+
+[resource]
+default_font_size = 72
diff --git a/scenes/board/board.gd b/scenes/board/board.gd
index d3661ab..b8aabcc 100644
--- a/scenes/board/board.gd
+++ b/scenes/board/board.gd
@@ -67,10 +67,13 @@ func _process_schedule(delta):
 	_schedule_update_timer += delta
 
 func _ready():
+	_remove_reservations()
+	_initialize()
+
+func _initialize():
 	_connect_signals()
 
 	_remove_time_slots()
-
 	_fill_with_slots()
 
 	await get_tree().create_timer(0.1, false).timeout
@@ -203,10 +206,12 @@ func _input(event):
 			if _main.get_current_page() == Main.Pages.Board:
 				var time = _get_time_by_position(event.position)
 
-				if _time_is_before_current_time(time):
+				if _time_is_before_current_time(time) and _selected_date_is_current():
 					return
 
 				var creation_page = _main.load_page(Main.Pages.ReservationCreation)
+				creation_page.clean()
+				creation_page.update()
 				creation_page.set_start_time(time)
 
 func _get_time_by_position(position):
@@ -229,6 +234,9 @@ func _clicked_on_timeline(pos: Vector2):
 			pos.y < _timeline.size.y + timeline_position.y
 		)
 
+func _selected_date_is_current():
+	return _main.get_selected_date() == _main.get_current_date()
+
 func _time_is_before_current_time(time):
 	var current_time = Time.get_time_dict_from_system()
 	var time_in_minutes = time.hours*60 + time.minutes
@@ -245,7 +253,6 @@ func _on_room_button_pressed():
 	if _rooms_menu.visible:
 		_rooms_menu.hide()
 	else:
-		_rooms_menu.position = _date.position
 		_rooms_menu.show()
 
 func _on_room_selected(idx, text):
@@ -259,6 +266,7 @@ func _on_room_selected(idx, text):
 	update()
 
 func _on_date_button_pressed():
+	_main.start_date_selection()
 	_main.load_page(Main.Pages.CalendarSetting)
 
 func _on_reservations_updated(reservations):
@@ -267,5 +275,5 @@ func _on_reservations_updated(reservations):
 
 func update():
 	_block_board_click_for(0.25)
-	_ready()
+	_initialize()
 	_update_schedule()
diff --git a/scenes/board/rooms_menu.gd b/scenes/board/rooms_menu.gd
index b14c7e1..e0d73b2 100644
--- a/scenes/board/rooms_menu.gd
+++ b/scenes/board/rooms_menu.gd
@@ -8,8 +8,9 @@ func _process(delta):
 	_process_items_font_size()
 
 func _process_items_font_size():
-	var font_size = _items.get_theme_default_font_size()
-	var new_font_size = get_viewport_rect().size.y/35
+	var default_font_size = _items.get_theme_default_font_size()
+	var font_size = _items.get_theme_font_size("font_size")
+	var new_font_size = get_viewport_rect().size.y/30
 	if font_size != new_font_size:
 		_items.add_theme_font_size_override("font_size", new_font_size)
 
@@ -28,6 +29,9 @@ func clear():
 func select(idx):
 	_items.select(idx)
 
+func deselect_all():
+	_items.deselect_all()
+
 func _on_item_clicked(index, at_position, mouse_button_index):
 	var text = _items.get_item_text(index)
 	item_clicked.emit(index, text)
diff --git a/scenes/board/rooms_menu.tscn b/scenes/board/rooms_menu.tscn
index 0c39c93..1d213fd 100644
--- a/scenes/board/rooms_menu.tscn
+++ b/scenes/board/rooms_menu.tscn
@@ -1,7 +1,10 @@
-[gd_scene load_steps=3 format=3 uid="uid://bt3h3m10qx1jr"]
+[gd_scene load_steps=4 format=3 uid="uid://bt3h3m10qx1jr"]
 
 [ext_resource type="Script" path="res://scenes/board/rooms_menu.gd" id="1_5p83j"]
-[ext_resource type="Theme" uid="uid://cmhwbyqu6nh38" path="res://assets/themes/big.tres" id="1_yypwp"]
+[ext_resource type="Theme" uid="uid://cdor0uw5aqxkq" path="res://assets/themes/rooms_menu.tres" id="2_xsikm"]
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_36vy7"]
+bg_color = Color(0.137255, 0.137255, 0.137255, 0.658824)
 
 [node name="RoomsMenu" type="Control"]
 layout_mode = 3
@@ -10,9 +13,10 @@ script = ExtResource("1_5p83j")
 
 [node name="Items" type="ItemList" parent="."]
 layout_mode = 0
-offset_right = 500.0
-offset_bottom = 280.0
-theme = ExtResource("1_yypwp")
+offset_right = 750.0
+offset_bottom = 420.0
+theme = ExtResource("2_xsikm")
+theme_override_styles/panel = SubResource("StyleBoxFlat_36vy7")
 auto_height = true
 item_count = 4
 item_0/text = "Маркетинг"
diff --git a/scenes/common/calendar/calendar_edit.gd b/scenes/common/calendar/calendar_edit.gd
index e07a0bf..e6d97dd 100644
--- a/scenes/common/calendar/calendar_edit.gd
+++ b/scenes/common/calendar/calendar_edit.gd
@@ -1 +1,52 @@
 extends Control
+
+@onready var _main: Main = get_tree().get_current_scene()
+@onready var _edit := $Edit
+
+@export var editable : bool:
+	set(value):
+		editable = value
+		set_editable(value)
+
+var _date := ""
+var _date_setting_page
+
+func _process(delta):
+	_process_font_size()
+
+func _process_font_size():
+	var font_size = _edit.get_theme_default_font_size()
+	var new_font_size = get_viewport_rect().size.y/35
+	if font_size != new_font_size:
+		_edit.add_theme_font_size_override("font_size", new_font_size)
+
+func _ready():
+	initialize_signals()
+
+func initialize_signals():
+	_edit.focus_entered.connect(_on_click)
+
+func _on_click():
+	if _main.get_current_page() == Main.Pages.CalendarSetting:
+		return
+
+	_date_setting_page = _main.load_page(Main.Pages.CalendarSetting)
+	_date_setting_page.date_selected.connect(self._on_date_is_set)
+
+func _on_date_is_set(date: Calendar.DateObj):
+	_date_setting_page.date_selected.disconnect(_on_date_is_set)
+	set_date("%02d.%02d.%04d" % [date.day, date.month, date.year])
+
+func set_date(date: String):
+	_date = date
+	_edit.text = get_date()
+
+func get_date():
+	return _date
+
+func set_editable(value):
+	_edit.editable = value
+
+func clean():
+	_date = ""
+	_edit.text = ""
diff --git a/scenes/common/calendar/calendar_edit.tscn b/scenes/common/calendar/calendar_edit.tscn
index 205072f..233aebd 100644
--- a/scenes/common/calendar/calendar_edit.tscn
+++ b/scenes/common/calendar/calendar_edit.tscn
@@ -3,18 +3,21 @@
 [ext_resource type="Script" path="res://scenes/common/calendar/calendar_edit.gd" id="1_jxhnl"]
 [ext_resource type="Theme" uid="uid://cmhwbyqu6nh38" path="res://assets/themes/big.tres" id="2_e6eik"]
 
-[node name="Calendar" type="Control"]
-layout_mode = 3
-anchors_preset = 15
+[node name="Calendar" type="VBoxContainer"]
+anchors_preset = 10
 anchor_right = 1.0
-anchor_bottom = 1.0
+offset_bottom = 72.0
 grow_horizontal = 2
-grow_vertical = 2
 script = ExtResource("1_jxhnl")
 
 [node name="Button" type="Button" parent="."]
-layout_mode = 0
-offset_right = 24.0
-offset_bottom = 31.0
+visible = false
+layout_mode = 2
 theme = ExtResource("2_e6eik")
 text = "Открыть календарь"
+
+[node name="Edit" type="LineEdit" parent="."]
+layout_mode = 2
+size_flags_horizontal = 3
+theme = ExtResource("2_e6eik")
+virtual_keyboard_enabled = false
diff --git a/scenes/common/calendar/calendar_setting.gd b/scenes/common/calendar/calendar_setting.gd
index 3b9816d..03b998a 100644
--- a/scenes/common/calendar/calendar_setting.gd
+++ b/scenes/common/calendar/calendar_setting.gd
@@ -23,7 +23,7 @@ func _process(delta):
 	_process_font_size(_next_month_button, 32)
 
 func _process_grid_size():
-	for day_label in _days_grid.get_children():		
+	for day_label in _days_grid.get_children():
 		var font_size = day_label.label_settings.font_size
 		var new_font_size = get_viewport_rect().size.y/32
 		if font_size != new_font_size:
@@ -72,6 +72,13 @@ func update_calendar() -> void:
 			var day_label = create_day_label(date_obj, today)
 			_days_grid.add_child(day_label)
 
+	_cancel_selection()
+
+func _cancel_selection():
+	for day_label in _days_grid.get_children():
+		for selection in day_label.get_children():
+			selection.queue_free()
+
 func create_day_label(date_obj: Calendar.DateObj, today: Calendar.DateObj) -> CalendarLabel:
 	var label = CalendarLabel.new(str(date_obj.day), true)
 
@@ -118,7 +125,7 @@ func _on_next_month_pressed() -> void:
 	update_calendar()
 
 func update():
-	pass
+	_cancel_selection()
 
 class CalendarLabel:
 	extends Label
diff --git a/scenes/common/edit_field.gd b/scenes/common/edit_field.gd
index 89c99a0..04fdf81 100644
--- a/scenes/common/edit_field.gd
+++ b/scenes/common/edit_field.gd
@@ -5,7 +5,8 @@ enum Type {
 	Line,
 	Text,
 	Calendar,
-	Time
+	Time,
+	ListBox
 }
 
 @export var title : String:
@@ -28,6 +29,7 @@ enum Type {
 @onready var _calendar = $Container/Value/Calendar
 @onready var _time = $Container/Value/Time
 @onready var _text = $Container/Value/Text
+@onready var _list_box = $Container/Value/ListBox
 
 var _type
 
@@ -62,12 +64,17 @@ func get_value():
 		Type.Text:
 			return _text.text
 		Type.Calendar:
-			return ""
+			return _calendar.get_date()
 		Type.Time:
 			return {
 				"hours": _time.get_hours(),
 				"minutes": _time.get_minutes()
 			}
+		Type.ListBox:
+			return {
+				"id": _list_box.get_id(),
+				"title": _list_box.get_title()
+			}
 
 func set_value(value):
 	match _type:
@@ -76,9 +83,12 @@ func set_value(value):
 		Type.Text:
 			_text.text = value
 		Type.Calendar:
-			pass
+			_calendar.set_date(value)
 		Type.Time:
 			_time.set_time(value.hours, value.minutes)
+		Type.ListBox:
+			_list_box.set_id(value.id)
+			_list_box.set_title(value.title)
 
 func set_editable(value):
 	if _line == null:
@@ -96,6 +106,7 @@ func set_type(type):
 	_text.visible = false
 	_calendar.visible = false
 	_time.visible = false
+	_list_box.visible = false
 
 	_type = type
 
@@ -108,6 +119,8 @@ func set_type(type):
 			_calendar.visible = true
 		Type.Time:
 			_time.visible = true
+		Type.ListBox:
+			_list_box.visible = true
 
 func clean():
 	match _type:
@@ -116,6 +129,8 @@ func clean():
 		Type.Text:
 			_text.text = ""
 		Type.Calendar:
-			pass
+			_calendar.clean()
 		Type.Time:
 			_time.clean()
+		Type.ListBox:
+			_list_box.clean()
diff --git a/scenes/common/edit_field.tscn b/scenes/common/edit_field.tscn
index c80b5fb..c8fbacf 100644
--- a/scenes/common/edit_field.tscn
+++ b/scenes/common/edit_field.tscn
@@ -1,10 +1,11 @@
-[gd_scene load_steps=6 format=3 uid="uid://d0fdiesiaajlq"]
+[gd_scene load_steps=7 format=3 uid="uid://d0fdiesiaajlq"]
 
 [ext_resource type="Script" path="res://scenes/common/edit_field.gd" id="1_sdy7t"]
 [ext_resource type="Theme" uid="uid://cmhwbyqu6nh38" path="res://assets/themes/big.tres" id="2_iq8f3"]
 [ext_resource type="Theme" uid="uid://bbboqrxd230bp" path="res://assets/themes/edit_label_font.tres" id="3_4sp4y"]
 [ext_resource type="PackedScene" uid="uid://drdv8adk1wi8f" path="res://scenes/common/calendar/calendar_edit.tscn" id="4_hlx5p"]
 [ext_resource type="PackedScene" uid="uid://bhd0xvnvoqslr" path="res://scenes/common/time/time_edit.tscn" id="5_d0drs"]
+[ext_resource type="PackedScene" uid="uid://dn6skkh5c7f4s" path="res://scenes/common/list_box/list_box_edit.tscn" id="6_ovelt"]
 
 [node name="EditField" type="HBoxContainer"]
 anchors_preset = 10
@@ -66,3 +67,8 @@ layout_mode = 2
 visible = false
 layout_mode = 2
 size_flags_horizontal = 3
+
+[node name="ListBox" parent="Container/Value" instance=ExtResource("6_ovelt")]
+visible = false
+layout_mode = 2
+editable = true
diff --git a/scenes/common/list_box/list_box_edit.gd b/scenes/common/list_box/list_box_edit.gd
new file mode 100644
index 0000000..0aa919c
--- /dev/null
+++ b/scenes/common/list_box/list_box_edit.gd
@@ -0,0 +1,62 @@
+extends Control
+
+@onready var _main: Main = get_tree().get_current_scene()
+@onready var _edit := $Edit
+
+@export var editable : bool:
+	set(value):
+		editable = value
+		await ready
+		set_editable(value)
+
+var _title := ""
+var _id := ""
+var _room_setting_page
+
+func _process(delta):
+	_process_font_size()
+
+func _process_font_size():
+	var font_size = _edit.get_theme_default_font_size()
+	var new_font_size = get_viewport_rect().size.y/35
+	if font_size != new_font_size:
+		_edit.add_theme_font_size_override("font_size", new_font_size)
+
+func _ready():
+	initialize_signals()
+
+func initialize_signals():
+	_edit.focus_entered.connect(_on_click)
+
+func _on_click():
+	if _main.get_current_page() == Main.Pages.RoomSelection:
+		return
+
+	_room_setting_page = _main.load_page(Main.Pages.RoomSelection)
+	_room_setting_page.room_selected.connect(_on_room_is_set)
+
+func _on_room_is_set(title: String, id: String):
+	_room_setting_page.room_selected.disconnect(_on_room_is_set)
+	set_title(title)
+	set_id(id)
+
+func set_title(title: String):
+	_title = title
+	_edit.text = title
+
+func get_title() -> String:
+	return _title
+
+func set_id(id: String):
+	_id = id
+
+func get_id() -> String:
+	return _id
+
+func set_editable(value):
+	_edit.editable = value
+
+func clean():
+	_title = ""
+	_id = ""
+	_edit.text = ""
diff --git a/scenes/common/list_box/list_box_edit.tscn b/scenes/common/list_box/list_box_edit.tscn
new file mode 100644
index 0000000..5745fb4
--- /dev/null
+++ b/scenes/common/list_box/list_box_edit.tscn
@@ -0,0 +1,17 @@
+[gd_scene load_steps=3 format=3 uid="uid://dn6skkh5c7f4s"]
+
+[ext_resource type="Script" path="res://scenes/common/list_box/list_box_edit.gd" id="1_rb63m"]
+[ext_resource type="Theme" uid="uid://cmhwbyqu6nh38" path="res://assets/themes/big.tres" id="2_ubgs8"]
+
+[node name="ListBoxEdit" type="VBoxContainer"]
+anchors_preset = 10
+anchor_right = 1.0
+offset_bottom = 72.0
+grow_horizontal = 2
+script = ExtResource("1_rb63m")
+
+[node name="Edit" type="LineEdit" parent="."]
+layout_mode = 2
+size_flags_horizontal = 3
+theme = ExtResource("2_ubgs8")
+virtual_keyboard_enabled = false
diff --git a/scenes/common/list_box/list_box_setting.tscn b/scenes/common/list_box/list_box_setting.tscn
new file mode 100644
index 0000000..e4df976
--- /dev/null
+++ b/scenes/common/list_box/list_box_setting.tscn
@@ -0,0 +1,9 @@
+[gd_scene format=3 uid="uid://dveqs4kjvc2jv"]
+
+[node name="ListBox" type="Control"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
diff --git a/scenes/common/time/time_edit.tscn b/scenes/common/time/time_edit.tscn
index 42594ac..ec39e9f 100644
--- a/scenes/common/time/time_edit.tscn
+++ b/scenes/common/time/time_edit.tscn
@@ -14,7 +14,7 @@ script = ExtResource("1_2wxyg")
 [node name="TimeEdit" type="LineEdit" parent="."]
 visible = false
 layout_mode = 2
-text = "15:04 "
+text = "10:34 "
 placeholder_text = "hh:mm (a/p)m"
 script = ExtResource("2_7d4ae")
 current_time = true
@@ -24,8 +24,3 @@ layout_mode = 2
 size_flags_horizontal = 3
 theme = ExtResource("3_bpvuo")
 virtual_keyboard_enabled = false
-
-[connection signal="mouse_entered" from="TimeEdit/Clock" to="TimeEdit/Clock" method="_on_mouse_entered"]
-[connection signal="mouse_exited" from="TimeEdit/Clock" to="TimeEdit/Clock" method="_on_mouse_exited"]
-[connection signal="visibility_changed" from="TimeEdit/Clock" to="TimeEdit/Clock" method="_on_visibility_changed"]
-[connection signal="draw" from="TimeEdit/ManualClock" to="TimeEdit/ManualClock" method="_on_draw"]
diff --git a/scenes/main/main.gd b/scenes/main/main.gd
index a837a19..b63c152 100644
--- a/scenes/main/main.gd
+++ b/scenes/main/main.gd
@@ -6,7 +6,8 @@ enum Pages {
 	ReservationCreation,
 	ReservationEdit,
 	TimeSetting,
-	CalendarSetting
+	CalendarSetting,
+	RoomSelection
 }
 
 func get_current_page():
@@ -38,3 +39,6 @@ func get_selected_room() -> RoomEntity:
 
 func is_current_date_selected() -> bool:
 	return true
+
+func start_date_selection() -> void:
+	pass
diff --git a/scenes/main/main_tablet.gd b/scenes/main/main_tablet.gd
index 0322407..4473514 100644
--- a/scenes/main/main_tablet.gd
+++ b/scenes/main/main_tablet.gd
@@ -32,7 +32,8 @@ enum Status {
 	Pages.ReservationCreation: $Left/Pages/ReservationCreation,
 	Pages.ReservationEdit: $Left/Pages/ReservationEdit,
 	Pages.TimeSetting: $Left/Pages/TimeSetting,
-	Pages.CalendarSetting: $Left/Pages/CalendarSetting
+	Pages.CalendarSetting: $Left/Pages/CalendarSetting,
+	Pages.RoomSelection: $Left/Pages/RoomSelection
 }
 @onready var _time_status_indent := $Left/TimeStatusContainer/Indent
 @onready var _time_label := $Left/TimeStatusContainer/TimeLabel
@@ -52,7 +53,7 @@ var _previous_page : Pages
 var _status : Status
 var _status_check_timer := 0.0
 
-var _selected_date := _get_current_date()
+var _selected_date := get_current_date()
 
 func _ready():
 	initialize_signals()
@@ -65,8 +66,6 @@ func initialize_signals():
 	_45_min_button.pressed.connect(_on_45_min_button_pressed)
 	_1_hour_button.pressed.connect(_on_1_hour_button_pressed)
 
-	_pages[Pages.CalendarSetting].date_selected.connect(_on_date_selected)
-
 func _process(delta):
 	_process_time_status_indent()
 	_process_status(delta)
@@ -110,7 +109,7 @@ func _update_status(reservations=null):
 	if reservations == null:
 		var room = get_selected_room()
 		reservations = await _reservation_repo.list_reservations({
-			"date": _get_current_date(),
+			"date": get_current_date(),
 			"room_id": room.id if room else ''
 		})
 
@@ -230,6 +229,26 @@ func _create_default_reservation(minutes_of_reservation):
 
 	load_page(Main.Pages.Board, true)
 
+func get_selected_date() -> String:
+	return _selected_date
+
+func get_current_date() -> String:
+	var date = Time.get_date_dict_from_system()
+	return "%02d.%02d.%04d" % [date.day, date.month, date.year]
+
+func is_current_date_selected() -> bool:
+	return get_selected_date() == get_current_date()
+
+func get_selected_room() -> RoomEntity:
+	var room_repo = get_room_repo()
+	return room_repo.get_selected_room()
+
+func hide_keyboard():
+	_keyboard.hide()
+
+func start_date_selection():
+	_pages[Pages.CalendarSetting].date_selected.connect(_on_date_selected)
+
 func _on_reservations_updated(reservations):
 	_update_status()
 
@@ -248,23 +267,7 @@ func _on_45_min_button_pressed():
 func _on_1_hour_button_pressed():
 	_create_default_reservation(60)
 
-func get_selected_date() -> String:
-	return _selected_date
-
-func _get_current_date() -> String:
-	var date = Time.get_date_dict_from_system()
-	return "%02d.%02d.%04d" % [date.day, date.month, date.year]
-
-func is_current_date_selected() -> bool:
-	return get_selected_date() == _get_current_date()
-
-func get_selected_room() -> RoomEntity:
-	var room_repo = get_room_repo()
-	return room_repo.get_selected_room()
-
-func hide_keyboard():
-	_keyboard.hide()
-
 func _on_date_selected(date: Calendar.DateObj):
 	_selected_date = "%02d.%02d.%04d" % [date.day, date.month, date.year]
+	_pages[Pages.CalendarSetting].date_selected.disconnect(_on_date_selected)
 	_pages[Pages.Board].update_date()
diff --git a/scenes/main/main_tablet.tscn b/scenes/main/main_tablet.tscn
index 0423a0f..c8e7f8f 100644
--- a/scenes/main/main_tablet.tscn
+++ b/scenes/main/main_tablet.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=18 format=3 uid="uid://bkrvh8vjpgqot"]
+[gd_scene load_steps=19 format=3 uid="uid://bkrvh8vjpgqot"]
 
 [ext_resource type="Script" path="res://scenes/main/main_tablet.gd" id="1_fr6s5"]
 [ext_resource type="PackedScene" uid="uid://c431r28ef5edp" path="res://scenes/board/board.tscn" id="2_n47h4"]
@@ -8,6 +8,7 @@
 [ext_resource type="Theme" uid="uid://byopik87nb8vv" path="res://assets/themes/status_font.tres" id="5_atujq"]
 [ext_resource type="PackedScene" uid="uid://bc4tcq608v5rx" path="res://scenes/common/calendar/calendar_setting.tscn" id="6_c0c0t"]
 [ext_resource type="Theme" uid="uid://yn1nbokvmv6n" path="res://assets/themes/small.tres" id="6_nde4h"]
+[ext_resource type="PackedScene" uid="uid://dik2e02vahb3g" path="res://scenes/reservation/room_selection.tscn" id="7_7j0ww"]
 [ext_resource type="Theme" uid="uid://b8tbd62jtmgdx" path="res://assets/themes/instant_button_font.tres" id="8_bmn8p"]
 [ext_resource type="Theme" uid="uid://cmhwbyqu6nh38" path="res://assets/themes/big.tres" id="9_wpf8g"]
 [ext_resource type="Script" path="res://src/infra/repos/backend/reservation_http.gd" id="10_v7sup"]
@@ -74,20 +75,24 @@ visible = false
 layout_mode = 2
 size_flags_horizontal = 3
 
+[node name="RoomSelection" parent="Left/Pages" instance=ExtResource("7_7j0ww")]
+visible = false
+layout_mode = 2
+
 [node name="TimeStatusContainer" type="VBoxContainer" parent="Left"]
 layout_mode = 2
 size_flags_horizontal = 10
 size_flags_vertical = 0
 
 [node name="Indent" type="BoxContainer" parent="Left/TimeStatusContainer"]
-custom_minimum_size = Vector2(0, 0.666667)
+custom_minimum_size = Vector2(0, 195)
 layout_mode = 2
 size_flags_vertical = 3
 
 [node name="TimeLabel" type="Label" parent="Left/TimeStatusContainer"]
 layout_mode = 2
 theme = ExtResource("5_atujq")
-text = "12:42"
+text = "12:15"
 horizontal_alignment = 1
 
 [node name="StatusLabel" type="Label" parent="Left/TimeStatusContainer"]
@@ -152,7 +157,7 @@ grow_vertical = 0
 [node name="CreateReservationButton" type="Button" parent="RightBottom"]
 layout_mode = 2
 theme = ExtResource("9_wpf8g")
-theme_override_font_sizes/font_size = 0
+theme_override_font_sizes/font_size = 16
 text = "   Забронировать   "
 
 [node name="Repos" type="Node" parent="."]
diff --git a/scenes/reservation/reservation_creation.tscn b/scenes/reservation/reservation_creation.tscn
index a5a33fb..9246de7 100644
--- a/scenes/reservation/reservation_creation.tscn
+++ b/scenes/reservation/reservation_creation.tscn
@@ -74,7 +74,6 @@ layout_mode = 2
 theme_override_styles/panel = SubResource("StyleBoxFlat_yafv8")
 
 [node name="DateField" parent="." instance=ExtResource("2_qfs8j")]
-visible = false
 layout_mode = 2
 title = "Дата"
 type = 2
@@ -104,7 +103,7 @@ editable = false
 [node name="RoomField" parent="." instance=ExtResource("2_qfs8j")]
 layout_mode = 2
 title = "Комната"
-editable = false
+type = 4
 
 [node name="Splitter4" type="Panel" parent="."]
 visible = false
diff --git a/scenes/reservation/reservation_edit.tscn b/scenes/reservation/reservation_edit.tscn
index d5ca768..3a752b4 100644
--- a/scenes/reservation/reservation_edit.tscn
+++ b/scenes/reservation/reservation_edit.tscn
@@ -68,7 +68,6 @@ layout_mode = 2
 theme_override_styles/panel = SubResource("StyleBoxFlat_yafv8")
 
 [node name="DateField" parent="." instance=ExtResource("3_lh5s8")]
-visible = false
 layout_mode = 2
 title = "Дата"
 type = 2
@@ -85,7 +84,6 @@ title = "Конец"
 type = 3
 
 [node name="Splitter3" type="Panel" parent="."]
-visible = false
 custom_minimum_size = Vector2(0, 5)
 layout_mode = 2
 theme_override_styles/panel = SubResource("StyleBoxFlat_yafv8")
@@ -97,10 +95,9 @@ title = "Создатель"
 editable = false
 
 [node name="RoomField" parent="." instance=ExtResource("3_lh5s8")]
-visible = false
 layout_mode = 2
 title = "Комната"
-editable = false
+type = 4
 
 [node name="Splitter4" type="Panel" parent="."]
 visible = false
diff --git a/scenes/reservation/reservation_page.gd b/scenes/reservation/reservation_page.gd
index bf3a91e..faace04 100644
--- a/scenes/reservation/reservation_page.gd
+++ b/scenes/reservation/reservation_page.gd
@@ -73,16 +73,28 @@ func _on_delete_button_pressed():
 	_delete_reservation()
 
 func _load_info():
-	var repo = _main.get_reservation_repo()
-	var reservation_id = repo.get_selected_reservation_id()
-	var reservation = await repo.get_reservation(reservation_id)
+	var reservation_repo = _main.get_reservation_repo()
+	var reservation_id = reservation_repo.get_selected_reservation_id()
+	var reservation = await reservation_repo.get_reservation(reservation_id)
+
+	var room_repo = _main.get_room_repo()
+	var room = await room_repo.get_room(reservation.room_id)
+	var room_title = room.title if room != null else ""
 
 	_title_field.set_value(reservation.title)
 	_start_time_field.set_value(reservation.start_time)
 	_finish_time_field.set_value(reservation.finish_time)
+	_room_field.set_value({"title": room_title, "id": reservation.room_id})
+	_date_field.set_value(reservation.date)
 
 func _load_room():
-	_room_field.set_value(_main.get_selected_room().title)
+	if _room_field.get_value().title == "":
+		var room = _main.get_selected_room()
+		_room_field.set_value({"title": room.title, "id": room.id})
+
+func _load_date():
+	if _date_field.get_value() == "":
+		_date_field.set_value(_main.get_selected_date())
 
 func _get_current_room_id():
 	var room_repo = _main.get_room_repo()
@@ -95,16 +107,16 @@ func _create_reservation():
 
 	var dto = CreateReservationDTO.new()
 	dto.title = _title_field.get_value()
-	dto.date = _main.get_selected_date()
+	dto.date = _date_field.get_value()
 	dto.start_time = _start_time_field.get_value()
 	dto.finish_time = _finish_time_field.get_value()
 	dto.creator = _creator_field.get_value()
-	dto.room_id = _get_current_room_id()
+	dto.room_id = _room_field.get_value().id
 	dto.description = _description_field.get_value()
 	dto.color = randi_range(1, 3)
 
-	var repo = _main.get_reservation_repo()
-	repo.create_reservation(dto)
+	var reservation_repo = _main.get_reservation_repo()
+	reservation_repo.create_reservation(dto)
 
 	dto.queue_free()
 
@@ -121,14 +133,14 @@ func _update_reservation():
 	dto.start_time = _start_time_field.get_value()
 	dto.finish_time = _finish_time_field.get_value()
 	dto.creator = _creator_field.get_value()
-	dto.room_id = _get_current_room_id()
+	dto.room_id = _room_field.get_value().id
 	dto.description = _description_field.get_value()
 	dto.color = randi_range(1, 3)
 
-	var repo = _main.get_reservation_repo()
-	var reservation_id = repo.get_selected_reservation_id()
-	repo.change_reservation(reservation_id, dto)
-	repo.set_selected_reservation_id(null)
+	var reservation_repo = _main.get_reservation_repo()
+	var reservation_id = reservation_repo.get_selected_reservation_id()
+	reservation_repo.change_reservation(reservation_id, dto)
+	reservation_repo.set_selected_reservation_id(null)
 
 	dto.queue_free()
 
@@ -181,7 +193,10 @@ func _time_is_correct():
 	var start_time_in_minutes = start_time.hours*60 + start_time.minutes
 	var finish_time_in_minutes = finish_time.hours*60 + finish_time.minutes
 	var service = _main.get_reservation_service()
-	var is_busy = await service.is_time_busy(start_time_in_minutes, finish_time_in_minutes)
+	var selected_room_id = _room_field.get_value().id
+	var selected_date = _date_field.get_value()
+	var is_busy = await service.is_time_busy(start_time_in_minutes, finish_time_in_minutes, \
+		selected_room_id, selected_date)
 
 	if is_busy:
 		print("The selected time slot is busy.")
@@ -198,10 +213,13 @@ func update():
 
 	if type == Types.Edit:
 		_load_info()
-
-	_load_room()
+	else:
+		_load_room()
+		_load_date()
 
 func clean():
 	_title_field.clean()
 	_start_time_field.clean()
 	_finish_time_field.clean()
+	_date_field.clean()
+	_room_field.clean()
diff --git a/scenes/reservation/room_selection.gd b/scenes/reservation/room_selection.gd
new file mode 100644
index 0000000..fe7999e
--- /dev/null
+++ b/scenes/reservation/room_selection.gd
@@ -0,0 +1,39 @@
+extends Control
+
+signal room_selected(title: String, id: String)
+
+@onready var _main: Main = get_tree().get_current_scene()
+@onready var _rooms_menu := $RoomsMenu
+
+var _rooms : Array[RoomEntity] = []
+
+func _ready():
+	_connect_signals()
+
+	await get_tree().create_timer(0.1, false).timeout
+	_load_rooms()
+
+func _load_rooms():
+	var room_repo = _main.get_room_repo()
+	if room_repo.get_selected_room():
+		return
+		
+	_rooms_menu.clear()
+
+	var rooms = await room_repo.list_rooms()
+	for room in rooms:
+		_rooms.append(room)
+		_rooms_menu.add_item(room.title)
+
+	if len(rooms) < 0:
+		print('Not enough rooms') 
+
+func _connect_signals():
+	_rooms_menu.item_clicked.connect(_on_room_selected)
+
+func _on_room_selected(idx, text):
+	room_selected.emit(_rooms[idx].title, _rooms[idx].id)
+	_main.go_to_previous_page(true)
+
+func update():
+	_rooms_menu.deselect_all()
diff --git a/scenes/reservation/room_selection.tscn b/scenes/reservation/room_selection.tscn
new file mode 100644
index 0000000..b99dcf7
--- /dev/null
+++ b/scenes/reservation/room_selection.tscn
@@ -0,0 +1,15 @@
+[gd_scene load_steps=3 format=3 uid="uid://dik2e02vahb3g"]
+
+[ext_resource type="PackedScene" uid="uid://bt3h3m10qx1jr" path="res://scenes/board/rooms_menu.tscn" id="1_carpv"]
+[ext_resource type="Script" path="res://scenes/reservation/room_selection.gd" id="1_wbxoa"]
+
+[node name="RoomSelection" type="Control"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+script = ExtResource("1_wbxoa")
+
+[node name="RoomsMenu" parent="." instance=ExtResource("1_carpv")]
diff --git a/src/domain/services/reservation.gd b/src/domain/services/reservation.gd
index 18a9574..c4b369f 100644
--- a/src/domain/services/reservation.gd
+++ b/src/domain/services/reservation.gd
@@ -3,13 +3,14 @@ class_name ReservationService
 
 @onready var _main: Main = get_tree().get_current_scene()
 
-func is_time_busy(new_start_time_minutes, new_finish_time_minutes):
+func is_time_busy(new_start_time_minutes, new_finish_time_minutes, room_id=null, date=null):
 	var selected_room = _main.get_selected_room()
+	var selected_date = _main.get_selected_date()
 
 	var reservation_repo = _main.get_reservation_repo()
 	var reservations = await reservation_repo.list_reservations({
-		"date": _main.get_selected_date(),
-		"room_id": selected_room.id
+		"date": date if date != null else selected_date,
+		"room_id": room_id if room_id != null else selected_room.id
 	})
 	var selected_reservation_id = reservation_repo.get_selected_reservation_id()
 
diff --git a/src/infra/repos/abstract/reservation.gd b/src/infra/repos/abstract/reservation.gd
index aaf2d2c..364190b 100644
--- a/src/infra/repos/abstract/reservation.gd
+++ b/src/infra/repos/abstract/reservation.gd
@@ -20,7 +20,7 @@ func change_reservation(reservation_id, dto: UpdateReservationDTO):
 func get_reservation(reservation_id):
 	pass
 
-func list_reservations(filters: Dictionary = {}) -> Array[ReservationEntity]:
+func list_reservations(filters: Dictionary = {}) -> Array:
 	return []
 
 func set_selected_reservation_id(value):
diff --git a/src/infra/repos/backend/event_handler_ws.gd b/src/infra/repos/backend/event_handler_ws.gd
index c011161..2e5a032 100644
--- a/src/infra/repos/backend/event_handler_ws.gd
+++ b/src/infra/repos/backend/event_handler_ws.gd
@@ -1,7 +1,8 @@
+@tool
 class_name EventHandlerWS
 extends EventHandler
 
-const BACKEND_URL = "http://192.168.0.147:5000/socket.io"
+const BACKEND_URL = "http://89.223.87.146:5004/socket.io"
 var _room_id: String = ""
 var _jwt_token: String = ""
 var _client: SocketIOClient
diff --git a/src/infra/repos/backend/reservation_http.gd b/src/infra/repos/backend/reservation_http.gd
index 831e7f3..2e4d3d2 100644
--- a/src/infra/repos/backend/reservation_http.gd
+++ b/src/infra/repos/backend/reservation_http.gd
@@ -2,7 +2,7 @@
 extends AbstractReservationRepo
 class_name ReservationRepoHTTP
 
-const BASE_URL = "http://192.168.1.178:5000"
+const BASE_URL = "http://89.223.87.146:5004"
 const RESERVATION_ENDPOINT = "/reservation/"
 const HEALTH_ENDPOINT = "/health/"
 
@@ -48,7 +48,7 @@ func get_reservation(reservation_id: String) -> ReservationEntity:
 	var result = await _http_client.request(RESERVATION_ENDPOINT + "%s" % reservation_id, HTTPClient.METHOD_GET)
 	return _parse_reservation_entity(result) if result is Dictionary else null
 
-func list_reservations(filters: Dictionary = {}) -> Array[ReservationEntity]:
+func list_reservations(filters: Dictionary = {}) -> Array:
 	var query = "?"
 	for key in filters:
 		query += "%s=%s&" % [key, filters[key]]
diff --git a/src/infra/repos/backend/room_http.gd b/src/infra/repos/backend/room_http.gd
index 17f59c8..1fa29dc 100644
--- a/src/infra/repos/backend/room_http.gd
+++ b/src/infra/repos/backend/room_http.gd
@@ -1,7 +1,8 @@
+@tool
 extends AbstractRoomRepo
 class_name RoomRepoHTTP
 
-const BASE_URL = "http://192.168.1.178:5000"
+const BASE_URL = "http://localhost:5004"
 
 signal rooms_loaded(rooms: Array[RoomEntity])
 signal request_failed(error_message: String)
@@ -23,6 +24,15 @@ func list_rooms() -> Array[RoomEntity]:
 		emit_signal("request_failed", "Failed to load rooms")
 		return []
 
+func get_room(id: String) -> RoomEntity:
+	var rooms = await list_rooms()
+
+	for room in rooms:
+		if room.id == id:
+			return room
+
+	return null
+
 func _parse_room_list(data: Array) -> Array[RoomEntity]:
 	var rooms: Array[RoomEntity] = []
 	for item in data:
diff --git a/src/infra/repos/local/reservation_local.gd b/src/infra/repos/local/reservation_local.gd
index 035060c..31f07e5 100644
--- a/src/infra/repos/local/reservation_local.gd
+++ b/src/infra/repos/local/reservation_local.gd
@@ -41,7 +41,7 @@ func change_reservation(reservation_id, dto: UpdateReservationDTO):
 func get_reservation(reservation_id):
 	return _reservations[reservation_id]
 
-func list_reservations(filters: Dictionary = {})  -> Array[ReservationEntity]:
+func list_reservations(filters: Dictionary = {})  -> Array:
 	var reservations = []
 
 	for key in _reservations: