easyappointments icon indicating copy to clipboard operation
easyappointments copied to clipboard

Integrate CalDAV Protocol for appointment syncing

Open viegelinsch opened this issue 7 years ago • 60 comments

Hi,

I would like to become independent from Google or any other cloud service. I host my own CalDAV server so it ould be consequent to subscribe to Easy!Appointments as additional CalDAV ressource.

Use case

Similar to the existing Google sync a configurable sync with a CalDAV calendar. I would suggest parameters like:

const CALDAV_SYNC_FEATURE   = FALSE; // Enter TRUE or FALSE
const CALDAV_URL      = '';
const CALDAV_LOGIN_NAME   = '';
const CALDAV_PASSWORD  = '';

The CalDav ressource can be an iCloud account, a [own,next]cloud calendar or a Google calendar.

Or

If syncing is to complex to implement, maybe it is easier to integrate sabre/dav to offer the calendars with the bookings via CalDav. It would be one more calendar ressource to subscribe to, but this shouldn't be a problem.

Sponsoring (e.g. via Bountysource or FreedomSponsors) is an option.

With best regards, Hendrik Eggers

viegelinsch avatar Oct 04 '16 13:10 viegelinsch

Hello Hendrik,

thanks for posting! The CalDAV protocol seems to be very interesting. I will definitely check this out for a future release.

I'm currently preparing v1.2 for Beta release so it's a bit too late for this release but it may be integrated for v1.3.

In any case I am accepting donation through PayPal: paypal.me/alextselegidis

alextselegidis avatar Oct 11 '16 18:10 alextselegidis

Seconded

law avatar Jul 12 '17 18:07 law

Ohh, this feature would be great for me! At this moment i have to pay monthly for the CalDAV Feature to sync with my Smartphone and Thunderbird / Lightning. I want to be independent from Google Cal. I would donate for this feature! Is something planned about this? Actually i'm using this expensive service: https://de.doctena.de/ :-/

Hope to hear from you

Best Mark

MarkChr65 avatar Nov 14 '17 09:11 MarkChr65

Unfortunately this feature will not make it for v1.3, I'm actually almost done with the coding of the new release and will proceed to a beta release in the following days.

Stay tuned for further updates :)

  Alex Tselegidis, Easy!Appointments Creator
  Need a customization? Contact me in person!

alextselegidis avatar Nov 16 '17 07:11 alextselegidis

@alextselegidis any news on the CalDAV support?

If not, I would like to start programming on this, in order to support at least a subset of the caldav standard.

But in case anyone already started, I want to avoid the issue.

What is the best way to extend on this code?

We need some sort of REST API specification so server/dav/username/calendar or something like that and than the classes to deal with the conversion of the data in the database to CalDAV.

We can start with a read-only CalDAV so people can at least see the calendars from easyappointments.

barrydegraaff avatar Apr 20 '18 18:04 barrydegraaff

@alextselegidis and @barrydegraaff I am also very excited about this feature and in my opinion this is a must have as we are working around Google & Co. with our own infrastructure such as nextcloud for calendars for example. Actually we are using a proprietary booking app that doesn't support CalDAV as well so we have to sync manually... Is this planned in the closer future? Can we support you to help implementing this? The issue starter has already suggested two options for donations.

mokkin avatar Dec 06 '18 18:12 mokkin

Since this issue has been here for 2 years, probably no one at easyappointments want do implement it. We at https://zetalliance.org/ will be doing a crowdfunder in January to add easyappointments or something like that to Zimbra. But it is too early to tell if that is going to add WebDAV to this project.

barrydegraaff avatar Dec 12 '18 12:12 barrydegraaff

Hello @barrydegraaff, @mokkin thank you for your interest, I find this a great feature too and also think that will make the integration with other systems so much easier. Unfortunately other tasks are being prioritized for the v1.4 so that the overall performance and user experience is enhanced. I cannot promise an integration soon. Any help is always appreciated though, stay tuned for updates :)

  Alex Tselegidis, Easy!Appointments Creator
  Need a customization? Contact me in person!

alextselegidis avatar Jan 15 '19 21:01 alextselegidis

