Lo que tenés que confirmar es que no haya ningún evento que empiece "entre" otro evento programado.
Supongo que tendrás $fecha_inicio y $fecha_fin para validar, y que cada evento ya programado tiene los mismos datos en la bd.
Por tanto, tenés que validar que:
- el nuevo no empiece en medio de otro
- el nuevo no termine en medio de otro
Esto podría ser suficiente si tenés duraciones fijas para los eventos, de no ser el caso necesitás también validar que
- ninguno de los viejos tenga fecha de inicio entre la fecha de inicio del nuevo y la fecha de fin
Código PHP:
SELECT [campo] FROM [tabla]
WHERE $fecha_inicio BETWEEN [campo_fecha_inicio] AND [campo_fecha_fin]
OR $fecha_fin BETWEEN [campo_fecha_inicio] AND [campo_fecha_fin]
OR campo_fecha_inicio BETWEEN $fecha_inicio AND $fecha_fin
Si eso te devuelve al menos un resultado, tenés una superposición.
Eso es lo que he entendido de tu problema, ya que no has dejado muchos detalles.
Saludos.