calcom / cal.com

Scheduling infrastructure for absolutely everyone.
https://cal.com
Other
31.28k stars 7.54k forks source link

[CAL-130] All CalDav Issues here! #3457

Closed alishaz-polymath closed 1 year ago

alishaz-polymath commented 2 years ago

An updated CalDAV issue checklist

Confirmed and verified list of all supported CalDAV integration calendar services

Supported CalDAV calendar object formats

From Linear-GitHub Sync

From SyncLinear.com | CAL-130

saschafoerster commented 2 years ago

I am still trying out Kerio CalDAV with self hosted cal.com version 1.8.3 I get this error in the frontend, when trying to use the "debug" interface:

https://URL/availability/troubleshoot

Something went wrong.
TypeError: undefined is not an object (evaluating 'v.length')

In the logs:

@calcom/web:start: prisma:query SELECT "public"."Availability"."id", "public"."Availability"."userId", "public"."Availability"."eventTypeId", "public"."Availability"."days", "public"."Availability"."startTime", "public"."Availability"."endTime", "public"."Availability"."date", "public"."Availability"."scheduleId" FROM "public"."Availability" WHERE "public"."Availability"."scheduleId" IN ($1) OFFSET $2
@calcom/web:start: 19:31:48.035 timeZoneName SILLY Checking Busy time from Cal Bookings in range 2022-07-26T22:00:00.000Z to 2022-07-27T21:59:59.000Z for input {"userId":1,"status":"ACCEPTED"} 
@calcom/web:start: [ERROR][0.0148s] GET '/api/availability/saschafoerster?dateFrom=2022-07-26T22:00:00Z&dateTo=2022-07-27T21:59:59Z'
@calcom/web:start: [ERROR][0.0148s] GET '/api/availability/saschafoerster?dateFrom=2022-07-26T22:00:00Z&dateTo=2022-07-27T21:59:59Z'

Browser console:

[Error]  << query #2 viewer.me 
{input: undefined, result: TRPCClientError: The operation was aborted., elapsedMs: 346, context: {}}

    (anonyme Funktion) (_app-69fa7be35c7b3e95.js:1:137811)
    (anonyme Funktion) (_app-69fa7be35c7b3e95.js:1:138279)
    p (_app-69fa7be35c7b3e95.js:1:14533)
    (anonyme Funktion) (_app-69fa7be35c7b3e95.js:1:14554)
    onDone (_app-69fa7be35c7b3e95.js:1:10563)
    done (_app-69fa7be35c7b3e95.js:1:9793)
    (anonyme Funktion) (_app-69fa7be35c7b3e95.js:1:12109)
    t (_app-69fa7be35c7b3e95.js:1:209785)
    (anonyme Funktion) (_app-69fa7be35c7b3e95.js:1:196608)
    (anonyme Funktion) (_app-69fa7be35c7b3e95.js:1:219652)
    (anonyme Funktion) (_app-69fa7be35c7b3e95.js:1:219334)
    (anonyme Funktion) (_app-69fa7be35c7b3e95.js:1:210767)
    (anonyme Funktion) (_app-69fa7be35c7b3e95.js:1:228431)
    Gu (framework-dbb4adbd2655d20c.js:1:92950)
    Ju (framework-dbb4adbd2655d20c.js:1:93147)
    ws (framework-dbb4adbd2655d20c.js:1:112985)
    us (framework-dbb4adbd2655d20c.js:1:106046)
    us
    jl (framework-dbb4adbd2655d20c.js:1:46918)
    (anonyme Funktion) (framework-dbb4adbd2655d20c.js:1:112530)
    ks (framework-dbb4adbd2655d20c.js:1:112533)
    rs (framework-dbb4adbd2655d20c.js:1:105048)
    rs
    S (framework-dbb4adbd2655d20c.js:1:131185)
    T (framework-dbb4adbd2655d20c.js:1:131719)
