Yo estoy haciendo algo parecido y lo que hago es crear una cadena de 0 y 1 dividiendo el día en 32 parcelas de 1/2 hora: 7h00-7h30, 7h30-8h00 y así hasta 22h30-23h00.
esa cadena la guardo en el registro de la cita donde, en otros campos tengo la fecha, la persona y el tema.
Así luego puedo trabajar esa cadena para mostrar las horas de la cita.
Espero te sirva.