dengste / org-caldav

Caldav sync for Emacs orgmode
GNU General Public License v3.0
726 stars 105 forks source link

Setup issues with Zoho (no child nodes in DAV:prop again?) #239

Open thomasheartman opened 3 years ago

thomasheartman commented 3 years ago

I'm trying to set this up for syncing with a Zoho server, but I'm seeing the error: 'No child nodes in DAV:prop'. It seems similar to #126 and #231, but it is also different.

In my case, there doesn't actually seem to be any child nodes. This is the output I'm getting when using the propfind query mentioned in PR #215

curl -X PROPFIND -u <username here> -H "Content-Type: text/xml" -H "Depth: 1" --data "<propfind xmlns='DAV:'><prop><calendar-data xmlns='urn:ietf:params:xml:ns:caldav'/></prop></propfind>" <org-caldav-url here>
<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
   <D:response>
      <D:href>/caldav/CALENDAR_ID/</D:href>
      <D:propstat>
         <D:prop />
         <D:status>HTTP/1.1 200 OK</D:status>
      </D:propstat>
   </D:response>
   <D:response>
      <D:href>/caldav/CALENDAR_ID/events/</D:href>
      <D:propstat>
         <D:prop />
         <D:status>HTTP/1.1 200 OK</D:status>
      </D:propstat>
   </D:response>
   <D:response>
      <D:href>/caldav/CALENDAR_ID/inbox/</D:href>
      <D:propstat>
         <D:prop />
         <D:status>HTTP/1.1 200 OK</D:status>
      </D:propstat>
   </D:response>
   <D:response>
      <D:href>/caldav/CALENDAR_ID/outbox/</D:href>
      <D:propstat>
         <D:prop />
         <D:status>HTTP/1.1 200 OK</D:status>
      </D:propstat>
   </D:response>
</D:multistatus>

Does this look familiar or does it give any indication of what's wrong? I have successfully set up the calendar to sync with iOS' calendar via CalDAV, so the server is operational, just not working with Emacs for now. Edit: There are events in the calendar that should be sync-able.

When running sync it seems to fail/stop partway through (after saying 'updating events in calendar'), so that if I try and run the sync again, I get asked whether I want to resume. However, regardless of whether I resume or not, the output doesn't seem to change.

The debugger produces the following backtrace:

Debugger entered--Lisp error: (error "No child nodes in DAV:prop")
  error("No child nodes in DAV:prop")
  url-dav-process-DAV:prop((DAV:prop nil))
  url-dav-process-DAV:propstat((DAV:propstat nil (DAV:prop nil) (DAV:status nil "HTTP/1.1 200 OK")))
  url-dav-process-DAV:response((DAV:response nil (DAV:href nil "/caldav/c2de9b18b9fb50dd23c19b49396254d1e47a575fa5...") (DAV:propstat nil (DAV:prop nil) (DAV:status nil "HTTP/1.1 200 OK"))))
  url-dav-process-DAV:multistatus((DAV:multistatus ((("http://www.w3.org/2000/xmlns/" . "D") . "DAV:")) (DAV:response nil (DAV:href nil "/caldav/c2de9b18b9fb50dd23c19b49396254d1e47a575fa5...") (DAV:propstat nil (DAV:prop nil) (DAV:status nil "HTTP/1.1 200 OK"))) (DAV:response nil (DAV:href nil "/caldav/c2de9b18b9fb50dd23c19b49396254d1e47a575fa5...") (DAV:propstat nil (DAV:prop nil (DAV:getetag nil "1628451935806")) (DAV:status nil "HTTP/1.1 200 OK"))) (DAV:response nil (DAV:href nil "/caldav/c2de9b18b9fb50dd23c19b49396254d1e47a575fa5...") (DAV:propstat nil (DAV:prop nil (DAV:getetag nil "1628454348468")) (DAV:status nil "HTTP/1.1 200 OK"))) (DAV:response nil (DAV:href nil "/caldav/c2de9b18b9fb50dd23c19b49396254d1e47a575fa5...") (DAV:propstat nil (DAV:prop nil (DAV:getetag nil "1627995775539")) (DAV:status nil "HTTP/1.1 200 OK")))))
  url-dav-process-response(#<killed buffer> "https://calendar.zoho.eu/caldav/c2de9b18b9fb50dd23...")
  org-caldav-url-dav-get-properties("https://calendar.zoho.eu/caldav/c2de9b18b9fb50dd23..." "getetag")
  org-caldav-get-event-etag-list()
  org-caldav-update-eventdb-from-cal()
  #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_26>()
  funcall(#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_26>)
  (let ((org-caldav-url '"https://calendar.zoho.eu/caldav") (org-caldav-calendar-id '"c2de9b18b9fb50dd23c19b49396254d1e47a575fa549be5b10...") (org-caldav-inbox '"~/gtd/calendar.org")) (funcall '#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_26>))
  eval((let ((org-caldav-url '"https://calendar.zoho.eu/caldav") (org-caldav-calendar-id '"c2de9b18b9fb50dd23c19b49396254d1e47a575fa549be5b10...") (org-caldav-inbox '"~/gtd/calendar.org")) (funcall '#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_26>)))
  org-caldav-sync-calendar((:url "https://calendar.zoho.eu/caldav" :calendar-id "c2de9b18b9fb50dd23c19b49396254d1e47a575fa549be5b10..." :inbox "~/gtd/calendar.org"))
  org-caldav-sync()
  funcall-interactively(org-caldav-sync)
  command-execute(org-caldav-sync record)
  execute-extended-command(nil "org-caldav-sync" nil)
  funcall-interactively(execute-extended-command nil "org-caldav-sync" nil)
  command-execute(execute-extended-command)

Any input and thoughts would be much appreciated! I'm also happy to post more info if you let me know what you need ☺️

Cheers!

rickalex21 commented 1 year ago

Same here. I can get everything fine with curl, not sure why I can't with this package.

zilti commented 1 year ago

Same here as well, but I am quite sure the issue is on Zoho's end. It doesn't work with KOrganizer either.