[evolution-data-server] I#380 - CalDAV: Free / Busy not working with Nextcloud



commit 46b953d2284878e2aa11b7471563832139535315
Author: Milan Crha <mcrha redhat com>
Date:   Fri Mar 18 09:38:04 2022 +0100

    I#380 - CalDAV: Free / Busy not working with Nextcloud
    
    Closes https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/380

 src/calendar/backends/caldav/e-cal-backend-caldav.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/src/calendar/backends/caldav/e-cal-backend-caldav.c 
b/src/calendar/backends/caldav/e-cal-backend-caldav.c
index 4861476ff..c8aeb8205 100644
--- a/src/calendar/backends/caldav/e-cal-backend-caldav.c
+++ b/src/calendar/backends/caldav/e-cal-backend-caldav.c
@@ -199,7 +199,8 @@ ecb_caldav_connect_sync (ECalMetaBackend *meta_backend,
                soup_uri = e_source_webdav_dup_soup_uri (webdav_extension);
 
                cbdav->priv->calendar_schedule = e_cal_backend_get_kind (E_CAL_BACKEND (cbdav)) != 
I_CAL_VJOURNAL_COMPONENT &&
-                       capabilities && g_hash_table_contains (capabilities, 
E_WEBDAV_CAPABILITY_CALENDAR_SCHEDULE);
+                       (!capabilities || g_hash_table_contains (capabilities, 
E_WEBDAV_CAPABILITY_CALENDAR_AUTO_SCHEDULE) ||
+                       g_hash_table_contains (capabilities, E_WEBDAV_CAPABILITY_CALENDAR_SCHEDULE));
                calendar_access = capabilities && g_hash_table_contains (capabilities, 
E_WEBDAV_CAPABILITY_CALENDAR_ACCESS);
 
                if (calendar_access) {
@@ -2211,7 +2212,9 @@ ecb_caldav_get_free_busy_sync (ECalBackendSync *sync_backend,
                const GSList *link;
                GError *local_error = NULL;
 
-               if (ecb_caldav_get_free_busy_from_schedule_outbox_sync (cbdav, users, start, end, 
out_freebusy, cancellable, &local_error)) {
+               /* Finish only if found anything, otherwise re-check with the principals */
+               if (ecb_caldav_get_free_busy_from_schedule_outbox_sync (cbdav, users, start, end, 
out_freebusy, cancellable, &local_error) &&
+                   out_freebusy && *out_freebusy) {
                        g_clear_object (&webdav);
                        return;
                }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]