From my experience it is a common mistake to do overlap comparisons of intervals this way.
https://github.com/fmeringdal/nettu-scheduler/blob/df737e128...
IMO start time should be treated as inclusive, and end time as exclusive.
E.g. an event from 1pm-2pm does not overlap with an event starting at 2pm because it's end-time is defined as exclusive.
Therefore you need to replace one of you greater/lower-than's with a normal greater/lower comparison operator.