Actually there is a little mistake, try this:
(currentListElement['endDate'] < chosenLecture['startDate']
|| currentListElement['startDate'] > chosenLecture['endDate'])
There is no collision in two cases:
- The lecture is set entirely before the current one. To check that, just make sure it ends before the current starts.
- The lecture is set entirely after the current one. To check that, just make sure it starts after the current ends.