| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Calendar (calendar)
• Discuss (mail) • Employees (hr) |
| Lines of code | 615 |
| Technical Name |
arcivo_ical_sync |
| License | OPL-1 |
| Website | https://arcivo.odoo.com/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Calendar (calendar)
• Discuss (mail) • Employees (hr) |
| Lines of code | 615 |
| Technical Name |
arcivo_ical_sync |
| License | OPL-1 |
| Website | https://arcivo.odoo.com/ |
| Versions | 18.0 19.0 |
Arcivo
iCal Sync
Subscribe to any iCal/ICS URL and have events automatically imported into your Odoo Calendar. Hourly, daily or weekly sync. Full RRULE recurrence. Color-coded feeds. No external packages.
External Dependencies
Languages Included
Setup Time
Sync Intervals
Your Calendar, Always in Sync
Everything you need to bring external calendars into Odoo — automated, deduplicated, always current.
Any iCal / ICS Feed
Subscribe to any RFC 5545-compliant .ics URL — Google Calendar, Outlook, Apple iCloud, public holidays, Meetup, CalDAV servers and more.
Full RRULE Recurrence
Recurring events with complex RRULE patterns — BYDAY, BYMONTH, UNTIL, COUNT, INTERVAL, EXDATE — faithfully imported into Odoo's calendar engine.
Flexible Sync Intervals
Choose hourly, daily or weekly per feed. The built-in cron job handles scheduling automatically — or click Sync Now for an immediate update.
Color-Coding per Feed
Assign a distinct color to each feed. Events display in their feed color on the Odoo calendar for instant visual separation between sources.
Manager Dashboard
A Kanban view shows all feeds with last-sync timestamp, event count and interval status — everything visible at a single glance.
Auto-Purge Old Events
Keep your calendar clean. Past events older than N days (configurable per feed) are automatically removed. Set to 0 to disable entirely.
Three Steps to Automated Sync
Configure once — events flow in automatically forever.
Create a Feed Record
Enter a name and the full .ics URL. Optionally link to an employee, pick a calendar color, and set the sync interval and purge window.
Sync Runs Automatically
The hourly cron job checks each feed's interval and syncs when due. Odoo fetches the feed, parses every VEVENT and creates or updates calendar events.
Events Appear in Calendar
Imported events appear in the Odoo Calendar in their feed color. Recurring events follow the source RRULE. No duplicates — UID-based deduplication.
Up & Running in 5 Minutes
Follow these steps after installation to start syncing your first iCal feed.
First — Assign User Access
After installation, go to Settings → Users, open each user who needs access, and assign them
iCal Sync / User or iCal Sync / Manager under the application permissions section.
Without this step the iCal Sync menu will not be visible.
User — can view feeds and trigger sync | Manager — full CRUD + configuration
Create an iCal Feed
Navigate to iCal Sync → iCal Feeds → New. Enter a feed name and the full .ics URL. Optionally assign the feed to an employee and choose a responsible user whose calendar will receive the imported events.
Configure the Sync Interval
Select Hourly, Daily or Weekly. Set Purge Past Events After to auto-delete old events. Use 0 to keep all events indefinitely.
Click Sync Now
Click the Sync Now button for an immediate import. The Last Sync field and Event Count update instantly. Check the Last Sync Log for a summary.
Monitor from Dashboard
Go to iCal Sync → Dashboard to see all feeds in Kanban — last sync timestamp, event count and interval at a glance. Click View Events to browse imported events.
Built for Simplicity.
Engineered to Sync.
Design
Looks and feels like Odoo. No foreign UI elements.
Required
Pure Python stdlib — urllib, re, datetime, dateutil. Nothing to install.
Setup
Install, paste a URL, pick an interval. First events import in seconds.
Support
Arcivo support team responds within 24 hours, always.
Built for Odoo 19
Fully rewritten to comply with every Odoo 19 breaking change. Zero legacy code remaining.
Security Groups Rebuilt
Odoo 19 removed category_id, comment and users fields from res.groups, and ir.module.category entirely. All removed cleanly.
Cron Updated
Odoo 19 removed the numbercall field from ir.cron. Scheduled action updated — infinite run is now the default behaviour.
Views Modernised
<tree> replaced by <list>, column_invisible used on list fields, <group> removed from search views, <chatter/> self-closing tag used throughout.
Need Help or Custom Features?
Contact Arcivo for support, custom development, or integration assistance.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module