There are two issues with overlapping:
1) Showing overlapping events
DayPilot always shows what it gets in the data source. If there are two overlapping events both will be rendered. You can handle this on the data source level - you apply your rules in the SP/SELECT from the database or preprocess the loaded data in the application.
This behavior is not likely to be changed. I can't imagine other handling of overlapping events (other than joining them into one). So DayPilot will always, in order to prevent messy rendering, arrange the overlapping events in the same way.
2) Creating overlapping events
There are two places where it makes sense to handle:
A) On the client side where you could prevent time range selection in areas where there is another event already. This is not yet implemented. However, it's in the
roadmap as F11 Overlap protection. The release is not yet assigned. That might change if you really need it but see B) below.
B) On the server side, in TimeRangeSelected handler. Here you have a chance to check if the new event would match your rules (including overlapping with other events, but there can be other rules applied, like compliance with business hours, etc.). You can change the start/end date before saving it in the database. You should check the rules on the server side anyway (event with A) implemented). That means that A) is mainly a hint for the user about what is allowed or not.
Let me know if this helps.