I'd like to see this as well. I administer both Nextcloud and Zimbra. I would love to see this feature. Thanks for your work!

stratus-ss avatar May 14 '19 00:05 stratus-ss

CalDAV would make this unstoppable!

joshp23 avatar Sep 03 '19 01:09 joshp23

We need this too. Currently using Harmonizely.

samtuke avatar Sep 04 '19 13:09 samtuke

I will donate up to $50 to the project when this is implemented. The sooner it's done the more money I'll donate. Right now I have to manually add events to both my main calendar (synced between all my devices with Nextcloud) and E!A, which is not an acceptable long-term solution.

I'll even accept a script that runs via cron to sync the calendars with each other. If I end up taking a couple hours and writing some code for this, I'm keeping the $50.

IMO this should be top priority (right under security bugs). This whole project is essentially a public UI for adding events to a calendar, so it's not helpful unless it can actually add events to a calendar!

skylarmt avatar Sep 10 '19 22:09 skylarmt

I made the beginning here and created a bounty at bountysourc.com Maybe others can join the bounty and @alextselegidis can give some information how much time/money will be needed.

mokkin avatar Oct 28 '19 09:10 mokkin

Is the requested feature to connect/sync an easyappointment calendar over CalDAV or to SHOW/IMPORT an external CalDAV ressource inside easyappointment?

mocig avatar Oct 30 '19 21:10 mocig

@mocig I think the ideal feature would be new appointments appearing on a CalDAV calendar, and for events on the CalDAV calendar to appear in E!A as unavailable times.

skylarmt avatar Oct 31 '19 01:10 skylarmt

I just added 50$ to the bounty.

If you need an example for a CalDAV client, I added on Github a software I wrote and I used to use : https://github.com/mpellegrin/weather-table ; it retrieves the events from CalDAV and parse it with ICS Parser.

I can also provide you a full access to a demo Nextcloud instance with the CalDAV server enabled to test/develop the software, as well as help to debug if you need.

mpellegrin avatar Nov 18 '19 16:11 mpellegrin

@alextselegidis FYI the bounty for this issue is now $200.

https://www.bountysource.com/issues/38115699-integrate-caldav-protocol-for-appointment-syncing

skylarmt avatar Jan 29 '20 20:01 skylarmt

Unfortunately other tasks are being prioritized for the v1.4 so that the overall performance and user experience is enhanced. I cannot promise an integration soon.

of course

https://harmonizely.com

is not self hosted but it

support CalDav

since a while ago.

JOduMonT avatar Mar 06 '20 07:03 JOduMonT

I already tried this, but it has no group capabilities which means you have to register separate accounts per user and resource, no matter if it's the free or paid version.

mokkin avatar Mar 06 '20 07:03 mokkin

..... 5 mounths later :-)

First of all, thanks for easy appointments. Its a great piece of software. But please, double please, tripple please with sugar on top, add caldav support!!! If u need money to realize it, name it; if u need help, tell it. I am sure there will be a solution for all of this, just name it and dont let people beg for allmost 4 years! I would love to use easy appointments in our small team (3 Users). It would totaly fit for our needs, if there would be caldav sync.

written in a mood created by a mixture of google_api_pain, frustration and a tiny bit of hope for change

Escobar523523 avatar Aug 03 '20 15:08 Escobar523523

@alextselegidis How much money would it take to implement this and when could this be done?

madkiss avatar Sep 28 '20 13:09 madkiss

I definitely would support this with money too and I would really like it, if @alextselegidis could realize.

Otherwise, if he has no free capacities for it, I could imagine to collect money, give the job to a developer and ideally finish the implementation with a pull request to the main repository.

mokkin avatar Oct 03 '20 14:10 mokkin

Hello everyone,

Thank you very much for your support and contributions on this.

At the moment the v1.4.0 is almost ready and I'm working on the final touches before the beta comes out.

More work is required for this item to be properly done, as you all know that synchronization is not an easy topic.

Since there's much interest on this ticket, I've raised the bounty to 1000$, if this is met I will prioritize and make the changes for the next release.

Otherwise it will still remain open but will be added in a future release.

  Alex Tselegidis, Easy!Appointments Creator
  Need a customization? Contact me in person!