[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error) (saschafoerster, line 0)
[Error] TypeError: undefined is not an object (evaluating 'v.length') — troubleshoot-990039068c43dee1.js:0
    uu (framework-dbb4adbd2655d20c.js:1:71390)
    (anonyme Funktion) (framework-dbb4adbd2655d20c.js:1:71916)
    sa (framework-dbb4adbd2655d20c.js:1:50763)
    gi (framework-dbb4adbd2655d20c.js:1:100832)
    vi (framework-dbb4adbd2655d20c.js:1:100400)
    hi (framework-dbb4adbd2655d20c.js:1:99936)
    (anonyme Funktion) (framework-dbb4adbd2655d20c.js:1:112071)
    ks (framework-dbb4adbd2655d20c.js:1:112533)
    rs (framework-dbb4adbd2655d20c.js:1:105048)
    rs
    S (framework-dbb4adbd2655d20c.js:1:131185)
    T (framework-dbb4adbd2655d20c.js:1:131719)

And when trying to open the URL: https://URL/api/availability/saschafoerster?dateFrom=2022-07-26T22:00:00Z&dateTo=2022-07-27T21:59:59Z

I get this {"message":"performance is not defined"}

I am hoping very much to use it cal.com soon WITH our calendars, as without seeing availabilities , it is rather useless. Thank you for looking into it. If I can help debugging or give more information, let me know.

alishaz-polymath commented 2 years ago

Hi @saschafoerster Thank you for the detailed message. I've got Kerio connect for CalDAV lined up soon for testing. As soon as I'm done with it, it should be good to go! 🙏 Thanks for your patience.

alishaz-polymath commented 1 year ago

Just thought I'd explicitly mention, Kerio connect with CalDAV works perfectly now, the entire flow 🙏 So, if anyone faces any issues at all regarding that, please do let me know 😄

alishaz-polymath commented 1 year ago

Zimbra is now fully supported 🚀 Fully tested 🧪 ✅

rene-mueller commented 1 year ago

would be nice

alishaz-polymath commented 1 year ago

@rene-mueller Added to the list. Will run checks when the time is right and see if we can fully support it 🙂

chrisgick commented 1 year ago

@alishaz-polymath if you need a Confluence Cloud test environment I would be happy to help

alishaz-polymath commented 1 year ago

@chrisgick that would be lovely. Thank you. I think we can explore that over a call instead to ensure the access remains secured.

alishaz-polymath commented 1 year ago

@chrisgick There seems to be an issue with Confluence itself, pertaining to CalDAV (or perhaps their docs) Firstly, I get the unauthorised error when I try to use username and password basic Auth. Then I had a look at the deprecation notice (ref below), and a couple of articles where it suggested to use 'username:password' string and convert to base64 and use that for basic authorization instead. When I do that, it just returns empty. Do you have any ideas regarding this, or perhaps contact who might be able to assist for the same? ref: https://developer.atlassian.com/cloud/confluence/deprecation-notice-basic-auth/

tonybruess commented 1 year ago

Fastmail appears to be working now. Was broken last month.

alishaz-polymath commented 1 year ago

@tonybruess we are in talks with Fastmail currently. Our calls were getting Forbidden returned. We aren't fully supporting it yet, tests are being run. Once it is fully supported, you'll see the tick against its name in the description of this ticket 🙂

alishaz-polymath commented 1 year ago

@tonybruess Fastmail was still faulty when rescheduling, however, the PR #5193 should fix that along with fixing Nextcloud rescheduling 🙏

WilfriedMaillet commented 1 year ago

The CalDav Infomaniak works correctly with cal.com too, tested for a moment :+1:

However, the biggest problem in use is the one with all CalDav calendars, the existing events (defined as busy) are not reflected in the cal.com availability.

If you correct this, I can launch an company on the tool :)

alishaz-polymath commented 1 year ago

Thank you @WilfriedM I'm here to help in that regard. ~Please book me here and we'll sort this out~[booked]. I might need your help with test credentials so a call might make sense. Alternatively, feel free to email me the test credentials here Thanks

felurx commented 1 year ago

