Hola @JonnyReyes,
normalizá el almacenamiento para que esté en 3ra Forma Normal al menos, de forma tal de que sea consistente y sin repeticiones.
Para una cita/agenda lo mínimo será:
id (int autoincremental)
inicio (datetime)
fin (datetime)
descripcion (varchar)
Luego, no hay como "deshabilitarlas", sino que tenés que hacer una query para ver si el inicio o fin de la cita nueva no se superpone con una cita existente.
Quedaría algo como:
SELECT * FROM Citas
WHERE (inicio >= "$fini" AND fin <= "$fini")
OR (inicio >= "$ffin" AND fin <= "$ffin")
Es decir, que la fecha y hora de inicio de una cita nueva no esté entre el inicio y fin de una existente, o que la fecha de fin de una cita nueva no esté entre el inicio y fin de una existente. Si esta query devuelve algún resultado, la franja horaria estará oculada; si no devuelve nada, estará libre.
Saludos!