Syncing of Calendar with iCloud lose the CalendarIdentifier - ios

I am developing a Calendar App. In which calendars can be create by user and also need the iCloud Syncing feature so that user can get the same calendars on his/her other device. Now according to Apple Document:
A full sync with the calendar will lose this identifier. You should have a plan for dealing with a calendar whose identifier is no longer fetchable by caching its other properties.
CalendarIdentifier property of EKCalendar is not reliable. And using other properties we can not differentiate the calendar as well that it is made by iOS Native Calendar App or My Calendar App. So I am stuck here and trying to find any reliable solution. But not able to find till now so please help me for this to get the solution. I will be thankful to you.

Related

watchOS: Fetching EventKit calendars - more than enabled

I have a watchOS (only) app and fetching calendars and events for these calendars. In my Watch App I have set the calendar app to mirror the calendars from iPhone. When I now uncheck a calendar on iPhone as active my app still get this disabled calendar when fetching all calendars.
Why do I get disabled calendars from EventKit? This is the line I am using to fetch calendars:
EKEventStore().calendars(for: .event)
Also the problem occurs when I set calendars not to mirror, instead set custom calendars for the watch still all calendars got fetched.
How can I just fetch the calendars that are really active.
The calendars only have these properties, so nothing where I can check if active or not:
EKCalendar <0x127fb6f0> {title = Test1; type = CalDAV; allowsModify = NO; color = #1BADF8;}
Any ideas?
I had submit an apple TSI. The result is that this functionality is not supported. The answer:
We have reviewed your request and have concluded that there is no supported way to achieve the desired functionality given the currently shipping system configurations.

Can I integrate an iOS calendar in my app?

At the moment I am creating an iOS app with Swift.
In the app I want among others one of my shared iCloud calendars to be displayed.
It would be best if this iOS calendar is just displayed within the app.
An important feature is that if I add an event in my shared calendar it should of course also be added to the app.
An amazing but optional feature would be:
My AppleID of course can edit the calendar. If the app would recognise that I am using a device with an AppleID that is allowed to edit the calendar so that I would be able to edit the calendar.
To sum it up: it would be best if in my app the iOS calendar is just embedded.
Thank you for your help
I think this is what you looking for https://developer.apple.com/documentation/eventkit
EventKit is the way to read from the calendar.
After that, you can choose how to display the events that you get. The easiest way for me was in a UITableView.

How do you reliably find an iOS Calendar?

The calendarIdentifier property on EKCalendar says that a full sync will lose the identifier. How are we supposed to track a calendar then? It's not possible to just trust the name of the calendar because nothing prevents the user from changing the name. Not only that, nothing prevents two calendars from having the same name.
What I'm basically dealing with is that my Team object has an associated subscribed calendar, and I need a way to link those two together. The obvious solution is to store the calendarIdentifier in the Team object once it's created, but that won't work based on the documentation.

Add Invitees to calendar event programmatically iOS

I've been trying to look for the answer to this quite some time.
Apple EventKit documentation isn't allowing changing meeting invitees programmatically since those properties in an EKEvent are read-only.
I'm trying to find a way to create a calendar meeting (not necessary using EventKit), adding invitees to the meeting and setting it programatically.
Any solution will be great,
Thanks!
As you already figured out you cannot currently write meeting fields in iOS (AFAIK EventKit is the only API giving you access to the calendar database on iOS).
If you know what kind of account it is (and get the credentials from the user), you could sidetrack EventKit and directly create meetings on the server. Eg using EWS when the account is on Exchange or CalDAV when the account is on iCloud or Apple Calendar Server etc.
And finally you always have the option to send out meeting invites via iMIP. Though you would still need to get the event into the users calendar (so that replies have a target). Depends on your useless whether this is useful.

Google Sync the calendar on iOS

I am quite new to iOS, and I would appreciate if you can give me a clue on how to tackle this issue.
I am planning a mobile application and a cloud service to require "Google calendar is sync with the calendars on mobile devices" ( namely iPhone, iPad, and Android )
On Android, I can read calendar's event id from our Android app. If I change event attributes such as tile and time etc, the event id stays unchanged, and it seems to be a good way to associate our meta data to it (i.e. event id).
On iOS side, if I enable Google Sync, the events I defined on web still appear on the calendar on iOS. My question is "Can I problematically get event id that are assigned on Google Calendar?"
The following link says
"EKEvent's eventIdentifier is likely to be changed when event changes"
http://developer.apple.com/library/ios/#documentation/EventKit/Reference/EKEventClassRef/Reference/Reference.html#//apple_ref/occ/instm/EKEvent/eventIdentifier
... so my guess is that this field does not reflect event id from Google calendar.
I appreciate any suggestions.
Usually the event identifier is of the form:
88E45678-2S11-574E-ABF8-3B1E463ERF4C:google_calendar_id#google.com
for a google sync calendar event.
If there was a change made to one of the recurring calendar events the identifier can also have exception date at the end:
88E45678-2S11-574E-ABF8-3B1E463ERF4C:google_calendar_id#google.com<!ExceptionDate>20121025

Resources