bergercookie / syncall

Bi-directional synchronization between services such as Taskwarrior, Google Calendar, Notion, Asana, and more
MIT License
433 stars 39 forks source link

New CalDAV description format #112

Closed kkoyung closed 1 month ago

kkoyung commented 5 months ago

Description

TL;DR

Old mappings:

New mappings:

Old mappings

If I understand the code correctly, the previous implementation uses the field DESCRIPTION of caldav to store meta-data of TW items.

When a TW item is converted to caldav item, the annotations and uuid of TW item are encoded into the following format, and stored in DESCRIPTION of caldav.

IMPORTED FROM TASKWARRIOR

* Annotation 1: first annotation
* Annotation 2: second annotation
* Annotation 3: third annotation
* uuid: 12345678-123-1234-1234-1234567890ab

When a caldav item is converted to TW item, syncall will try to parse the DESCRIPTION field of caldav item from the above format to get back the annotation and uuid. If lines not starting with * Annotation or * uuid will be ignored.

Problems of the old mappings

It makes the DESCRIPTION field of caldav unusable.

When user creates a task with description on caldav side, the description will be ignored by syncall and never reached taskwarrior. (Related issue: #72)

Some caldav application like Apple Reminder shows the description right below the task summary. The meta-data in DESCRIPTION takes up a lot of screen space, and make the task list bloat.

IMG_3826

New mappings

In this new mappings, the uuid of TW item will be mapped to a non-standard iCalendar field X-SYNCALL-TW-UUID, allowed by RFC 5545. The annotation of TW item will be mapped to DESCRIPTION of caldav item. Each line in DESCRIPTION is corresponding to an annotation.

Remark

Type of change

Please delete options that are not relevant.

How Has This Been Tested?

Checklist:

Edit: forgot to embed the screenshot

bergercookie commented 1 month ago

This looks great! Will test it further before creating a new release but overall great work! Please keep the contributions coming @kkoyung :) :)

kkoyung commented 1 month ago

This looks great! Will test it further before creating a new release but overall great work! Please keep the contributions coming @kkoyung :) :)

@bergercookie Look forward to the new release