Hey there! :) I don't know if I'm confusing things here, but: Will it be possible to add public CalDav links (that don't need authentication) in the future?

For example, on Nextcloud, I can generate a public link like this one. In Thunderbird, I can then add the calendar / subscribe to it by activating a checkbox that says "This calendar doesn't require credentials". I tried adding that link in the CalDav app, but I just get the (fairly nondescript) error message "Could not add this caldav account" if I enter placeholder credentials or don't put in any (by making the fields non-required with the browser dev tools). I tried using a private link, but that didn't work either, so this might be a problem with my Nextcloud too...

Anyways, I think it might be helpful to have that option, so you don't have to put in your credentials (which in the case of Nextcloud have access to a whole lot of other things than just your calendar).

PS @alishaz-polymath: It looks like the links in your last comment above this one are broken. I'd guess that you need to put in a full URL, including the "https://" or "mailto:", or the link is parsed as relative to the current page.

ryansun96 commented 1 year ago

CalDAV integration with Feishu (a Lark Suite equivalent in China) does not work - events on my Feishu calendar do not block off my availabilities on the booking page.

What's even more interesting is if I toggle on the switch for that CalDAV integration, events from my other native integrations (e.g. Google calendar) will not block off my availabilities. If I toggle CalDAV integration off, events from other integrations will block my availabilities correctly.

alishaz-polymath commented 1 year ago

Hey @felurx this isn't currently on the roadmap, I'm afraid, as there hasn't been a request for it in the community yet. If we do get a sizeable request though, we can definitely line it up. 🙏

alishaz-polymath commented 1 year ago

CalDAV integration with Feishu (a Lark Suite equivalent in China) does not work - events on my Feishu calendar do not block off my availabilities on the booking page.

What's even more interesting is if I toggle on the switch for that CalDAV integration, events from my other native integrations (e.g. Google calendar) will not block off my availabilities. If I toggle CalDAV integration off, events from other integrations will block my availabilities correctly.

We don't have Feishu in the roadmap yet, but I'll go ahead and just add it to the list. However, please note that we can't confirm how long it might take to get it integrated, as it isn't of high priority right now. 🙏

rasos commented 1 year ago

@felurx seems to be requesting webcal, which does not require authentication, but is read only. So appointments can not be written there, it is only useful to check for conflicts. Some frameworks (like Drupal 7) offer that with a token to have some semi-privacy. Indeed, webcal would simplify to check with conflicts in some other calendars, like holiday calendars.

ryansun96 commented 1 year ago

@alishaz-polymath Thanks for your reply. I understand it's not a priority to build a native client for Feishu - however wondering if enabling CalDAV for Feishu will stop events from other integrations to block off my availabilities an expected behavior (described in previous comment)?

alishaz-polymath commented 1 year ago

@alishaz-polymath Thanks for your reply. I understand it's not a priority to build a native client for Feishu - however wondering if enabling CalDAV for Feishu will stop events from other integrations to block off my availabilities an expected behavior (described in previous comment)?

Hey @ryansun96 CalDAV implementation differs from service provider to service provider. It isn't like a toggle that we can "enable" for certain providers because we need to add adaptation for each service provider not following the basic standard. When I said we don't have Feishu on the roadmap, I meant it for CalDAV integration and not a native integration. Debugging and monitoring the CalDAV integration for each provider consumes a lot of time which we have to ensure that we invest in the most demanding providers. We're going to have to test exactly what response we get when trying the integration with CalDAV and see if there's a good way to fix any potential issues around the flow. I have added Feishu to the list, so I would definitely be looking into getting it integrated at some stage, but it's difficult for me to provide an ETA on it currently. I hope this answers your question. 🙏

jbritten commented 1 year ago

I'm using CalDAV integration with mailbox.org using hosted Cal.com and works great. No issues so far.

luckman212 commented 1 year ago

How's Fastmail + CalDAV working these days? (referring to: https://github.com/calcom/cal.com/issues/3457#issuecomment-1289820804)

alishaz-polymath commented 1 year ago

@luckman212 It is working perfectly as far as I could test :) If you find any issues, please feel free to tag me in 🙏

kolaente commented 1 year ago

I've recently upgraded my cal.com installation (now on v.2.3.3) and it looks like this broke the CalDAV integration with my Nextcloud. Calendars still show up but events in them don't seem to be taken into account for availability when booking dates - instead all dates within the configured availability times are available. I tried reinstalling the CalDAV app but hit #5813.

Should I open a new issue?

Edit: There is this in the logs on my server, not sure if related:

