When using predicateForEventsWithStartDate function, it looks like the events returned lies in a time interval of around 4 years. Is this a bug ?
Yes, it seems like a bug, me too had the same experience. The predicateForEventsWithStartDate: returns only events within a time interval of 4 years from the start date. All the other events lying outside the time interval wont be returned.