Документация предупреждает, что «Если календарь события изменяется, скорее всего, меняется и его идентификатор».
Еще одна проблема: все экземпляры повторяющегося события имеют одинаковый идентификатор; -[EKEventStore eventWithIdentifier:]
похоже возвращает первый экземпляр. (Я даже видел события с нулевым идентификатором; я не могу вспомнить, какова точная причина.)
Если -eventWithIdentifier:
возвращает неповторяющееся событие, то, вероятно, вы готовы. В противном случае, самый простой способ обойти оба этих варианта - это, вероятно, поискать во всех календарях события в одно и то же время и использовать эвристику для определения наилучшего совпадения или попросить пользователя выбрать соответствующее событие, если ни одно из совпадений не является достаточно хорошим.
Возможно, вы также захотите проверить, что делает Календарь Google, когда вы редактируете один экземпляр повторяющегося события (это может создать событие с новым идентификатором и добавить «дыру» в повторяющейся информации исходного события, что может нарушить вашу эвристический).