Q:

Error creating reminder using EventKit

I have an app that uses EventKit. I ask for permission for reminders and then I have code that creates a reminder. I sometimes get this error message in my logs when running the app in the simulator:
Error getting changed object IDs since timestamp 450512391.766620 from daemon: Error Domain=EKCADErrorDomain Code=1013 "The operation couldn’t be completed. (EKCADErrorDomain error 1013.)"
Error getting default calendar for new reminders: Error Domain=EKCADErrorDomain Code=1013 "The operation couldn’t be completed. (EKCADErrorDomain error 1013.)"

The first error comes from the authorization step and second comes from these lines:
EKReminder *reminder = [EKReminder reminderWithEventStore:eventStore];
reminder.calendar = eventStore.defaultCalendarForNewReminders;

This happens after requestAccessToEntityType:completion: returns granted permission for reminders, so there is definitely permission.
The weird thing is, once the issue happens if I just restart the app everything is fine. If I reset the simulator and rerun the app this only sometimes will happen again.

A:

This seems to only happen with the following workflow:

Reset All Contact and Settings Menu Option.
Quit simulator right away when it comes back up.
Run your app which immediately asks for Calendar info on the just-reset, never-opened-before simulator.

I suspect the reason is because when you reset the entire simulator, it needs a few seconds to initialize all the demo data such as the contacts and calendar events when it "boots" for the first time.
If you wait 10+ seconds after reset, THEN run your app, you do not get this warning.
Another workaround is to use the "Reset Privacy Settings" in iOS Simulator Settings App (General > Reset) during testing of calendar permission testing.

