pimutils / pimutils/vdirsyncer
vdirsyncer fails to sync privately shared icloud calendars
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.9k
- Forks
- 185
- Avg merge
- 11h 49m
- Merged PRs (30d)
- 1
Description
My partner privately shares two icloud calendars with my calendars. Both calendars fails to sync with the following backtrace:
error: Unknown error occured for icloud_cal/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: /xxxxxxxx/calendars/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.ics
debug: File "/usr/lib/python3.7/site-packages/vdirsyncer/cli/tasks.py", line 69, in sync_collection
debug: partial_sync=pair.partial_sync
debug: File "/usr/lib/python3.7/site-packages/vdirsyncer/sync/__init__.py", line 136, in sync
debug: b_nonempty = b_info.prepare_new_status()
debug: File "/usr/lib/python3.7/site-packages/vdirsyncer/sync/__init__.py", line 59, in prepare_new_status
debug: if prefetch else ()):
debug: File "/usr/lib/python3.7/site-packages/vdirsyncer/storage/dav.py", line 505, in get_multi
debug: raise exceptions.NotFoundError(href)
These calendars have an id that is much longer than the "normal" calendars (64 characters). Could this be a size limit on the file name?
- Your vdirsyncer version: 0.16.7
- If applicable, which server software (and which version) you're using: icloud calendars
- Your Python version: 3.7.3
- Your operating system: ArchLinux, up to date
- Your config file:
[general]
status_path = "~/.vdirsyncer/status/"
[pair icloud_cal]
a = "icloud_cal_local"
b = "icloud_cal_remote"
collections = ["from a", "from b"]
metadata = ["displayname"]
[storage icloud_cal_local]
type = "filesystem"
path = "~/.calendars/icloud/"
fileext = ".ics"
[storage icloud_cal_remote]
type = "caldav"
url = "https://caldav.icloud.com/"
username = "…"
password = "…"
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in vdirsyncer/storage/dav.py at get_multi, following the NotFoundError shown in the traceback, and reproduce the sync with privately shared iCloud calendars. Done means the shared calendars synchronize successfully without the reported unknown error or missing-resource failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100