WITH RECURSIVE Calendar AS (
SELECT
room_id,
DATE(start_date) AS day,
DATE(end_date) AS end_date
FROM Reservations
WHERE room_id = 1
UNION ALL
SELECT
room_id,
DATE_ADD(day, INTERVAL 1 DAY) AS day,
end_date
FROM Calendar
WHERE day < end_date
)
SELECT DISTINCT day
FROM Calendar
ORDER BY day ASC;