alextselegidis avatar Oct 06 '20 06:10 alextselegidis

The CalDAV feature should also consider different available calendars in one CalDAV server. This could be a second provider or a resource such as a room or a device required. Here is an example how other booking tool manage it:

grafik

I already pledged 100,- to the bounty and I am sure I can collect more. Are there any others wanting this asap?

mokkin avatar Oct 26 '20 12:10 mokkin

To speed things up herewith I'd like to remind this important ticket for CalDAV support. @viegelinsch @MarkChr65 @gramakri @barrydegraaff @xcsn2005 @rvalle @sualko @BertrandGouny @ifaist0s @tylerferrara @law @joshp23 @samtuke @skylarmt @mocig @mpellegrin @JOduMonT @Escobar523523 @madkiss

Please consider to make your donation to the bounty: https://www.bountysource.com/issues/38115699-integrate-caldav-protocol-for-appointment-syncing

So @alextselegidis can quickly prioritize this feature for all of us.

mokkin avatar Oct 26 '20 12:10 mokkin

In for $100. Let's get this done!

law avatar Oct 26 '20 19:10 law

I just increased my part of the bounty from $50 to $150. The total is currently $400.

skylarmt avatar Oct 27 '20 03:10 skylarmt

Very interested also! I am investigating this as I would like easyappointments to output a CalDav file as .ics or .xml from the MySQL database. .ics are standard file format, just need to know the tables, fields from easyappointments to output the .ics on a private url or file output to .ics as cronjob. Then use vdirsyncer to sync with SOGo CalDav (.xml or .ics files) .. cronjob. https://github.com/pimutils/vdirsyncer I will also put in cash and/or time, if this can be done! Cheers Neil

actionitservices avatar Nov 02 '20 13:11 actionitservices

Thinking of writing a perl or bash script using the easyappointments API output to a iCal or jCal file for syncing. All that data is there in JSON from the API. https://easyappointments.org/docs.html#1.3.2/rest-api.md Cheers

actionitservices avatar Nov 02 '20 14:11 actionitservices

Update: I should be resting this weekend, however made great progress on a bash script called easy2ical (v0.11.7) and couldn't help myself.

  • So far it is one (1) way sync and I have only tested importing .ics files into Thunderbird, successfully.
  • I need to test the .ics output files with vdirsyncer and CalDav server.
  • Hopefully I can use vdirsyncer for CalDav and easy2ical .ics files, to merge, de-dupe and use results to PUT into easyAppointments as JSON to enable two (2) way sync.
  • I will add easy2ical and README to my github site once it is ready for public release :-) image Cheers Neil

actionitservices avatar Nov 22 '20 04:11 actionitservices

Update: EasyAppointments have added google calendar sync and some php cli commands in v1.4.1, however this is limited to google calendars only with limitations. I have made major progress on my project. I have renamed it to easyDAV.

  • 2 way syncing is working :-)
  • Currently I am using events from the assigned CalDAV calendar as unavailability in easyAppointments.
  • Future version will include CardDAV sync, to sync contacts with easyAppointment customers. This will allow events to be add as appointments, looking up the customers details in the easyAppointments DB.
  • Need to add delete/dedupe when going from CalDAV to easyAppointments API.
  • Need to test reoccurring events with above.
  • Going to add a cli and webgui to register CalDAV calendar to the easyAppointments providerId and set vdirsync configuration files.
  • Plan to include a install script, to setup paths, cron and logrotate. image Cheers Neil

actionitservices avatar Feb 26 '21 02:02 actionitservices

That sounds great @actionitservices ! If there is any way we can support you, no matter if it's testing, translating or funding, please let us know as we are awaiting an open source CalDAV syncing booking tool since a long time.

mokkin avatar Feb 26 '21 09:02 mokkin

I've raised our bounty about $250,-. Now only $285,- are missing and it's up to the rest of the community to make this feature happen.

Is there anybody else who wants to have a Google free synchronisation for CalDAV (Nextcloud and others)?

mokkin avatar Mar 17 '21 13:03 mokkin

