bemade-addons/caldav_sync
Marc Durepos 36e62be4c1 caldav_sync bug fixes:
* Fixed an issue where accepting events from an external organizer would send emails
  to the all event attendees upon synchronization.
* Corrected the data model for events where multiple Odoo users are attendees for the
  same event. Now, only one event is created in Odoo, with all the attendees on the
  same event. This conforms to Odoo's existing calendar event data model.
* Updated the setting of the organizer field (user_id) on the calendar events upon
  synchronization. Previously, the organizer field was always set to the current user
  whose events were being synchronized. Now, it is set based on the ORGANIZER parameter
  of the iCalendar event, if present. If not present, it defaults to the current synchronizing
  user. In the case that the organizer is external, the user_id field is left blank.
2025-02-07 10:54:15 -05:00
..
data [FIX] caldav_sync: error in data XML 2024-12-20 09:34:30 -05:00
models caldav_sync bug fixes: 2025-02-07 10:54:15 -05:00
static/description [IMP] caldav_sync: Massive rework 2024-11-08 15:49:50 -05:00
tests caldav_sync bug fixes: 2025-02-07 10:54:15 -05:00
views caldav_sync: fix a bug where deleting an event fails to remove it from iCloud calendars. 2024-07-05 09:04:51 -04:00
__init__.py update readme, remove controller from init, add icon 2024-05-23 12:50:14 -04:00
__manifest__.py caldav_sync bug fixes: 2025-02-07 10:54:15 -05:00
README.rst [IMP] caldav_sync: Massive rework 2024-11-08 15:49:50 -05:00
requirements.txt [IMP] caldav_sync: Massive rework 2024-11-08 15:49:50 -05:00

CalDAV Synchronization
======================

Bemade Inc.

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
-----------------

* The module extends the `calendar.event` model to add CalDAV synchronization
  functionality.
* It uses the `icalendar` library to format events and the `caldav` library to
  interact with CalDAV servers.
* Polling for changes on the CalDAV server can be triggered manually by
  triggering the scheduled action in Odoo.

Change Log
----------

17.0.0.6.0
^^^^^^^^^^

* 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