in reply to SQL Query for Scheduling

Yes, you should do it in SQL. I'd use something like (untested, I don't have a database available at the moment):
CREATE TABLE employee ( -- Lists availability times ID NUMERIC, start DATETIME, end DATETIME ); CREATE TABLE scedule ( -- Lists scedules appointments ID NUMERIC, -- Foreign key into employee start DATETIME, end DATETIME ); CREATE TABLE appointment ( -- Unsceduled appointments ID NUMERIC start DATETIME, end DATETIME ); SELECT employee.ID, appointment.ID FROM employee, appointment WHERE employee.start <= appointment.start AND -- Check availability employee.end >= appointment.end AND employee.ID NOT IN ( -- Exclude employees who -- already have an appointment SELECT scedule.ID FROM scedule, appointment WHERE scedule.start <= appointment.end AND scedule.end >= appointment.start )