I think there should be no problem. If you generate a calendar dynamically, you also assign the event handler using something like
DayPilotCalendar1.TimeRangeSelected += new TimeRangeSelectedEventHandler(yourHandler);
Even if yourHandler method is the same for all calendar instances, you should always be able to detect it from sender parameter:
void yourHandler(object sender, TimeRangeSelectedEventArgs e)
{
DayPilotCalendar cal = (DayPilotCalendar) sender;
// your code here
}