pimutils / pimutils/vdirsyncer

Tasks are deleted by sync (even with "a wins" update rule for task calendar)

Open
#1,074 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.9k
Forks
185
Avg merge
11h 49m
Merged PRs (30d)
1

Description

I'm syncing two remote CalDAV storages, on Nextcloud and a service called Zoho. My CalDAV tasks are being deleted in Nextcloud when vdirsyncer runs. This is despite even setting nextcloud as "a wins" in the config file for conflicts. The calendar events seem to sync fine.

  • Your vdirsyncer version

vdirsyncer, version 0.16.7 on Ubuntu 20.04 installed using apt

  • If applicable, which server software (and which version) you're using

Nextcloud 26.0.2 with calendar App version 4.4.2
Zoho Mail Calendar

  • Your Python version

$ python --version
Python 2.7.18
$ python3 --version
Python 3.8.10

  • Your operating system

Ubuntu 20.04

  • Your config file
[general]
status_path = "~/.vdirsyncer/status/"

####            <redacted_username_1>            ####
[pair <redacted_username_1>_nextcloud_zoho_cals]
a = "<redacted_username_1>_nextcloud_cal"
b = "<redacted_username_1>_zoho_cal"
collections = [["<redacted_username_1>_nczcals", "pes", "events"]]
conflict_resolution = "a wins"

[storage <redacted_username_1>_nextcloud_cal]
type = "caldav"
url = "https://<redacted>.com/remote.php/dav/calendars/<redacted_username_1>/pes/"
username = "<redacted_username_1>"
password = "<redacted>"
start_date = "datetime.now() - timedelta(days=7)"
end_date = "datetime.now() + timedelta(days=720)"

[storage <redacted_username_1>_zoho_cal]
type = "caldav"
url = "http://calendar.zoho.eu/caldav/f55a576f7332690a4afff2682af5a52b3f8857ebba5e8fa86a4d05779d7934ddbfbf7076e13193991c60ae49669ff0a6/events/"
username = "<redacted_username_1>"
password = "<redacted>"
start_date = "datetime.now() - timedelta(days=7)"
end_date = "datetime.now() + timedelta(days=720)"

####            <redacted_username_2>           ####
[pair <redacted_username_2>_nextcloud_zoho_cals]
a = "<redacted_username_2>_nextcloud_cal"
b = "<redacted_username_2>_zoho_cal"
collections = [["<redacted_username_2>_nczcals", "personal", "events"]]
conflict_resolution = "a wins"


[storage <redacted_username_2>_nextcloud_cal]
type = "caldav"
url = "https://<redacted>.com/remote.php/dav/calendars/<redacted_username_2>/personal/"
username = "<redacted_username_2>"
password = "<redacted>"
start_date = "datetime.now() - timedelta(days=7)"
end_date = "datetime.now() + timedelta(days=720)"


[storage <redacted_username_2>_zoho_cal]
type = "caldav"
url = "http://calendar.zoho.eu/caldav/81c76a403e9dd9d2b54d890c95a01f1a05d7493b0e01d6702273c660efa51fdda6df450832b2ea83588d9e9db5d49fd0/events/"
username = "<redacted_username_2>"
password = "<redacted>"
start_date = "datetime.now() - timedelta(days=7)"
end_date = "datetime.now() + timedelta(days=720)"

  • Use vdirsyncer -vdebug for debug output. The output is sensitive, but
    please attach at least the last few lines before the error (if applicable),
    censored as necessary. This is almost always the most useful information.

Not applicable, there's no error

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the sync with the supplied Nextcloud and Zoho configuration, then capture the vdirsyncer -vdebug output; none is included here. Compare task synchronization with the working event synchronization and inspect how the "a wins" rule handles deletions. Done means tasks remain in Nextcloud and the behavior is covered by a reproducible test or diagnostic case.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.