calcom_1    | @calcom/web:start: 17:50:08.739 timeZoneName WARN CalendarManager
calcom_1    | @calcom/web:start:  RangeError  Invalid time zone specified: Z
calcom_1    | @calcom/web:start: error stack:
calcom_1    | @calcom/web:start: • timezone.js:1 f.tz
calcom_1    | @calcom/web:start:     node_modules/dayjs/plugin/timezone.js:1:1039
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • 5009.js:260 <anonymous>
calcom_1    | @calcom/web:start:     .next/server/chunks/5009.js:260:148
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • 5009.js:243 getAvailability
calcom_1    | @calcom/web:start:     .next/server/chunks/5009.js:243:17
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • task_queues:96 processTicksAndRejections
calcom_1    | @calcom/web:start:     node:internal/process/task_queues:96:5
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • 402.js:290 <anonymous>
calcom_1    | @calcom/web:start:     .next/server/chunks/402.js:290:117
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • 402.js:297 getCachedResults
calcom_1    | @calcom/web:start:     .next/server/chunks/402.js:297:28
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • 402.js:305 getBusyCalendarTimes
calcom_1    | @calcom/web:start:     .next/server/chunks/402.js:305:19
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • 402.js:908 getBusyTimes
calcom_1    | @calcom/web:start:     .next/server/chunks/402.js:908:35
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • 402.js:1052 getUserAvailability
calcom_1    | @calcom/web:start:     .next/server/chunks/402.js:1052:23
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • [trpc].js:7973 <anonymous>
calcom_1    | @calcom/web:start:     .next/server/pages/api/trpc/[trpc].js:7973:85
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • [trpc].js:7972 getSchedule
calcom_1    | @calcom/web:start:     .next/server/pages/api/trpc/[trpc].js:7972:95
calcom_1    | @calcom/web:start:
calcom_1    | @calcom/web:start: • [trpc].js:7861 <anonymous>
calcom_1    | @calcom/web:start:     .next/server/pages/api/trpc/[trpc].js:7861:16
calcom_1    | @calcom/web:start:

Edit 2: Opened an issue: https://github.com/calcom/cal.com/issues/5814

alishaz-polymath commented 1 year ago

Hey @kolaente We are aware of the issue and are currently working on a hot fix. This should be merged and ready very very soon. We have identified where the issue is and are currently focusing on a robust hotfix. Apologies for the inconvenience in the mean time 🙏

kolaente commented 1 year ago

@alishaz-polymath That sounds great, thanks a lot!

chrisgick commented 1 year ago

@alishaz-polymath I added you to the Atlassian ticket if you want to reply there to:

Could you please confirm if you are using your email as the username and API token as the password?

If not, you can create your own API token using this article

bengentil commented 1 year ago

Thank you @WilfriedM I'm here to help in that regard. ~Please book me here and we'll sort this out~[booked]. I might need your help with test credentials so a call might make sense. Alternatively, feel free to email me the test credentials here Thanks

Hi @alishaz-polymath, Infomaniak employee here :wave:

You can create a free mail account here https://www.infomaniak.com/en/free-email, this includes a CalDav calendar.

Feel free to ping me, if you need further assistance debugging the issue

bengentil commented 1 year ago

Just pulled the latest docker image and CalDav seems to work well now with infomaniak, all events are now reflected in the availability (wasn't the case a few weeks ago)

alishaz-polymath commented 1 year ago

Hi @bengentil Thank you for this confirmation :)

ridz84 commented 1 year ago

Just putting it out here. If you need a test account for a Synology DSM, I'd be happy to set one up for you

Hybes commented 1 year ago

Apple Calendar not removing entries from system, nor is it sending the cancellation emails when a user removes an event in their calendar, speaking with @PeerRich in slack, we discussed it may be part of a callback issue.

PeerRich commented 1 year ago

hey @Hybes, @alishaz-polymath will investigate this once he is back from OOO

alishaz-polymath commented 1 year ago

@Hybes i will look into it next week 🙏 apologies for the delay and inconvenience in the meantime

Hybes commented 1 year ago

