Tu lógica no tiene mucha lógica
Yo haría:
1- Generar un arreglo con días y horas
2- Ejecutar la consulta para obtener todas las citas de la semana
3- Leer todos los resultados y poner en el arreglo las citas que correspondan a día y hora
4- Crear el HTML necesario para mostrar la agenda
No se puede sugerir otra cosa con la poca información que proporcionas, espero puedas solucionar tu problema.