bemade-addons/caldav_sync/README.rst

104 lines
3.5 KiB
ReStructuredText
Raw Normal View History

CalDAV Synchronization
======================
Bemade Inc.
[IMP] caldav_sync: Massive rework Significant improvements to the code around synchronizing events, especially recurring ones. Too much has changed to explain fully here, so read the changelog in README.rst or read the code. Squashed commit of the following: commit e537a7f7f4a3b2e985813198b1bcc41bcc9cbce5 Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 15:47:39 2024 -0500 caldav_sync: getting ready for launch of 0.6.0 commit 5797f8efcab4baf51a31508ac097d378d87c256e Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:13 2024 -0500 fixup! caldav_sync: all seems good. further testing to come before merging into 17.0 commit 992778e353289b5f8df176f8691c1ed40acc9a9b Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:02 2024 -0500 caldav_sync: all seems good. further testing to come before merging into 17.0 commit 90d05d75a20cffb484f138e0ef0279fd3f961def Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 11:31:14 2024 -0500 caldav_sync: better sync with calls to _rewrite_recurrence commit 5ca1d56e54ada83827fa0402133c14856e134201 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 16:13:31 2024 -0500 caldav_sync: recurrence working from Odoo to CalDAV. Need further testing for the other direction. commit ce7b27cc6512f24fd39adac64c58c7e0c01c1aaa Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 10:33:26 2024 -0500 caldav_sync: updating recurrences in the middle with future works, but it breaks singled out events before it (brings them back into the rrule chain) commit 421d609abdeecc6db26f970db461fc50feab5545 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 08:08:35 2024 -0500 caldav_sync: still working on recurrence commit 0e07d42825836987afd1c99f3c7c1733cbc4b507 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 16:06:43 2024 -0500 caldav_sync: moving a single event in a recurrence is synchronizing well commit 14a8b6acf066f181d716a2244c1fba1414937f58 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 13:53:23 2024 -0500 caldav_sync: CRUD fully functional, recurring events working with exceptions around changes in mid-sequence with rrule updates commit 068d1fb29ffbf2216a63df4df92e5fa530c0b45c Author: Marc Durepos <marc@bemade.org> Date: Tue Nov 5 16:42:42 2024 -0500 caldav_sync: all CRUD operations working. Recurrences working to some degree but not fully. commit 0104e3897c52ddaf0720fefa30a8b2e917eeb8c9 Author: Marc Durepos <marc@bemade.org> Date: Mon Nov 4 07:48:48 2024 -0500 caldav_sync: major rework underway. This commit is broken.
2024-11-08 15:49:50 -05:00
Copyright (C) 2023-June Bemade Inc. (https://www.bemade.org).
Author: Marc Durepos (Contact : marc@bemade.org)
This program is under the terms of the GNU Lesser General Public License (LGPL-3)
For details, visit https://www.gnu.org/licenses/lgpl-3.0.en.html
Overview
--------
The CalDAV Synchronization module for Odoo allows users to synchronize their
calendar events with CalDAV servers. This enables seamless integration of Odoo
calendar with external applications like Apple Calendar or Thunderbird.
Features
--------
- Synchronize Odoo calendar events with CalDAV servers.
- Create, update, and delete events in Odoo and reflect changes on the CalDAV
server.
- Poll CalDAV server for changes and update Odoo calendar accordingly.
Configuration
-------------
1. Install the module in Odoo.
2. Go to the User settings in Odoo.
3. Enter the CalDAV calendar URL, username, and password on the user settings.
Usage
-----
1. Create a calendar event in Odoo and it will be synchronized with the CalDAV
calendar.
2. Update the event in Odoo and the changes will reflect on the CalDAV server.
3. Delete the event in Odoo and it will be removed from the CalDAV server.
4. Changes made to the calendar on the CalDAV server (other email apps) will be
polled and updated in Odoo.
Technical Details
-----------------
[IMP] caldav_sync: Massive rework Significant improvements to the code around synchronizing events, especially recurring ones. Too much has changed to explain fully here, so read the changelog in README.rst or read the code. Squashed commit of the following: commit e537a7f7f4a3b2e985813198b1bcc41bcc9cbce5 Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 15:47:39 2024 -0500 caldav_sync: getting ready for launch of 0.6.0 commit 5797f8efcab4baf51a31508ac097d378d87c256e Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:13 2024 -0500 fixup! caldav_sync: all seems good. further testing to come before merging into 17.0 commit 992778e353289b5f8df176f8691c1ed40acc9a9b Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:02 2024 -0500 caldav_sync: all seems good. further testing to come before merging into 17.0 commit 90d05d75a20cffb484f138e0ef0279fd3f961def Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 11:31:14 2024 -0500 caldav_sync: better sync with calls to _rewrite_recurrence commit 5ca1d56e54ada83827fa0402133c14856e134201 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 16:13:31 2024 -0500 caldav_sync: recurrence working from Odoo to CalDAV. Need further testing for the other direction. commit ce7b27cc6512f24fd39adac64c58c7e0c01c1aaa Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 10:33:26 2024 -0500 caldav_sync: updating recurrences in the middle with future works, but it breaks singled out events before it (brings them back into the rrule chain) commit 421d609abdeecc6db26f970db461fc50feab5545 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 08:08:35 2024 -0500 caldav_sync: still working on recurrence commit 0e07d42825836987afd1c99f3c7c1733cbc4b507 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 16:06:43 2024 -0500 caldav_sync: moving a single event in a recurrence is synchronizing well commit 14a8b6acf066f181d716a2244c1fba1414937f58 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 13:53:23 2024 -0500 caldav_sync: CRUD fully functional, recurring events working with exceptions around changes in mid-sequence with rrule updates commit 068d1fb29ffbf2216a63df4df92e5fa530c0b45c Author: Marc Durepos <marc@bemade.org> Date: Tue Nov 5 16:42:42 2024 -0500 caldav_sync: all CRUD operations working. Recurrences working to some degree but not fully. commit 0104e3897c52ddaf0720fefa30a8b2e917eeb8c9 Author: Marc Durepos <marc@bemade.org> Date: Mon Nov 4 07:48:48 2024 -0500 caldav_sync: major rework underway. This commit is broken.
2024-11-08 15:49:50 -05:00
* The module extends the `calendar.event` model to add CalDAV synchronization
functionality.
[IMP] caldav_sync: Massive rework Significant improvements to the code around synchronizing events, especially recurring ones. Too much has changed to explain fully here, so read the changelog in README.rst or read the code. Squashed commit of the following: commit e537a7f7f4a3b2e985813198b1bcc41bcc9cbce5 Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 15:47:39 2024 -0500 caldav_sync: getting ready for launch of 0.6.0 commit 5797f8efcab4baf51a31508ac097d378d87c256e Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:13 2024 -0500 fixup! caldav_sync: all seems good. further testing to come before merging into 17.0 commit 992778e353289b5f8df176f8691c1ed40acc9a9b Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:02 2024 -0500 caldav_sync: all seems good. further testing to come before merging into 17.0 commit 90d05d75a20cffb484f138e0ef0279fd3f961def Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 11:31:14 2024 -0500 caldav_sync: better sync with calls to _rewrite_recurrence commit 5ca1d56e54ada83827fa0402133c14856e134201 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 16:13:31 2024 -0500 caldav_sync: recurrence working from Odoo to CalDAV. Need further testing for the other direction. commit ce7b27cc6512f24fd39adac64c58c7e0c01c1aaa Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 10:33:26 2024 -0500 caldav_sync: updating recurrences in the middle with future works, but it breaks singled out events before it (brings them back into the rrule chain) commit 421d609abdeecc6db26f970db461fc50feab5545 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 08:08:35 2024 -0500 caldav_sync: still working on recurrence commit 0e07d42825836987afd1c99f3c7c1733cbc4b507 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 16:06:43 2024 -0500 caldav_sync: moving a single event in a recurrence is synchronizing well commit 14a8b6acf066f181d716a2244c1fba1414937f58 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 13:53:23 2024 -0500 caldav_sync: CRUD fully functional, recurring events working with exceptions around changes in mid-sequence with rrule updates commit 068d1fb29ffbf2216a63df4df92e5fa530c0b45c Author: Marc Durepos <marc@bemade.org> Date: Tue Nov 5 16:42:42 2024 -0500 caldav_sync: all CRUD operations working. Recurrences working to some degree but not fully. commit 0104e3897c52ddaf0720fefa30a8b2e917eeb8c9 Author: Marc Durepos <marc@bemade.org> Date: Mon Nov 4 07:48:48 2024 -0500 caldav_sync: major rework underway. This commit is broken.
2024-11-08 15:49:50 -05:00
* It uses the `icalendar` library to format events and the `caldav` library to
interact with CalDAV servers.
[IMP] caldav_sync: Massive rework Significant improvements to the code around synchronizing events, especially recurring ones. Too much has changed to explain fully here, so read the changelog in README.rst or read the code. Squashed commit of the following: commit e537a7f7f4a3b2e985813198b1bcc41bcc9cbce5 Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 15:47:39 2024 -0500 caldav_sync: getting ready for launch of 0.6.0 commit 5797f8efcab4baf51a31508ac097d378d87c256e Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:13 2024 -0500 fixup! caldav_sync: all seems good. further testing to come before merging into 17.0 commit 992778e353289b5f8df176f8691c1ed40acc9a9b Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:02 2024 -0500 caldav_sync: all seems good. further testing to come before merging into 17.0 commit 90d05d75a20cffb484f138e0ef0279fd3f961def Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 11:31:14 2024 -0500 caldav_sync: better sync with calls to _rewrite_recurrence commit 5ca1d56e54ada83827fa0402133c14856e134201 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 16:13:31 2024 -0500 caldav_sync: recurrence working from Odoo to CalDAV. Need further testing for the other direction. commit ce7b27cc6512f24fd39adac64c58c7e0c01c1aaa Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 10:33:26 2024 -0500 caldav_sync: updating recurrences in the middle with future works, but it breaks singled out events before it (brings them back into the rrule chain) commit 421d609abdeecc6db26f970db461fc50feab5545 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 08:08:35 2024 -0500 caldav_sync: still working on recurrence commit 0e07d42825836987afd1c99f3c7c1733cbc4b507 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 16:06:43 2024 -0500 caldav_sync: moving a single event in a recurrence is synchronizing well commit 14a8b6acf066f181d716a2244c1fba1414937f58 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 13:53:23 2024 -0500 caldav_sync: CRUD fully functional, recurring events working with exceptions around changes in mid-sequence with rrule updates commit 068d1fb29ffbf2216a63df4df92e5fa530c0b45c Author: Marc Durepos <marc@bemade.org> Date: Tue Nov 5 16:42:42 2024 -0500 caldav_sync: all CRUD operations working. Recurrences working to some degree but not fully. commit 0104e3897c52ddaf0720fefa30a8b2e917eeb8c9 Author: Marc Durepos <marc@bemade.org> Date: Mon Nov 4 07:48:48 2024 -0500 caldav_sync: major rework underway. This commit is broken.
2024-11-08 15:49:50 -05:00
* Polling for changes on the CalDAV server can be triggered manually by
triggering the scheduled action in Odoo.
[IMP] caldav_sync: Massive rework Significant improvements to the code around synchronizing events, especially recurring ones. Too much has changed to explain fully here, so read the changelog in README.rst or read the code. Squashed commit of the following: commit e537a7f7f4a3b2e985813198b1bcc41bcc9cbce5 Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 15:47:39 2024 -0500 caldav_sync: getting ready for launch of 0.6.0 commit 5797f8efcab4baf51a31508ac097d378d87c256e Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:13 2024 -0500 fixup! caldav_sync: all seems good. further testing to come before merging into 17.0 commit 992778e353289b5f8df176f8691c1ed40acc9a9b Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:02 2024 -0500 caldav_sync: all seems good. further testing to come before merging into 17.0 commit 90d05d75a20cffb484f138e0ef0279fd3f961def Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 11:31:14 2024 -0500 caldav_sync: better sync with calls to _rewrite_recurrence commit 5ca1d56e54ada83827fa0402133c14856e134201 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 16:13:31 2024 -0500 caldav_sync: recurrence working from Odoo to CalDAV. Need further testing for the other direction. commit ce7b27cc6512f24fd39adac64c58c7e0c01c1aaa Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 10:33:26 2024 -0500 caldav_sync: updating recurrences in the middle with future works, but it breaks singled out events before it (brings them back into the rrule chain) commit 421d609abdeecc6db26f970db461fc50feab5545 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 08:08:35 2024 -0500 caldav_sync: still working on recurrence commit 0e07d42825836987afd1c99f3c7c1733cbc4b507 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 16:06:43 2024 -0500 caldav_sync: moving a single event in a recurrence is synchronizing well commit 14a8b6acf066f181d716a2244c1fba1414937f58 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 13:53:23 2024 -0500 caldav_sync: CRUD fully functional, recurring events working with exceptions around changes in mid-sequence with rrule updates commit 068d1fb29ffbf2216a63df4df92e5fa530c0b45c Author: Marc Durepos <marc@bemade.org> Date: Tue Nov 5 16:42:42 2024 -0500 caldav_sync: all CRUD operations working. Recurrences working to some degree but not fully. commit 0104e3897c52ddaf0720fefa30a8b2e917eeb8c9 Author: Marc Durepos <marc@bemade.org> Date: Mon Nov 4 07:48:48 2024 -0500 caldav_sync: major rework underway. This commit is broken.
2024-11-08 15:49:50 -05:00
Change Log
----------
0.8.0
^^^^^
* Disable sending of notification emails when events are created or updated
in Odoo during a CalDAV server synchronization.
* General code cleanup with improved type hints.
0.7.0
^^^^^
* Stopped the import of past events when synchronizing from the CalDAV server.
This should help with performance, timeouts and avoid importing events that
are not relevant to the user.
0.6.0
^^^^^
[IMP] caldav_sync: Massive rework Significant improvements to the code around synchronizing events, especially recurring ones. Too much has changed to explain fully here, so read the changelog in README.rst or read the code. Squashed commit of the following: commit e537a7f7f4a3b2e985813198b1bcc41bcc9cbce5 Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 15:47:39 2024 -0500 caldav_sync: getting ready for launch of 0.6.0 commit 5797f8efcab4baf51a31508ac097d378d87c256e Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:13 2024 -0500 fixup! caldav_sync: all seems good. further testing to come before merging into 17.0 commit 992778e353289b5f8df176f8691c1ed40acc9a9b Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 12:41:02 2024 -0500 caldav_sync: all seems good. further testing to come before merging into 17.0 commit 90d05d75a20cffb484f138e0ef0279fd3f961def Author: Marc Durepos <marc@bemade.org> Date: Fri Nov 8 11:31:14 2024 -0500 caldav_sync: better sync with calls to _rewrite_recurrence commit 5ca1d56e54ada83827fa0402133c14856e134201 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 16:13:31 2024 -0500 caldav_sync: recurrence working from Odoo to CalDAV. Need further testing for the other direction. commit ce7b27cc6512f24fd39adac64c58c7e0c01c1aaa Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 10:33:26 2024 -0500 caldav_sync: updating recurrences in the middle with future works, but it breaks singled out events before it (brings them back into the rrule chain) commit 421d609abdeecc6db26f970db461fc50feab5545 Author: Marc Durepos <marc@bemade.org> Date: Thu Nov 7 08:08:35 2024 -0500 caldav_sync: still working on recurrence commit 0e07d42825836987afd1c99f3c7c1733cbc4b507 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 16:06:43 2024 -0500 caldav_sync: moving a single event in a recurrence is synchronizing well commit 14a8b6acf066f181d716a2244c1fba1414937f58 Author: Marc Durepos <marc@bemade.org> Date: Wed Nov 6 13:53:23 2024 -0500 caldav_sync: CRUD fully functional, recurring events working with exceptions around changes in mid-sequence with rrule updates commit 068d1fb29ffbf2216a63df4df92e5fa530c0b45c Author: Marc Durepos <marc@bemade.org> Date: Tue Nov 5 16:42:42 2024 -0500 caldav_sync: all CRUD operations working. Recurrences working to some degree but not fully. commit 0104e3897c52ddaf0720fefa30a8b2e917eeb8c9 Author: Marc Durepos <marc@bemade.org> Date: Mon Nov 4 07:48:48 2024 -0500 caldav_sync: major rework underway. This commit is broken.
2024-11-08 15:49:50 -05:00
* Fixed an issue where synchronizing events created duplicate events on every sync.
* Completely revamped and synchronization of recurring events in both directions.
* Making a recurring event in Odoo correctly creates the recurring event on the server.
* Modifying the base event of a recurrence with "all events" or "future events" in
Odoo reflects correctly on the server.
* Modifying a non-base event correctly updates on the server in all 3 modes (this
event only, all events, future events).
* Modifying a base recurring event on the CalDAV server correctly updates the events
on Odoo after a synchronization.
* Deleting a whole recurring sequence from Odoo correctly deletes the sequence from
the CalDAV server.
* Deleting a single event or a whole recurring sequence on the CalDAV server
correctly synchronizes to Odoo after a synchronization.
* CalDAV (iCalendar) UIDs are now correctly shared among events of a same recurrence in
Odoo. This corrects a number of issues around updating and deleting events from both
the Odoo and CalDAV server side.
Issues & Requests
-----------------
Please submit issues on Bemade's Gitlab at https://git.bemade.org/bemade/bemade-addons
or via our website at https://www.bemade.org.
License
-------
This program is under the terms of the GNU Lesser General Public License (LGPL-3)
For details, visit https://www.gnu.org/licenses/lgpl-3.0.en.html