Can I do this, how do I receive? @mokkin, @skylarmt , @law

vitormattos avatar Apr 14 '21 02:04 vitormattos

Can I do this, how do I receive?

If you contribute code that closes this issue, you can go to the BountySource page and claim the bounty.

skylarmt avatar Apr 14 '21 06:04 skylarmt

Can I do this, how do I receive?

Of course you can! Maybe you should coordinate with the maintainer of the project @alextselegidis

mokkin avatar Apr 14 '21 10:04 mokkin

I have already created 4 PR in the project for different purposes from the requirements of this issue, I am waiting for comments, review and approval (#1044, #1048, #1049 and #1050)

vitormattos avatar Apr 14 '21 10:04 vitormattos

Unfortunately there seems to be no progress in the bounty nor in the development. I have found a promising new project called Calendso and the already have CalDAV on their roadmap: https://github.com/calendso/calendso/discussions/62

mokkin avatar Jun 27 '21 18:06 mokkin

Hi @alextselegidis

What do you think about creating an easyAppointments organization here on GitHub, moving the project to the organization and putting more people helping you in the management?

vitormattos avatar Jun 27 '21 20:06 vitormattos

Hello!

Thanks for your support and contributions, all of them will be reviewed and integrated for 1.5.0, which is coming this fall.

This ticket got delayed because of the implementation of other enhancements but it will make it for the next release.

Keep up with the development progress!

  Alex Tselegidis, Easy!Appointments Creator
  Need a customization? Get a free quote!

alextselegidis avatar Jul 22 '21 12:07 alextselegidis

This ticket got delayed because of the implementation of other enhancements but it will make it for the next release.

Sorry @alextselegidis, just to be clear, do you mean CalDAV will be in 1.5 or 1.6?

Thanks for all your great work! :)

jdaviescoates avatar Jul 22 '21 12:07 jdaviescoates

It will be in 1.5, which is scheduled for September/October 2021 🚀

  Alex Tselegidis, Easy!Appointments Creator
  Need a customization? Get a free quote!

alextselegidis avatar Jul 22 '21 13:07 alextselegidis

any updates for 1.5 ?

ecutsa avatar Nov 23 '21 23:11 ecutsa

any updates for 1.5 ?

You can follow progress here https://github.com/alextselegidis/easyappointments/milestone/9

jdaviescoates avatar Nov 24 '21 00:11 jdaviescoates

Hello!

Almost all planned code maintenance is completed, which means that the only thing left to be done will be the implementation of the remaining 1.5 features before we reach the alpha release state.

Just like @jdaviescoates, you can spectate the progress under the milestones page.

Cheers!

Alex Tselegidis, Easy!Appointments Creator
Need a customization? Get a free quote!

alextselegidis avatar Nov 24 '21 10:11 alextselegidis

Very nice, I'm coming from Harmonizely but also deGoogle so having CalDav integration to work with e.g NextCloud but also Outlook is very exciting. I'm monitoring Releases, eager to be able to try!

Utopiah avatar Dec 03 '21 08:12 Utopiah

This is the only missing thing right now for me. What would be a fair amount to donate to get this completed?

12nick12 avatar Jun 27 '22 18:06 12nick12

Unfortunately there seems to be no progress in the bounty nor in the development. I have found a promising new project called Calendso and the already have CalDAV on their roadmap: https://github.com/calendso/calendso/discussions/62

They are now cal.com, and also still open-source: https://github.com/calcom/cal.com

KJ7LNW avatar Jun 28 '22 19:06 KJ7LNW

Hello!

Just a quick reminder here on this ticket: CalDAV support is coming with 1.5, which will be released this September 2022.

Stay tuned!

Alex

alextselegidis avatar Sep 12 '22 07:09 alextselegidis

Very exciting @alextselegidis . I recently cancelled my plan on Harmonizely due to their acquisition (I feel it's now part of a big "machine" rather than a carefully crafted product with a developer I could chat with directly, not the self-hosting mindset I want to support) but that is precisely the 1 feature that was preventing me from switching to easyappointments.

Eager to try as soon as it's out!

Utopiah avatar Sep 12 '22 07:09 Utopiah