Si respondo bien la pregunta, con [:start, :end] siendo su rango de fechas de interés, está buscando:
select *
from event
where -- event started earlier, ends later
start <= :start and :start <= end
or -- event starts during [:start, :end]
:start <= start and start <= :end
or -- event ends during [:start, :end]
:start <= end and end <= :end;
Si está buscando un :day en particular , usa :day como :start y :day + 1 day como :end .