Die kurze Antwort ist, dass Sie nicht können. Apple lässt es nicht zu, dass eine App solche Vorgänge im Hintergrund ausführt, da es erfordert, dass die CPU eingeschaltet wird, wenn sie ansonsten ausgeschaltet wäre.
Wenn Ihre App läuft, können Sie alle Ereignisse in naher Zukunft (sagen wir zwei Wochen) lesen und eine "lokale" Push-Benachrichtigung für die Ereigniszeit einrichten.
Auch wenn der Benutzer Ihre App ziemlich oft startet, erlaubt Apple Ihrer App die Aktualisierung mit Hintergrund-App-Aktualisierung. Das Gerät führt dies normalerweise am Morgen vor jeder beliebigen Zeit durch, zu der der Benutzer normalerweise aufwacht, und schaltet sein Telefon zum ersten Mal jeden Tag ein und den ganzen Tag über auch entsprechend der Aktivität des Benutzers. Sie können während der Aktualisierung der Hintergrund-App alles tun, was Sie möchten.
Ein weiterer Schlüssel in der Arbeit ist, wie Apples vollständige Festplattenverschlüsselung funktioniert. Wenn das Telefon gesperrt ist, kann Ihre App nicht viel ausrichten. Die meisten Daten auf dem Telefon sind mit dem Passwort des Benutzers verschlüsselt. Bis der Benutzer seinen Passcode eingibt, kann nicht viel getan werden. In diesem Fall wird die Aktualisierung der Hintergrund-App ausgeführt, sobald sie ihren Passcode eingeben, aber bevor sie Ihre App starten.
Vielleicht könnte ein Remote-Server auch Push-Benachrichtigungen an das Telefon senden. Nicht sicher, ob dies für Sie eine Option ist oder nicht. Offensichtlich bedeutet dies, dass der Server Zugriff auf die Kalenderdaten des Benutzers benötigt.
Ja, ich dachte über den Standort und "auf Home-Taste drücken" Ereignisse. – snaggs