nextcloud / calendar

📆 Calendar app for Nextcloud
https://apps.nextcloud.com/apps/calendar
GNU Affero General Public License v3.0
952 stars 235 forks source link

Enable external calendar read-write. #2766

Open smallandsimple opened 3 years ago

smallandsimple commented 3 years ago

Is your feature request related to a problem? Please describe. It is frustrating that external calendars can only be added for viewing. For my use case, that functionality limitation impedes my family's entire ability to use the Nextcloud Calendar app

Describe the solution you'd like I would like to see an option implemented to add external calendars via a link that will enable calendar synchronization with an external CalDAV server. This would extend the functionality of the NextCloud app as a true one-stop-shop calendar where a user could both create and have full access to any calendars they need, including existing calendars from other services.

Describe alternatives you've considered Honestly, I can't think of any alternatives that would provide the needed functionality. I have already attempted using various third party applications and displaying them as 'external sites', however, so far, none provide the type of functionality that such a feature would enable if added to the Nextcloud Calendar. Aside from that, using the external sites requires an additional login, where added functionality could maintain saved credentials.

Additional context Here is an idea of what it might look like in the interface: image

dagguh commented 2 years ago

This is an important step when gradually de-Googling your personal life, family, friends and work.

silopolis commented 2 years ago

That'd surely be a major enhancement !

miguelarios commented 2 years ago

Yes! I want Nextcloud to be my calendar client just as it can be my mail client.

ant0nwax commented 2 years ago

I vote +1 if I may vote here, otherwise I would not be able to use nextcloud easily for mail AND appointments AND accept them

a calendar nowadays runs on the same system like the mail system imho

i will anyway make tries to use the internal nextcloud calendar instead of the one which is running and paired with the mail system inbox

rasos commented 2 years ago

SabreDAV also has a php library for a WebDAV/CalDAV/DardDAV client. This may be a starting point for nextcloud acting not only as a CalDAV server, but also as a client, even if the code on github seems quite outdated.

Their more actual serializers and deserializers also can be used both for the client and server use-cases. For example: https://github.com/sabre-io/dav/blob/master/lib/DAV/Xml/Response/MultiStatus.php

rasos commented 1 year ago

We might try to re-use parts of the Calcom's CalDav server code https://github.com/calcom/cal.com

Cal.com is a service for appointments handling and can play the client role for several calendar services.

calcomServers

Cal.com code is GPLv3 and uses:

Code to handle CalDAV calendar is in calcom/packages/app-store/caldavcalendar and in calcom/packages/lib/CalendarService.ts

tcitworld commented 1 year ago

That's not especially helpful, but thanks anyway.

The Sabre DAV client is already used at Nextcloud for pretty much the same things with WebDAV (basis of the federation feature) and the address book sync. It will have to get extended before anyway to support the REPORT WebDAV method.

As this issue is a required basis for Calendar sharing federation https://github.com/nextcloud/server/issues/1440, I'm starting to look at it more closely, but there's really a lot to do. :)

rasos commented 1 year ago

The tsdav library might be another candidate to fetch calendar events via CalDav into nextcloud. Has been tested with various cloud providers.

battosai30 commented 1 year ago

+1 for this feature.

moovinghead commented 1 year ago

+1 for this feature from me as well

mschilli87 commented 1 year ago

My current workaround is to run vdirsyncer via chron on the same server I am hosting my Nextcloud instance on to syncronize the remote calendar with a local copy of that calendar. Then, on all my devices I just sync all my Nextcloud calendars pushing and pulling changes to the remote calendar via its local copy. It takes a bit more work to setup properly and depending on the remote calendar might require an addional account for write access but at least I get read/write access to shared calendars via Nextcloud and khal. Just figured I share my approach in case it was useful for anyone else while waiting for this feature.

ant0nwax commented 1 year ago

Thanks for sharing, would it be a big thing if I request a draw.io diagram of your calendar setup? From the lines until now I hardly can imagine how many calendars are involved here for one account. And take your time if you are willing to illustrate it. Thank you

mschilli87 commented 1 year ago

@ant0nwax

Thanks for sharing, would it be a big thing if I request a draw.io diagram of your calendar setup?

This is the best I could come up with:

calendars

I hope it helps.

ant0nwax commented 1 year ago

@mschilli87 I am speechless.... without words THANK VERY VERY MUCH, this is awesome! Is the vdirsyncer on github and is it this repo? https://github.com/pimutils/vdirsyncer

mschilli87 commented 1 year ago

@ant0nwax

Is the vdirsyncer on github and is it this repo? https://github.com/pimutils/vdirsyncer

Yes, that's the one. They provide sufficient documentation on how to configure sync jobs with various servers.

SinghNanak commented 1 year ago

+1 Any updates on this feature.

dohlin commented 3 months ago

@ant0nwax

Thanks for sharing, would it be a big thing if I request a draw.io diagram of your calendar setup?

This is the best I could come up with:

calendars

I hope it helps.

Just wanted to say thank you for this. Took me a little bit to get figured out, and I definitely don't feel like it should be this hard...but this workaround seems to work really, really well. So thanks again!!

gitwittidbit commented 1 month ago

+1 for the read/write client feature

FFricke commented 1 month ago

a big big big +1 from me

xtrails101 commented 2 weeks ago

For me it will be a good solution, if I can add a Calendar (&Contacts) from my OpenExchange to my nextcloud with read/write access. So I have Mail, Calendar & Contacts on OpenExchange but can use it through one interface in combination with my files... on my nextcloud. Actually only read is supported, maybe my +1 will push this enhancement a little bit ;-)