predicateForEventsWithStartDate:endDate:calendars
特定の 24 時間に発生するすべてのイベントを検索するために使用しています。イベントの一部がこの日に行われるすべてのイベントが必要です。複数日にまたがるイベントの処理に苦労しています。つまり、午後 10 時に開始し、「翌日」の午前 2 時に終了します。
述語クエリは、検索を実行するときにカレンダー イベントの開始日のみを考慮しているようです。指定した時間内に開始された (およびその後終了した) イベントが表示されますが、その期間の前に開始され、その後にリークされたイベントは表示されません。
開始日を早く設定して、今日が始まる前に終了するイベントを削除することもできます。
Apple Docs は特に洞察に満ちたものではありません。
(NSPredicate *)predicateForEventsWithStartDate:(NSDate *)startDate endDate:(NSDate *)endDate calendars:(NSArray *)calendars
startDate: // The start date of the range of events fetched.
endDate: // The end date of the range of events fetched.