EventKit

RSS for tag

Create, view, and edit calendar and reminder events using EventKit and EventKitUI. Request read-only, write-only, or full-access to Calendar data.

Posts under EventKit tag

146 Posts

Post

Replies

Boosts

Views

Activity

Subscribed Calendar Issue
I'm running into issues with iOS respecting the HTTP 410 "Gone" response type. Setup: Using the native iOS Calendar app, add a new subscription calendar. "Add Subscription Calendar" Add the URL of a ICS calendar subscription that you control, e.g. https://mywebsite.com/userfeeds/23/cal.ics Make sure to select the "Account" option and choose "On My iPhone/iPad". Set the query amount to 15 mins. Calendar events show as expected, device queries the latest updates from the server every 15 minutes. Server returns HTTP 200 with the .ics contents. Now, assume there is a need for the feed to end - maybe the user unsubscribed to mywebsite.com. There is currently no way for the mywebsite.com server / response to tell the device the feed has ended and it should stop requesting. If the user forgets to go to calendar and manually unsubscribe the device will continually ping the server every 15 minutes indefinitely. It's turning into a virtual DoS for my platform. iOS should respect the HTTP 410 "Gone" header or something similar. If the server returns a HTTP 410 response code for https://mywebsite.com/userfeeds/23/cal.ics X amount of times, the feed should be automatically removed. I've opened several tickets over the last 3 years and have not even had a status change on the tickets. Does anyone know how to resolve this or a work around?
0
0
520
Apr ’25
Calendar "Today's Events" Issue
Device: iPhone 16 Pro iOS version: 18.3.2 The calendar widget (on home screen) is displaying "No more events today" even though there is an appointment scheduled later in the evening on the same day. I have looked through all the settings and nothing seems to work. How do I get it to display events that are on the calendar for rest of the day today. It does correctly display events that are upcoming tomorrow and next week. Thanks, -Harry
1
0
354
Apr ’25
Secure Integration of Apple Calendar (iCalendar) in a Third-Party App
Hi everyone, We’re integrating Apple Calendar (iCalendar) into our Codapet app but haven’t found any official Apple APIs for event management and synchronisation. Currently, we use CalDAV with Apple ID authentication and an app-specific password (ASP), storing the ASP encrypted in our database and decrypting it for each API call. We’re looking for a more secure and recommended approach to this integration. Does Apple provide dedicated APIs for calendar sync, or is there a better alternative to avoid sending the ASP with every request? Any guidance or best practices would be greatly appreciated! Thanks!
0
0
361
Mar ’25
EKCalendarChooser and Siri Suggestions
When using EKCalendarChooser it shows a list of calendars that the user can select, however it shows the Siri Suggestions calendar but theres no way to access it. Are supposed to be able to access the Siri Suggestions calendar as a regular EKCalendar? If yes is there a way to persist the selection (currently you can select the Siri Suggestions calendar [as shown in the image] but it doesn't have an actual id so it doesn't persist)? Also when getting EventStore.calendars(for: .event) it doesnt return an EKCalendar for Siri Suggestions, only for all the other calendars. This leads me to believe we can't access it, which in that case why is it shown on the EKCalendarChooser and there doesn't seem to be a way to hide it. Also is there a way to hide the AddCalendar Button in the bottom left?
1
0
636
Jan ’25
EKEventStore on Apple Watch not showing all calendars
I have released a watchOS-specific application that retrieves data from the iPhone calendar app and displays it on the Apple Watch. It uses the calendars function in EKEventStore to retrieve the list of calendars, but it seems that it sometimes fails to retrieve iCloud calendars. Trouble is, this problem only occurs in a very few users‘ environments, the majority of other users’ environments are able to retrieve them without any problems, and I cannot reproduce it at all in my environment. Local calendars and Google calendars seem to be retrieved without any problems. Minimal example code: import SwiftUI import EventKit struct ContentView: View { let eventStore = EKEventStore() @State var success: Bool = false @State var calendarNames: [String] = [String]() func request() async { success = (try? await eventStore.requestFullAccessToEvents()) ?? false } func list() { calendarNames = eventStore.calendars(for: .event).map { $0.title } } var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Access: \(success.description)") ScrollView { ForEach(calendarNames, id: \.self) { name in Text(name) } } } .onAppear { Task { await request() list() } } .padding() } } I asked the user experiencing the problem to try restarting the iPhone and Apple Watch, reinstalling the app and re-pairing them, but there was no change. I would appreciate any information you can provide. Best regards.
1
0
527
Dec ’24
How to add a reoccurring Hebrew Event to a calendar.
Currently Apple has their own calendar called Birthdays which takes the birthdays from contacts and makes it as a regular calendar event along with the birthday number, they even do this for Hebrew Birthdays. I have tried (unsuccessfully thus far) to take the same concept and create a calendar for reoccurring events on a specific date in the Hebrew Calendar. An example of this would be Yahrtzeits, which is observed on the Hebrew date each year after a person dies. I want to add it to the system calendars like how Apple does it this way it can be used with any app not just my own. Currently there isn't a way to specify the calendar (like Calendar(identifier: .hebrew) or even make a custom EKRecurrenceRule, also from some of the debugging of the Birthdays calendar, it seems that the date saved is the Gregorian date and that theres some internal calculations happening. Is there a way to add reoccurring Hebrew Events or do I need to reinvent the wheel?
1
0
618
Nov ’24
EventKit refreshSourcesIfNecessary() not triggering real-time sync with Google Calendar events
I'm working on an app that uses EventKit to access calendar events. For users with external calendars like Google Calendar, they can sync these by adding the account through iOS Calendar settings. Once added, the events appear in my app as expected. However, if a user adds a new event in Google Calendar, there’s often a delay before it appears in my app, since the iOS Calendar doesn't sync with external sources like Google in real time. Currently, users can manually trigger a sync by opening the Apple Calendar app and using the pull-to-refresh feature under the "Calendars" tab. This works reliably but isn’t an ideal solution. I tried using the EventKit method refreshSourcesIfNecessary() to minimize the delay, as it claims to "[Pull] new data from remote sources, if necessary" (link to docs). I trigger this method when the app returns to the foreground. But, I'm not seeing the expected results. Here’s a typical sequence: Open my app and send it to the background. Add an event in Google Calendar. Return to my app. Despite invoking refreshSourcesIfNecessary(), the new event doesn’t appear in Apple Calendar (or accordingly in my app), until some random delay (30 seconds to several minutes). In contrast, the Apple Calendar app’s pull-to-refresh fetches the event immediately, every time. Am I misinterpreting how refreshSourcesIfNecessary() is intended to work? Or is there another way to achieve a faster sync with external calendars?
1
0
708
Nov ’24
EKEventStore unable to save events
I have a feature where I need to write some events to the calendar. It's not working saying Calendar is read only. So I tried the sample app from Apple - Repeating lessions and drop in lessions from link below https://developer.apple.com/documentation/eventkit/accessing_calendar_using_eventkit_and_eventkitui Drop in sessions which uses EKEventEditViewController works fine. But when I run Repeating lessions which requires calendar permissions it keeps saying Calendar is read only. I have hit allow on the access permissions alert and also check settings which shows app has required permissions. can someone help why this is the case? if its a Calendar issue where do you set the modifiable permissions for it? How is EKEventEditViewController able to save events if the Calendar is readonly.
1
0
730
Oct ’24
Array<NSNumber> not working for EKRecurringRule in EventKit
I am having an issue here with the NSNumber Type using with SwiftUI and I am not sure what I am doing wrong here? @State private var recurringMonthsTest: NSNumber = 1` let rule = EKRecurrenceRule( recurrenceWith: recurringOn, interval: recurringInterval, daysOfTheWeek: [EKRecurrenceDayOfWeek.init(EKWeekday.monday)], daysOfTheMonth: [], monthsOfTheYear: [recurringMonthsTest], weeksOfTheYear: [], daysOfTheYear: [], setPositions: nil, end: EKRecurrenceEnd.init(occurrenceCount: 8)) } Here is some basic Code to explain the issue, if you look at the above code it works well, I can also put 2 or more NSNumber single values inside the rule. But if I start to use the Array as below let recurringMonthsTest2: Array<NSNumber> = [recurringMonthsTest, recurringMonthsTest1] let rule = EKRecurrenceRule( recurrenceWith: recurringOn, interval: recurringInterval, daysOfTheWeek: [EKRecurrenceDayOfWeek.init(EKWeekday.monday)], daysOfTheMonth: [], monthsOfTheYear: [recurringMonthsTest2], weeksOfTheYear: [], daysOfTheYear: [], setPositions: nil, end: EKRecurrenceEnd.init(occurrenceCount: 8)) } It doesn't compile and I get the below error which I don't understand. `Cannot convert value of type 'Array' to expected element type 'Array.ArrayLiteralElement' (aka 'NSNumber') As I understand both are of the same value but why they don't compile? I tried already several versions like [NSNumber] = [] but everything is failing... What am I doing wrong here, can anyone help?
1
0
933
Aug ’24
How to open Calendar app event's detail by its ID
Hey there, I'd like to ask for guidance on how to open the Apple Calendar app's event programmatically. I can already list events, but I'm struggling to open the calendar detail view (upon user interaction). I've tried many variants, such as using the x-apple-calevent URL scheme or calshow:\, etc., but none of them worked. Here's the code I'm using: if let eventIdentifier = event.eventIdentifier as String?, let calendarId = event.calendarId as String? { if let url = URL(string: "x-apple-calevent://\(calendarId)/\(eventIdentifier)") { NSWorkspace.shared.open(url) } } Once the action is triggered, it tells me that: There is no application set to open the URL x-apple-calevent://909114A0-6352-47DB-B70E-2770H7D5B6D3:7q50iih7fvbio3qipk5m7osjig@google.com Thanks a bunch! Tom
1
0
1.7k
Jul ’24
Event Message Error Undocumented.
I am getting a lot of messages of the nature that follows; "RoomPlanExampleApp[606:114689] [ClientDonation] (+[PPSClientDonation sendEventWithIdentifier:payload:]) Invalid inputs: payload={ aneModelPath = "/System/Library/PrivateFrameworks/ObjectUnderstanding.framework/PrecompiledModels/od_af_online.bundle/H14G.bundle/main/main_ane/model.hwx"; bundleIdentfier = "com.example.apple-samplecode.RoomPlanExampleApp9QSS565686"; }" WHAT is the component origin of the message? What can be done to remedy it? This is another example of an error message that does not have enough information for the developer to take remedial action.
1
1
1.2k
Jun ’24
"Join" button next to video conference meeting URL in iOS/macOS native calendar
iOS and macOS native calendar application detects URL's from video conferencing apps (e.g. Webex, Zoom, Microsoft Teams, Google Meet etc.). Even though these apps are not installed on the iPhone, it detects from the URL that the URL is of video conferencing/voip app and shows a 'Join' button next to URL and video icon, also the application icon if application is already installed on phone and tapping "Join" will redirect to app and Joins meeting. For example if the URL is for Zoom meeting is pasted in the iOS or macOS native Calendar event, it shows are Zoom meeting with "Join" button and video icon to indicated it video conference. Does apple provide and api for this integration, I have app which also do a video conference with URL, what is the way to make my app's URL recognized as Video Conference and show "Join" button as other above mentioned application. Does anyone know how to achieve this or made it work for their application. Appreciate any help, thanks
0
0
903
Feb ’24
Permission issue accessing Reminders through EventKit in MacOS app
Hello, I have an app that I would like to have read and write access to Reminders using EventKit, but on MacOS 14 (14.2.1) when I call requestFullAccessToReminders I get error = nil, success = false (even when access is granted) and there is no permission prompt to use user when access has not yet been granted. Note this is not an issue in iOS. Here's a stripped down example of what I'm talking about import EventKit struct ContentView: View { let store = EKEventStore() @State var permissionState = "Ready to Request" var body: some View { VStack { Text(permissionState).font(.title) Button("Request Access") { requestFullAccessToEvents() }.padding() } .padding() } func requestFullAccessToEvents() { store.requestFullAccessToReminders { (granted, error) in if let foundError = error { permissionState = "Error: " + foundError.localizedDescription } else if granted { permissionState = "Permission Granted" } else { permissionState = "Permission Denied" } } } } then the plist <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>NSRemindersFullAccessUsageDescription</key> <string>something meaningful</string> </dict> </plist> I managed to find an error in the log saying Received error from calaccessd connection: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.CalendarAgent was invalidated: failed at lookup with error 159 - Sandbox restriction." UserInfo={NSDebugDescription=The connection to service named com.apple.CalendarAgent was invalidated: failed at lookup with error 159 - Sandbox restriction.}. Attempting to call any reply handler. So in the Signing & Capabilities tab I added Calendars to the App Sandbox, and that seemed to fix the issue, after that the user gets prompted for access to Reminders as expected or gets access depending on the access granted. Then I tried to release the app and I got rejected from the App Store because my app isn't using calendars, but of course I'm asking for access in the sandbox. So is this the wrong way to get permission for access, and if so, what is the correct way? Thanks!
1
0
1.3k
Feb ’24
Issue with Calendar Access
I have a watch app that is supposed to access the calendar and display information about the event and then count down until that event. But ever since the IOS 17.0.0 and watchOS 14.0.0, the old method of requesting access does not work (though it still works with the reminders). I tried to add a new authorization method that fits with the later version. static func requestAccess() { let eventStore = EKEventStore() let todayDate : Date = Date() let status = EKEventStore.authorizationStatus(for: .event) if status == .authorized { print("Access is already granted.") } else { print(status.rawValue) eventStore.requestFullAccessToEvents { success, error in if success && error == nil { print("Access has been granted.") } else { print(error ?? "unknown error") print("Access request failed with error: \(error?.localizedDescription ?? "Unknown error")") } } } } NSCalendarsWriteOnlyAccessUsageDescriptionHowever, even though I have both the NSCalendarWriteOnlyAccessDescription, adn the older NSCalendarUsageDescription as shown here: But the watch app not only fails to show a message to the user requesting access to the events on the watch, when I try to see what is causing the problem (despite the plist clearly showing the message), all I get is this output: Does anyone know what is the problem, even though the plist clearly has descriptions. Thank you in advance.
0
0
1.1k
Jan ’24
Subscribed Calendar Issue
I'm running into issues with iOS respecting the HTTP 410 "Gone" response type. Setup: Using the native iOS Calendar app, add a new subscription calendar. "Add Subscription Calendar" Add the URL of a ICS calendar subscription that you control, e.g. https://mywebsite.com/userfeeds/23/cal.ics Make sure to select the "Account" option and choose "On My iPhone/iPad". Set the query amount to 15 mins. Calendar events show as expected, device queries the latest updates from the server every 15 minutes. Server returns HTTP 200 with the .ics contents. Now, assume there is a need for the feed to end - maybe the user unsubscribed to mywebsite.com. There is currently no way for the mywebsite.com server / response to tell the device the feed has ended and it should stop requesting. If the user forgets to go to calendar and manually unsubscribe the device will continually ping the server every 15 minutes indefinitely. It's turning into a virtual DoS for my platform. iOS should respect the HTTP 410 "Gone" header or something similar. If the server returns a HTTP 410 response code for https://mywebsite.com/userfeeds/23/cal.ics X amount of times, the feed should be automatically removed. I've opened several tickets over the last 3 years and have not even had a status change on the tickets. Does anyone know how to resolve this or a work around?
Replies
0
Boosts
0
Views
520
Activity
Apr ’25
EKEventStore save throws error "access denied" since iOS 18.4+, macOS 15.4+
Since iOS 18.4 and macOS 15.4 updating the calendar of an (ek)event (to another accounts calendar) or detaching an repeating event throws an error while saving: "Access denied" EKEventStore.save(event, span: .thisEvent, commit: true) catch { "Access denied" }
Replies
1
Boosts
1
Views
412
Activity
Apr ’25
Calendar "Today's Events" Issue
Device: iPhone 16 Pro iOS version: 18.3.2 The calendar widget (on home screen) is displaying "No more events today" even though there is an appointment scheduled later in the evening on the same day. I have looked through all the settings and nothing seems to work. How do I get it to display events that are on the calendar for rest of the day today. It does correctly display events that are upcoming tomorrow and next week. Thanks, -Harry
Replies
1
Boosts
0
Views
354
Activity
Apr ’25
Secure Integration of Apple Calendar (iCalendar) in a Third-Party App
Hi everyone, We’re integrating Apple Calendar (iCalendar) into our Codapet app but haven’t found any official Apple APIs for event management and synchronisation. Currently, we use CalDAV with Apple ID authentication and an app-specific password (ASP), storing the ASP encrypted in our database and decrypting it for each API call. We’re looking for a more secure and recommended approach to this integration. Does Apple provide dedicated APIs for calendar sync, or is there a better alternative to avoid sending the ASP with every request? Any guidance or best practices would be greatly appreciated! Thanks!
Replies
0
Boosts
0
Views
361
Activity
Mar ’25
EKCalendarChooser and Siri Suggestions
When using EKCalendarChooser it shows a list of calendars that the user can select, however it shows the Siri Suggestions calendar but theres no way to access it. Are supposed to be able to access the Siri Suggestions calendar as a regular EKCalendar? If yes is there a way to persist the selection (currently you can select the Siri Suggestions calendar [as shown in the image] but it doesn't have an actual id so it doesn't persist)? Also when getting EventStore.calendars(for: .event) it doesnt return an EKCalendar for Siri Suggestions, only for all the other calendars. This leads me to believe we can't access it, which in that case why is it shown on the EKCalendarChooser and there doesn't seem to be a way to hide it. Also is there a way to hide the AddCalendar Button in the bottom left?
Replies
1
Boosts
0
Views
636
Activity
Jan ’25
EKEventStore on Apple Watch not showing all calendars
I have released a watchOS-specific application that retrieves data from the iPhone calendar app and displays it on the Apple Watch. It uses the calendars function in EKEventStore to retrieve the list of calendars, but it seems that it sometimes fails to retrieve iCloud calendars. Trouble is, this problem only occurs in a very few users‘ environments, the majority of other users’ environments are able to retrieve them without any problems, and I cannot reproduce it at all in my environment. Local calendars and Google calendars seem to be retrieved without any problems. Minimal example code: import SwiftUI import EventKit struct ContentView: View { let eventStore = EKEventStore() @State var success: Bool = false @State var calendarNames: [String] = [String]() func request() async { success = (try? await eventStore.requestFullAccessToEvents()) ?? false } func list() { calendarNames = eventStore.calendars(for: .event).map { $0.title } } var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Access: \(success.description)") ScrollView { ForEach(calendarNames, id: \.self) { name in Text(name) } } } .onAppear { Task { await request() list() } } .padding() } } I asked the user experiencing the problem to try restarting the iPhone and Apple Watch, reinstalling the app and re-pairing them, but there was no change. I would appreciate any information you can provide. Best regards.
Replies
1
Boosts
0
Views
527
Activity
Dec ’24
How to add a reoccurring Hebrew Event to a calendar.
Currently Apple has their own calendar called Birthdays which takes the birthdays from contacts and makes it as a regular calendar event along with the birthday number, they even do this for Hebrew Birthdays. I have tried (unsuccessfully thus far) to take the same concept and create a calendar for reoccurring events on a specific date in the Hebrew Calendar. An example of this would be Yahrtzeits, which is observed on the Hebrew date each year after a person dies. I want to add it to the system calendars like how Apple does it this way it can be used with any app not just my own. Currently there isn't a way to specify the calendar (like Calendar(identifier: .hebrew) or even make a custom EKRecurrenceRule, also from some of the debugging of the Birthdays calendar, it seems that the date saved is the Gregorian date and that theres some internal calculations happening. Is there a way to add reoccurring Hebrew Events or do I need to reinvent the wheel?
Replies
1
Boosts
0
Views
618
Activity
Nov ’24
EventKit refreshSourcesIfNecessary() not triggering real-time sync with Google Calendar events
I'm working on an app that uses EventKit to access calendar events. For users with external calendars like Google Calendar, they can sync these by adding the account through iOS Calendar settings. Once added, the events appear in my app as expected. However, if a user adds a new event in Google Calendar, there’s often a delay before it appears in my app, since the iOS Calendar doesn't sync with external sources like Google in real time. Currently, users can manually trigger a sync by opening the Apple Calendar app and using the pull-to-refresh feature under the "Calendars" tab. This works reliably but isn’t an ideal solution. I tried using the EventKit method refreshSourcesIfNecessary() to minimize the delay, as it claims to "[Pull] new data from remote sources, if necessary" (link to docs). I trigger this method when the app returns to the foreground. But, I'm not seeing the expected results. Here’s a typical sequence: Open my app and send it to the background. Add an event in Google Calendar. Return to my app. Despite invoking refreshSourcesIfNecessary(), the new event doesn’t appear in Apple Calendar (or accordingly in my app), until some random delay (30 seconds to several minutes). In contrast, the Apple Calendar app’s pull-to-refresh fetches the event immediately, every time. Am I misinterpreting how refreshSourcesIfNecessary() is intended to work? Or is there another way to achieve a faster sync with external calendars?
Replies
1
Boosts
0
Views
708
Activity
Nov ’24
How to give an iOS App running in Mac(designed for iPad) mode access to the Mac Calendars ?
My iOS app get access to Calendars on iPhone and iPad (iOS 17) bey when running on Mac (designed for iPad) the app gets the ".notDetermined" authorizationStatus after a call to EKEventStore.authorizationStatus(for: .event). What should I do so that my App gain access to Calendars ?
Replies
5
Boosts
0
Views
1.4k
Activity
Nov ’24
EKEventStore unable to save events
I have a feature where I need to write some events to the calendar. It's not working saying Calendar is read only. So I tried the sample app from Apple - Repeating lessions and drop in lessions from link below https://developer.apple.com/documentation/eventkit/accessing_calendar_using_eventkit_and_eventkitui Drop in sessions which uses EKEventEditViewController works fine. But when I run Repeating lessions which requires calendar permissions it keeps saying Calendar is read only. I have hit allow on the access permissions alert and also check settings which shows app has required permissions. can someone help why this is the case? if its a Calendar issue where do you set the modifiable permissions for it? How is EKEventEditViewController able to save events if the Calendar is readonly.
Replies
1
Boosts
0
Views
730
Activity
Oct ’24
ios18 spam calendar event removal
in ios17 you could "cut" a spam event and it would remove the series...in ios18 when you "cut" the series it removes but pop right back
Replies
1
Boosts
0
Views
756
Activity
Sep ’24
Array<NSNumber> not working for EKRecurringRule in EventKit
I am having an issue here with the NSNumber Type using with SwiftUI and I am not sure what I am doing wrong here? @State private var recurringMonthsTest: NSNumber = 1` let rule = EKRecurrenceRule( recurrenceWith: recurringOn, interval: recurringInterval, daysOfTheWeek: [EKRecurrenceDayOfWeek.init(EKWeekday.monday)], daysOfTheMonth: [], monthsOfTheYear: [recurringMonthsTest], weeksOfTheYear: [], daysOfTheYear: [], setPositions: nil, end: EKRecurrenceEnd.init(occurrenceCount: 8)) } Here is some basic Code to explain the issue, if you look at the above code it works well, I can also put 2 or more NSNumber single values inside the rule. But if I start to use the Array as below let recurringMonthsTest2: Array<NSNumber> = [recurringMonthsTest, recurringMonthsTest1] let rule = EKRecurrenceRule( recurrenceWith: recurringOn, interval: recurringInterval, daysOfTheWeek: [EKRecurrenceDayOfWeek.init(EKWeekday.monday)], daysOfTheMonth: [], monthsOfTheYear: [recurringMonthsTest2], weeksOfTheYear: [], daysOfTheYear: [], setPositions: nil, end: EKRecurrenceEnd.init(occurrenceCount: 8)) } It doesn't compile and I get the below error which I don't understand. `Cannot convert value of type 'Array' to expected element type 'Array.ArrayLiteralElement' (aka 'NSNumber') As I understand both are of the same value but why they don't compile? I tried already several versions like [NSNumber] = [] but everything is failing... What am I doing wrong here, can anyone help?
Replies
1
Boosts
0
Views
933
Activity
Aug ’24
How to open Calendar app event's detail by its ID
Hey there, I'd like to ask for guidance on how to open the Apple Calendar app's event programmatically. I can already list events, but I'm struggling to open the calendar detail view (upon user interaction). I've tried many variants, such as using the x-apple-calevent URL scheme or calshow:\, etc., but none of them worked. Here's the code I'm using: if let eventIdentifier = event.eventIdentifier as String?, let calendarId = event.calendarId as String? { if let url = URL(string: "x-apple-calevent://\(calendarId)/\(eventIdentifier)") { NSWorkspace.shared.open(url) } } Once the action is triggered, it tells me that: There is no application set to open the URL x-apple-calevent://909114A0-6352-47DB-B70E-2770H7D5B6D3:7q50iih7fvbio3qipk5m7osjig@google.com Thanks a bunch! Tom
Replies
1
Boosts
0
Views
1.7k
Activity
Jul ’24
Event Message Error Undocumented.
I am getting a lot of messages of the nature that follows; "RoomPlanExampleApp[606:114689] [ClientDonation] (+[PPSClientDonation sendEventWithIdentifier:payload:]) Invalid inputs: payload={ aneModelPath = "/System/Library/PrivateFrameworks/ObjectUnderstanding.framework/PrecompiledModels/od_af_online.bundle/H14G.bundle/main/main_ane/model.hwx"; bundleIdentfier = "com.example.apple-samplecode.RoomPlanExampleApp9QSS565686"; }" WHAT is the component origin of the message? What can be done to remedy it? This is another example of an error message that does not have enough information for the developer to take remedial action.
Replies
1
Boosts
1
Views
1.2k
Activity
Jun ’24
Detect if the current day have any events using EventKit
I was wondering how can I detect if a certain day have events using EventKit, without fetching the events. To display something like that:/Users/eng.omarelsayed/Downloads/IMG_D9B141B15D79-1.jpeg the dots under each day, which represent that this day contain event in it.
Replies
1
Boosts
0
Views
811
Activity
May ’24
How to detect if an event in EventKit is a virtula event or not ?
I started to use the EventKit APi and I like it so much but one missing thing is that I am trying to detect if the event is online or not. so if the event is online I will display something like apple does if not I will display the location od the event.
Replies
1
Boosts
0
Views
1.1k
Activity
Apr ’24
How do I read periodic reminders?
How do I read periodic reminders and calculate the trigger time myself?
Replies
0
Boosts
0
Views
777
Activity
Mar ’24
"Join" button next to video conference meeting URL in iOS/macOS native calendar
iOS and macOS native calendar application detects URL's from video conferencing apps (e.g. Webex, Zoom, Microsoft Teams, Google Meet etc.). Even though these apps are not installed on the iPhone, it detects from the URL that the URL is of video conferencing/voip app and shows a 'Join' button next to URL and video icon, also the application icon if application is already installed on phone and tapping "Join" will redirect to app and Joins meeting. For example if the URL is for Zoom meeting is pasted in the iOS or macOS native Calendar event, it shows are Zoom meeting with "Join" button and video icon to indicated it video conference. Does apple provide and api for this integration, I have app which also do a video conference with URL, what is the way to make my app's URL recognized as Video Conference and show "Join" button as other above mentioned application. Does anyone know how to achieve this or made it work for their application. Appreciate any help, thanks
Replies
0
Boosts
0
Views
903
Activity
Feb ’24
Permission issue accessing Reminders through EventKit in MacOS app
Hello, I have an app that I would like to have read and write access to Reminders using EventKit, but on MacOS 14 (14.2.1) when I call requestFullAccessToReminders I get error = nil, success = false (even when access is granted) and there is no permission prompt to use user when access has not yet been granted. Note this is not an issue in iOS. Here's a stripped down example of what I'm talking about import EventKit struct ContentView: View { let store = EKEventStore() @State var permissionState = "Ready to Request" var body: some View { VStack { Text(permissionState).font(.title) Button("Request Access") { requestFullAccessToEvents() }.padding() } .padding() } func requestFullAccessToEvents() { store.requestFullAccessToReminders { (granted, error) in if let foundError = error { permissionState = "Error: " + foundError.localizedDescription } else if granted { permissionState = "Permission Granted" } else { permissionState = "Permission Denied" } } } } then the plist <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>NSRemindersFullAccessUsageDescription</key> <string>something meaningful</string> </dict> </plist> I managed to find an error in the log saying Received error from calaccessd connection: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.CalendarAgent was invalidated: failed at lookup with error 159 - Sandbox restriction." UserInfo={NSDebugDescription=The connection to service named com.apple.CalendarAgent was invalidated: failed at lookup with error 159 - Sandbox restriction.}. Attempting to call any reply handler. So in the Signing & Capabilities tab I added Calendars to the App Sandbox, and that seemed to fix the issue, after that the user gets prompted for access to Reminders as expected or gets access depending on the access granted. Then I tried to release the app and I got rejected from the App Store because my app isn't using calendars, but of course I'm asking for access in the sandbox. So is this the wrong way to get permission for access, and if so, what is the correct way? Thanks!
Replies
1
Boosts
0
Views
1.3k
Activity
Feb ’24
Issue with Calendar Access
I have a watch app that is supposed to access the calendar and display information about the event and then count down until that event. But ever since the IOS 17.0.0 and watchOS 14.0.0, the old method of requesting access does not work (though it still works with the reminders). I tried to add a new authorization method that fits with the later version. static func requestAccess() { let eventStore = EKEventStore() let todayDate : Date = Date() let status = EKEventStore.authorizationStatus(for: .event) if status == .authorized { print("Access is already granted.") } else { print(status.rawValue) eventStore.requestFullAccessToEvents { success, error in if success && error == nil { print("Access has been granted.") } else { print(error ?? "unknown error") print("Access request failed with error: \(error?.localizedDescription ?? "Unknown error")") } } } } NSCalendarsWriteOnlyAccessUsageDescriptionHowever, even though I have both the NSCalendarWriteOnlyAccessDescription, adn the older NSCalendarUsageDescription as shown here: But the watch app not only fails to show a message to the user requesting access to the events on the watch, when I try to see what is causing the problem (despite the plist clearly showing the message), all I get is this output: Does anyone know what is the problem, even though the plist clearly has descriptions. Thank you in advance.
Replies
0
Boosts
0
Views
1.1k
Activity
Jan ’24