SELECT t.start, t.end FROM appointment_times t JOIN scheduled_availability s ON AND t.start >= s.start AND t.end <= s.end LEFT JOIN appointments a ON a.EmployeeID = s.EmployeeID AND t.start <= a.end AND t.end >= a.start WHERE a.EmployeeID IS NULL ;