After my unit tests showed all green, there was still a bug in my code.
System.NotSupportedException: LINQ to Entities does not recognize the method ‘System.Collections.Generic.IList`1[iCal.ISchedulerEvent] ProcessItem(iCal.ISchedulerEvent)’ method, and this method cannot be translated into a store expression.
Solution is to call the ToList() method to get the data into dotNET.
var possibleResults = DbSet
.Where(item => item.Start < request.End)
.ToList(); // else the link-to-entities will complain
var result = possibleResults
.SelectMany(item => ProcessItem(item))
.OrderBy(item => item.Start)
.FirstOrDefault();