@alishaz-polymath to add some more context after some more of my testing, I'm using the Apple Calendar app on my phone too, and the issue only seems present when the Event shows me an [ Accept / Maybe / Decline ] option - some of the events show it that way, others have the event embedded and agreed already, and therefore allow me to delete the event, in this situation - the cancel works along with the email.

Hybes commented 1 year ago

@alishaz-polymath any news or movement on this Apple Cal issue, still seems broken for my users.

criadoperez commented 1 year ago

Doesn't seem work with Zoho. Has anybody managed to make it work there?

alishaz-polymath commented 1 year ago

@Hybes I have resumed work today after being OOO in the previous couple of weeks. I'll look into it this week and update with the findings.

fiskare commented 1 year ago

I get the following error message when trying to mount a Nextcloud calander via caldav: "Could not add this caldav account"

Is there a sample configuration where I can see if I have configured everything correctly? Thanks a lot for your help!

jdaviescoates commented 1 year ago

I get the following error message when trying to mount a Nextcloud calander via caldav: "Could not add this caldav account"

Nextcloud working great for me. What version are you on?

fiskare commented 1 year ago

I get the following error message when trying to mount a Nextcloud calander via caldav: "Could not add this caldav account"

Nextcloud working great for me. What version are you on?

I use cal.com 2.5.3 and NextCloudPi 24.0.5. Can you please share the information about the format of your calendar link? Thanks a lot!

jdaviescoates commented 1 year ago

I use cal.com 2.5.3

Ah, are you self-hosting? I'm using the hosted version at present.

I'm running Nextcloud 25.0.3 on Cloudron.

Can you please share the information about the format of your calendar link? Thanks a lot!

I can't seem to actually see the link I pasted into the CalDAV app on Cal.com but I'm guessing it was the primary CalDAV address copied from here (bottom left in Nextcloud Calendar, click on Calendar settings:

image

If so, it looks like this: https://url.tld/remote.php/dav

Hope that helps.

fiskare commented 1 year ago

Ah, are you self-hosting? I'm using the hosted version at present.

Yes it is self-hosted. nexcloud and cal.com.

I can't seem to actually see the link I pasted into the CalDAV app on Cal.com but I'm guessing it was the primary CalDAV address copied from here (bottom left in Nextcloud Calendar, click on Calendar settings:

Thanks a lot! Too bad, I have already tested this format and it does not work for me.

wzrdtales commented 1 year ago

can at least verify: zoho is not working

invalid request, calendar object extension missing 
alishaz-polymath commented 1 year ago

can at least verify: zoho is not working

invalid request, calendar object extension missing 

Thank you for confirmation. We don't support Zoho officially just yet, and once we do it would be checked off in the list in the description of this thread. 🙏

cyango commented 1 year ago

Following. 👀

wzrdtales commented 1 year ago

can at least verify: zoho is not working

invalid request, calendar object extension missing 

Thank you for confirmation. We don't support Zoho officially just yet, and once we do it would be checked off in the list in the description of this thread. pray

i checked it quickly, it doesn't work b/c you set expand to true while fetching calendar objects.

wzrdtales commented 1 year ago

just setting

https://github.com/calcom/cal.com/blob/c02c149a9616ac1abb2ba85cc4493c99cc37a0de/packages/lib/CalendarService.ts#L307

to

                        expand : sc.externalId.indexOf('calendar.zoho') === -1,

is enough to make it work, not a proper fix in general just as demonstration though and there are further issues with this weird occurance checker

jamesarosen commented 1 year ago

When the Scheduler schedules a meeting with me, they get either one or two emails:

From my calendar provider (Fastmail). The subject starts with "Invitation:" and GMail shows the "Yes | Maybe | No" options and location (Zoom link). The event description includes text like "Need to reschedule or cancel? https://app.cal.com/booking/abcdef123456?changes=true". Some folks have reported that they never get this email, though I always do when I test using a GMail address. This may be a bug in cal.com or in Fastmail.

From cal.com. The subject is the same as the event name. GMail shows an "Add to calendar" button, but no "Yes | Maybe | No" options or location. The email includes text like "Need to make a change? Reschedule or Cancel". Assuming the actual invite email works, this is redundant and less user-friendly than the one from Fastmail.