Creo que es más sencillo.
Si tienes una tabla de CITAS y otra de HORARIOS, haces un left join y te quedas xon los que tengan la tabla de citas a nulos.
Código SQL
[-]SELECT * FROM HORARIOS
LEFT JOIN CITAS ON ( campo clave = campo clave)
WHERE CITAS.CAMPOX IS NULL
Creo que se entiende el código.
Saludos