There are two possible approaches:
1. Check the new event against the database before saving it. For a simple scenario (i.e. no recurring events) you can use the same logic you use for selecting events to be displayed. LINQ example (http://kb.daypilot.org/56894/how-to-use-daypilot-scheduler-with-linq-to-sql/):
var events = from ev in db.Events where !(ev.eventend <= start || ev.eventstart >= end) select ev;
2. You can also use asynchronous checking - that means you will allow adding the conflicting event but warn the users about it. The biggest advantage of this method is that you can show a complete list of the conflicts (and one new event can create many conflicts if you use recurring events).
This method is demonstrated in the Shift Scheduling Tutorial:
http://code.daypilot.org/34377/shift-scheduling-tutorial-asp-net-sql-server-c-vb-net
You can test it online here:
http://www.daypilot.org/tutorial/shifts/
The upcoming 7.1 release will bring a new ConflictDetector API. It will be possible to use multiple data sets for the detection (including automatic recurring events expansion).
Example:
GridView1.DataSource = new ConflictDetector()
.Add(standardEventsDataTable, "start", "end", null)
.AddRecurring(recurringEventsDataTable, "start", "end", null, "recurrence", "id", "master")
.ForRange(DateTime.Today, DateTime.Today.AddYears(1))
.List;
See also:
http://www.daypilot.org/daypilot-pro-for-asp-net-webforms-7-1.html