I have a fully working Caldav java-based implementation to interact with ICloud calendars.
I would like to enhance it by implementing some kind of push notification mechanism similar to Google Calendar's so that I don't have to be constantly polling info from their servers and my server can be notified about changes happening in user's calendar list or calendar events such as:
- User adds/reschedules/deletes a calendar event in Apple's Calendar app
- User adds/deletes a calendar in Apple's Calendar app
Any advice on how to proceed or whether this is not feasible actually?
There is no standard protocol or framework for push notifications within Caldav and CardDAV, and different vendors may have their own proprietary solutions. For example, Google Calendar uses the Google Cloud Messaging service to send push notifications to Android devices, while Apple uses the Apple Push Notification Service to send push notifications to iOS devices. These services require the client to register with the vendor-specific service and obtain a device token, which the server can use to send push notifications to the client. One possible approach to implement push notifications for ICloud Caldav is to use the WebPush protocol, which is a W3C standard that enables web applications to receive push messages from a server, regardless of the vendor of the user agent. WebPush uses a simple publish-subscribe model, where the client creates a subscription with a push service and provides the subscription information to the server. The server can then use the subscription information to send push messages to the push service, which will deliver them to the client. WebPush is designed to be secure, reliable, and efficient, and can work with different types of clients, such as browsers, mobile apps, or desktop applications. You can try this link may help you for your reference. https://www.calconnect.org/resources/7-things-you-should-know-about/push