remindersdevs / Reminders

An open source reminder app
GNU General Public License v3.0
124 stars 19 forks source link

Add support for syncing with CalDAV #14

Closed xplosionmind closed 1 year ago

xplosionmind commented 1 year ago

Add the possibility of synchronizing with CalDAV

dgsasha commented 1 year ago

I will look into this, but it doesn't really seem necessary. This app is just meant to set reminders for things, it's not really a calendar app, and it doesn't follow the standards of typical calendar apps so it wouldn't sync all that well. I think syncing with Google tasks would make more sense, which is something I will consider adding.

dgsasha commented 1 year ago

Google Tasks doesn't support setting times when using it's API, but Microsoft To Do does. Once I learn how to use Microsoft's API I will probably add support for syncing with Microsoft to do. I think this would be a good feature so you can sync reminders from your phone to your desktop.

dgsasha commented 1 year ago

I probably won't have time to work on this anytime soon, if someone else wants to help with this, say something here and I can help you get started and will assist you with developing this feature. It's just going to be too much work to do myself.

Edit: I've actually began working on this and I've made a good amount of progress. The only problem is syncing recurring reminders with Microsoft To Do won't be possible, due to differences in how my app and Microsoft To Do work. I'll have to test this more after I finish developing it but expect support for this feature soon :)

dgsasha commented 1 year ago

Alright cloud syncing with MS To Do should be fully functional now, it will be available in version 2.0 soon. If anyone wants to test it just build the main branch.

hynet-mel commented 1 year ago

Though, the Microsoft To-Do option is a great addition on its own and many people can make use of it on it's own I did spot some misconception about CalDAV as it is not only calendar synchronization, and more seen as a standard to synchronize tasks as well over. Personally I store all my tasks and calendars in Nextcloud and keep the ones for work over in Google (as that is required there) but both use CalDAV to syncronize both over to my devices.

Which I believe was @xplosionmind 's initial suggestion. Here is a link of services compatible (or partially compatible) with CalDAV by tasks.org: https://tasks.org/docs/caldav_intro.html

I've never really don't anything like this either but I'd maybe see if I can mess around to make a PR or think along. But my familiarity with making GTK apps is very limited though :(

dgsasha commented 1 year ago

Though, the Microsoft To-Do option is a great addition on its own and many people can make use of it on it's own I did spot some misconception about CalDAV as it is not only calendar synchronization, and more seen as a standard to synchronize tasks as well over. Personally I store all my tasks and calendars in Nextcloud and keep the ones for work over in Google (as that is required there) but both use CalDAV to syncronize both over to my devices.

Which I believe was @xplosionmind 's initial suggestion. Here is a link of services compatible (or partially compatible) with CalDAV by tasks.org: https://tasks.org/docs/caldav_intro.html

I've never really don't anything like this either but I'd maybe see if I can mess around to make a PR or think along. But my familiarity with making GTK apps is very limited though :(

Yeah I was wrong about this. Reopening this issue.

dgsasha commented 1 year ago

I'll probably get started in about a week once I'm done with finals. Also, any help would be appreciated because I don't know much about CalDAV.

dgsasha commented 1 year ago

This feature will be available in v5.0 which will be released in the coming weeks. I've written all of the code for it but I havent really tested anything because I don't have any accounts that use CalDAV for tasks. Can anyone recommend a free service I can test this with?

hynet-mel commented 1 year ago

I'll probably get started in about a week once I'm done with finals. Also, any help would be appreciated because I don't know much about CalDAV.

Take your time, I can try to look around for similar projects/code but I am not the best when it comes to actual programming.

Can anyone recommend a free service I can test this with?

I see on tasks.org 's service section that https://fruux.com/ might be a good option, but I personally use my account over at disroot.org that has a lot of services. Just registering there takes a while due to manual screening.

dgsasha commented 1 year ago

I'll probably get started in about a week once I'm done with finals. Also, any help would be appreciated because I don't know much about CalDAV.

Take your time, I can try to look around for similar projects/code but I am not the best when it comes to actual programming.

Can anyone recommend a free service I can test this with?

I see on tasks.org 's service section that https://fruux.com/ might be a good option, but I personally use my account over at disroot.org that has a lot of services. Just registering there takes a while due to manual screening.

Thanks! I tried out fruux and it works alright. Pretty happy with how easy all of this was tbh. Most of the work I did on Microsoft To Do support was really easy to translate over to CalDAV. I'm also thinking about adding support for importing and exporting lists through .ical files but this might be delayed until after 5.0

dgsasha commented 1 year ago

v5.0 with CalDAV support is headed to Flathub Beta right now. Once its up can some people please test it and provide some feedback here? Everything seems to work for me, including recurring reminders, but it doesn't support everything in the CalDAV spec so there could be issues with some servers.

julianfairfax commented 1 year ago

v5.0 with CalDAV support is headed to Flathub Beta right now. Once its up can some people please test it and provide some feedback here? Everything seems to work for me, including recurring reminders, but it doesn't support everything in the CalDAV spec so there could be issues with some servers.

It works! However, it doesn't seem that the date is synced. I.e., if you create a task on a CalDAV server with https://tasks.org, and set the date for like "tomorrow", no date shows in Remembrance, and the task is sorted in alphabetical order.

dgsasha commented 1 year ago

v5.0 with CalDAV support is headed to Flathub Beta right now. Once its up can some people please test it and provide some feedback here? Everything seems to work for me, including recurring reminders, but it doesn't support everything in the CalDAV spec so there could be issues with some servers.

It works! However, it doesn't seem that the date is synced. I.e., if you create a task on a CalDAV server with https://tasks.org, and set the date for like "tomorrow", no date shows in Remembrance, and the task is sorted in alphabetical order.

The date should be synced through the DUE property. Maybe the server is setting the DTSTART property only. Can you access the data somehow, like downloading an icalendar file from the server? Then from there you could check what properties are being set on the VTODO components.

dgsasha commented 1 year ago

Actually ignore that, it looks like I messed something up

Edit: This is fixed in https://github.com/dgsasha/remembrance/commit/75948b704cf5fded55e2a57e18b2916e5808852e

julianfairfax commented 1 year ago

Actually ignore that, it looks like I messed something up

Edit: This is fixed in 75948b7

Yay! I'll update when it's on Flathub

AbrarSL commented 1 year ago

Can this be used to sync with Google Tasks? I tried to connect to a Google account but it won't seem to work?

EDIT: It looks like it might not be able to, https://developers.google.com/calendar/caldav/v2/guide#connecting_to_googles_caldav_server

dgsasha commented 1 year ago

Can this be used to sync with Google Tasks? I tried to connect to a Google account but it won't seem to work?

EDIT: It looks like it might not be able to, https://developers.google.com/calendar/caldav/v2/guide#connecting_to_googles_caldav_server

I don't think so, and I'm personally not going to be adding support for googles API due to all of the limitations that come with it. I messed around with it for a bit and it doesn't support syncing recurring tasks or reminders through the API, which would make adding support to this app pretty much pointless. I know some people probably like google tasks, and if anyone wants to make a pull request that adds support I would happily merge it, but it just seems like too much work for something that has barely any features. Endeavour already supports google tasks so if anyone wants to sync with google tasks they should probably just use that.