iOS: Open a Calendar app New Event screen with populated date - ios

Is it possible to redirect a user to Calendar app New Event screen programmatically with populated start and end dates? I am aware of Introduction to Calendars and Reminders, but that seems to be an overkill. I have also tried calshow://, but didn't seem to work either or I am couldn't find a correct scheme.

Related

iOS Calendar's join button for video conferencing URLs

I noticed that the iOS calendar understands URL's of video conferencing app meetings (e.g. Webex, Zoom, Microsoft Teams, Google Meet etc.). Even when I have the app not installed on the iPhone, it knows from the URL that this is a videoconferencing app meeting link, so it show a section with the URL and a 'Join' button. If the app is installed, it shows the app icon (e.g. Webex), otherwise it shows a video icon.
I'm not sure if this is some capability of Universal links on iOS, but I have not found anything related to that in the documentation.
The calendar event was created outside of any of these apps and was simply a copy-paste of the meeting URL in the calendar event (created using Outlook), so nothing was done within the videoconferencing app to associate it with the calendar event. iOS Calendar seems to understand this from the meeting URL
Does anyone know how to achieve this effect of making the iOS calendar show a 'Join' button next to meeting URL?

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.

iOS: Create calendar with uneditable events?

From an app, is there a way to programmatically create a calendar with events that are uneditable? Or, what is the best way to achieve this as close as possible?
For example, Facebook events have a unique "Event Details" screen with their custom details. The user cannot edit the event from iCal, but instead have to click "View on Facebook".
1) I've explored creating local calendars and iCloud calendars but the user can easily edit the events and the calendars, including removing them, from iCal.
2) From the app, I cannot seem to create a new EKSource to have total control of the calendars I create in that source. Creating a new calendar in the existing CalDAV source also doesn't make it appear.
3) The EKCalendar class has an allowsContentModifications property, but it is readonly and cannot be modified.
Official response from Apple Developer Technical Support:
Our engineers have reviewed your request and have concluded that there
is no supported way to achieve the desired functionality given the
currently shipping system configurations.
So as of right now there isn't a way to do this.

How to programmatically access default alert time for calendar events?

In recent iOS versions, users may select a default alert time that will be used for all newly-created events (by going to Settings --> Mail, Contacts, Calendars --> Calendars / Default Alert Times, see http://www.imore.com/how-edit-calendar-defaults-alerts-and-sync-settings-iphone-and-ipad#calendar-alerts ).
I am looking through EventKit documentation and can't find a way to read this setting programmatically. I've tried creating a dummy event with [EKEvent eventWithEventStore:] and reading its alarms property, but it doesn't seem to have the default alarm set until I save the event. Of course, I could save the event, read its alarms property and then delete it right away, but it seems like an ugly solution.
What's the proper way to access this setting from code?

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