Flectic
Odoo ModulesOdoo

Odoo Calendar & Contacts: A Practical Guide to Scheduling and the Address Book

Odoo Calendar and Contacts are the scheduling and address-book core of every Odoo deployment. They share one attendee and partner list, sync two-way with Google Calendar and Outlook (configured per-user with an OAuth Client ID and Secret under Calendar, Configuration, Settings), and deduplicate automatically. Here is how events, reminders, sync setup, and deduplication fit together, and where Dynamics 365 takes a different path.

9 min readUpdated Jul 31, 202623 sources cited

TL;DR — Key takeaways

  • Odoo Calendar is the core scheduling app in Odoo 19, grouped under Productivity alongside Documents, Discuss, and the separate Appointments app.
  • Every Odoo Calendar event supports All Day or specific start and end times, multi-day spans, manually added or auto-generated videocall URLs, and a full form with Duration, Organizer, Tags, description, Reminders, and Recurrent options.
  • Every Odoo Calendar event carries a Reminders field where you stack one or more alarms, each of which fires independently.
  • Odoo does not ship a standalone team-calendar collection.
01

What Odoo Calendar and Contacts actually do

Odoo Calendar is the core scheduling app in Odoo 19, grouped under Productivity alongside Documents, Discuss, and the separate Appointments app. It opens to a calendar overview with Day, Week, Month, or Year views and a Show weekends toggle. Clicking any date opens the New Event popup with the signed-in user auto-added as the first attendee, so an event is never orphaned.

Odoo Contacts is the central repository for every business relationship in the system: customers, suppliers, partners, and individual employees. It is accessible as a standalone app and is the single source of truth that Calendar, CRM, Sales, Purchase, and Accounting all read from. The two apps are designed to interlock. A meeting scheduled from a contact, an opportunity, or a project task links back to that record through the Chatter, so context travels with the event rather than being copied into a separate system.

This tight coupling is the practical reason SMEs consolidate scheduling and contacts on Odoo instead of stitching together a calendar tool, a contact manager, and a CRM. There is one partner list, one attendee model, and one activity history per record.

02

Inside the Odoo Calendar event model

Every Odoo Calendar event supports All Day or specific start and end times, multi-day spans, manually added or auto-generated videocall URLs, and a full form with Duration, Organizer, Tags, description, Reminders, and Recurrent options. Recurrence is granular: you pick a repeat period, configure recurrence rules, and choose an end condition (a fixed count, an end date, or Forever), with explicit timezone selection so distributed teams do not lose an hour on daylight saving.

Attendees are partner records referenced through a many-to-many field, which means internal users and external contacts share one attendee model. Adding a guest is the same action whether the guest is a colleague or an outside customer, and removing them sends the right cancellation depending on the active sync provider.

Share Availabilities, also called Specific Slots, lets a user drag to select available time ranges, copy a shareable link, and configure the Appointment Title, Users, Location, and Video Link type. The configuration screen adds tabs for Availabilities, Questions, Communication (templates and reminders), and Options including auto-confirm, automatic CRM opportunity creation, and scheduling or cancellation windows. For more advanced self-service flows, the separate Odoo Appointments app adds user- and resource-based booking, published booking pages, capacity management, pre-booking windows, manual or auto confirmation, guest invites, and CRM opportunity creation.

03

Reminders, attendees, and event privacy

Every Odoo Calendar event carries a Reminders field where you stack one or more alarms, each of which fires independently. Two reminder types ship out of the box: a Notification, which surfaces as an in-app popup in Odoo Discuss at the configured offset, and an Email, which drops into the mail queue and is sent to attendees. A typical external-meeting setup pairs them: a Notification 10 minutes before the start so the organizer gets a popup, plus an Email 1 day before so outside guests receive a written reminder in their inbox. You can add as many reminders as a meeting warrants, and each can use a different type and offset.

To avoid re-entering the same offsets on every event, Calendar, Configuration, Alarms is where you define reusable reminder presets. Create named presets such as '15 min popup' or '1 day email', and teams inherit a consistent reminder policy instead of each organizer guessing. Customer-facing event types (demos, interviews, support calls) are good candidates for a default alarm preset so no-shows drop without anyone manually chasing.

Two behavioural edges are worth knowing before you rely on reminders. First, Odoo's forums document a long-standing expectation gap: the event creator does not always receive the reminder email that attendees get, because the organizer is treated as the sender rather than a recipient on some reminder paths. If the organizer needs the nudge too, add the organizer explicitly as an attendee, or pair an in-app Notification (which the creator does see) with the attendee Email. Second, reminders depend on the mail queue and the scheduled cron that processes it; if outbound email is misconfigured or the cron is stalled, an Email reminder will sit in the queue and never send, so verifying outbound mail in a test event before go-live prevents a silent failure.

Attendees are full partner records, so adding an external guest is identical to adding a colleague, and each attendee's accept, decline, or tentative status is tracked on the event's Chatter. Privacy is set per event with three options: Public, which lets colleagues see the event in shared availability; Private, which hides the title and details and shows only that the user is busy; and Only Attendees, which limits visibility to the people on the event. Setting sensitive items (1:1s, reviews, confidential meetings) to Private keeps them out of overlaid team views while still blocking the slot, so colleagues respect the busy time without seeing the subject.

04

Shared and team calendars in Odoo

Odoo does not ship a standalone team-calendar collection. Instead, the Calendar dashboard exposes an Attendees box that lists colleagues, and toggling individual users on and off shows or hides their availability when you are scheduling an event that involves multiple people. Sharing is therefore a function of attendee visibility and the Share Availabilities feature, rather than a separate object you have to create and maintain.

For SMEs this is usually sufficient. You see your colleagues free or busy inline, you add the relevant ones as attendees, and the event appears on each of their calendars through the same partner_ids link. Where a published booking page is needed (for example, for external prospects to self-book a discovery call), the Appointments app extends Calendar with a public-facing flow that still writes back into the same Calendar data.

The practical workflow for booking a multi-person slot is to open the Calendar, toggle each colleague in the Attendees box to overlay their events on the same grid, find a gap where everyone is free, and click the empty cell to create the meeting in place. You can save a given set of overlaid users as a Favorite (for example, 'Sales Team' or 'Project Squad') so the same group is one click away next time, and color-code events by user or by tag to spot conflicts at a glance. Because Private events only show the user as busy, overlaying calendars still protects confidential items: you see that someone is unavailable without seeing what the meeting is about.

05

Google and Outlook two-way sync

Odoo Calendar supports bidirectional, two-way synchronization with both Google Calendar and Microsoft Outlook. The Odoo documentation states the Google integration lets you see and manage meetings from both platforms with updates going in both directions, and the Outlook integration is described as a two-way process in which events are reconciled in both accounts.

Setup for Google requires a Google API Console project with the Google Calendar API enabled, an OAuth consent screen, Web application credentials, and the redirect URI set to your Odoo URL plus /google_account/authentication. The Client ID and Secret go in Odoo under Settings, Calendar, Google Calendar. Outlook setup requires an Azure (Entra ID) app registration configured as multitenant with personal accounts, a redirect URI of your Odoo URL plus /microsoft_account/authentication, and a client secret (Odoo recommends a maximum 24-month expiry). Those credentials go in Odoo Calendar under Configuration, Settings, Outlook Calendar.

One behavioural difference is worth flagging during implementation. When Odoo is synced with Google, creating an event or adding a contact triggers Google to send an invitation, and deleting or removing a contact sends a cancellation. With Outlook, the behaviour is more aggressive: creating an event, deleting an event, unarchiving an event, archiving an event, adding a contact to an event, removing a contact from an event, or editing the date or time of an event in Odoo each cause Outlook to send a notification to all participants, with no exceptions. Odoo's documentation explicitly describes this as a Microsoft-side limitation that Odoo cannot fix, so it should be set as an expectation with users before go-live.

Sync is reset per user. From Settings, Manage Users, select the user, open the Calendar tab, and choose Reset Account, with options for the user's existing events (leave them, delete from external, delete from Odoo, or delete from both) and the next synchronization (new events only versus all existing events). A Pause Synchronization checkbox for Google temporarily disables sync without removing credentials.

06

Setting up Google or Outlook sync, step by step

Calendar sync is configured once at the database level by an administrator, then authorized by each user. The two providers follow the same OAuth pattern but live in different consoles: Google uses a Google Cloud project with the Google Calendar API, and Outlook uses a Microsoft Azure (Entra ID) app registration. In both cases an administrator registers an external application, copies the Client ID and Client Secret it produces, pastes them into Odoo under Calendar, Configuration, Settings (Google Calendar or Outlook Calendar), and each end user then connects their own account.

The setup that most independent guides document, and that the official Odoo documentation specifies for version 19, follows four stages: create the external application and enable the calendar API, configure the OAuth consent or API permissions, add a Web credential with the correct redirect URI pointing back at your Odoo database, then paste the resulting Client ID and Secret into Odoo and have each user authorize. The redirect URI is the single most common point of failure: it must exactly match your Odoo URL plus the provider callback path, or the token exchange throws an invalid authorization code error.

Two failure modes recur in the Odoo forums and are worth pre-empting. The first is an invalid or expired secret: an Azure client secret has a maximum lifetime, and Odoo recommends a 24-month expiry, so calendar sync silently breaks the day a forgotten secret lapses. The second is Outlook sync failing on events whose attendees carry no valid email address; the forum documents the symptom as Outlook rejecting the sync when a participant cannot be emailed, so cleaning attendee records (or removing invalid participants) resolves the error rather than reissuing credentials.

Google Calendar vs Microsoft Outlook sync setup in Odoo
StepGoogle CalendarMicrosoft Outlook
ConsoleGoogle Cloud Platform (APIs and Services)Microsoft Azure (Entra ID) app registration
Enable APIEnable Google Calendar API on the projectAdd Microsoft Graph Calendars.ReadWrite permission
Account typeOAuth consent screen (external or internal)Multitenant with personal accounts
CredentialOAuth 2.0 Client ID (Web application)New client secret (max 24-month expiry)
Redirect URI{your-odoo-url}/google_account/authentication{your-odoo-url}/microsoft_account/authentication
Paste in OdooSettings, Calendar, Google CalendarCalendar, Configuration, Settings, Outlook Calendar
Per-user connectPreferences, Calendar tab, Sync with GooglePreferences, Calendar tab, Connect to Outlook
07

Contacts, tags, companies, and deduplication

Odoo contacts come in two types: Person, for individuals (with a Job Position field and a parent Company field), and Company, for organizations that can have multiple associated contact persons and typed addresses. A contact form surfaces contextual tabs for Contacts (associated people and addresses typed as Contact, Invoice, Delivery, or Other), Sales and Purchases, Accounting, Internal Notes, and conditionally Partner Assignment and UBO (Ultimate Beneficial Owner, which requires the Equity app). Smart buttons at the top surface related Opportunities, Sales, Meetings, Invoices, and more.

Tags are the primary way to segment that partner list without resorting to custom fields. A Tags field on the contact form accepts preconfigured tags you type in, and the same tags can be applied in bulk by switching to list view, selecting records, and adding the tag from the action menu. One structural caveat that catches teams out: tags applied to a parent company do not automatically cascade to its child contact persons and addresses, so filtering individuals by a tag that only sits on their company requires either a saved filter that traverses the parent or a deliberate tagging pass over both levels. Used deliberately, tags let you drive marketing segments, sales assignments, and reporting without duplicating the underlying partner records.

The link between Contacts and Calendar is what makes the address book worth maintaining. When you sync a calendar, every attendee on an imported event is resolved into a contact record, and a meeting scheduled from a contact, opportunity, or helpdesk ticket carries that record's context into the event's Chatter. The practical upside is one shared attendee model; the practical risk is contact bloat, which is why deduplication and hygiene belong in the same conversation as sync.

Because Calendar, CRM, and Sales all write back to the same partner list, duplicates accumulate quickly. Odoo provides two layers of cleanup. The built-in Merge action lets you select two or more contacts, choose Action, then Merge, pick the Destination Contact (which defaults to the oldest record, i.e. the one created first in the system), and confirm. The Deduplicate the other Contacts tool searches by Email, Name, Is Company, VAT, or Parent Company, and records must match all selected fields to be suggested. The tool excludes contacts that have an associated user or journal items to avoid merging accounting-affecting records.

For higher-volume hygiene, the optional Data Cleaning app (Enterprise only) adds a dashboard with rules per model (including Contacts), similarity scoring, manual or automatic merge modes, scheduled daily cron actions, domain filtering, field cleaning (Formats rules for find-and-replace standardization), a Recycle feature that identifies outdated records to archive or delete, cross-company matching, and configurable similarity thresholds. Pair this with Partner Autocomplete, an Odoo in-app-purchase service that auto-fills company data (name, logo, phone, email, tax ID, address, UNSPSC tags) when creating a new company contact, reducing manual entry and duplicates at the source.

One sync-driven mess is common enough to plan for before you enable Google Calendar synchronization: the first sync imports every past event on the connected calendar, and Odoo creates a contact record for each attendee on those historical events. Users on the Odoo forum report waking up to hundreds of auto-generated contacts cluttering the address book with no native setting to limit the import by date or to block attendee-to-contact creation. Because there is no built-in toggle, the realistic mitigations are operational rather than configurational: connect each user against a clean or secondary calendar that holds only current and future events, run a deduplication pass immediately after the initial sync using the built-in Merge tool, and if you operate Enterprise, schedule the Data Cleaning app's daily cron so the imported attendee contacts are scored and merged automatically rather than accumulating. Treating the first sync as a one-time data event, rather than a set-and-forget connection, is what separates a clean address book from a noisy one.

08

The Dynamics 365 equivalent: Activities, Account, Contact, and Bookings

Dynamics 365 does not ship a single Calendar plus Contacts app the way Odoo does. The closest equivalent combines three pieces: the normalized Account and Contact entities, the Activity-based scheduling model on Dataverse, and optional Microsoft 365 Bookings for external self-service booking.

On the contact side, Dynamics 365 separates Account (companies or organizations) from Contact (individual people). A contact is linked to one account at a time through a Company (parentcustomerid) lookup, giving a one-to-many relationship between account and contacts. This is more normalized than Odoo's unified res.partner model, where companies and individuals share one table and are differentiated by an is_company flag and parent-child links. The D365 split is cleaner for complex B2B hierarchies but means managing two record types per relationship.

On the scheduling side, Dynamics 365 models appointments, emails, tasks, and phone calls as Activity entities that all inherit from ActivityPointer, which Microsoft defines as any action which can be entered on a calendar and has time dimensions such as start time, stop time, due date, and duration. The Appointment table is defined as a commitment representing a time interval with start and end times and duration, with required and optional attendees, an organizer, a Regarding lookup (polymorphic to account, contact, opportunity, or case), recurrence through RecurringAppointmentMaster (pattern, interval, occurrences, with Master, Instance, and Exception handling), and Teams online-meeting fields. Participants are modeled through the ActivityParty table with roles such as Required attendee, Optional attendee, Organizer, Regarding, and Owner.

Dataverse also has a separate calendar table used by the scheduling engine to define when an appointment or activity is to occur, with types including Default, Customer Service (for SLA KPIs), Holiday Schedule, and Inner. This table is primarily used by Customer Service service activities and Field Service work orders and bookings, not day-to-day meeting coordination. For external self-service booking, Microsoft Bookings is a separate Microsoft 365 app, not a Dynamics 365 module, with booking pages, services (duration and pricing), staff availability, email and SMS confirmations, scheduling policies, and Teams meetings. Its data lives in Exchange Online shared mailboxes rather than Dataverse.

For SMEs that want contacts and scheduling in one place with minimal setup, the Odoo model is lighter and faster to stand up. For organizations already standardized on Microsoft 365, the D365 activity timeline plus native Exchange server-side sync and Teams integration is the differentiator.

09

Implementation considerations for SMEs

Three decisions drive most of the value from an Odoo Calendar and Contacts rollout. First, decide early whether you will sync with Google, Outlook, or both, because user training and the Outlook all-participants notification behaviour should be set as expectations before go-live. Second, plan a one-time deduplication pass using the built-in Merge tool plus Partner Autocomplete before turning on any CRM or email-marketing workflow that creates contacts automatically; cleaner seed data prevents the duplicate snowball. Third, decide where the line is between Calendar's Share Availabilities (good for internal and simple external scheduling) and the Appointments app (better for published booking pages with questions, capacity, and auto-confirm), so users are not improvising both.

Because Contacts is foundational to every other Odoo app, getting the company-versus-person structure right at import time pays compound interest across CRM, Sales, Purchase, and Accounting later.

FAQ

Frequently asked questions

Is Odoo Calendar included with Odoo, or is it a separate app?

Odoo Calendar is a core Productivity app bundled with Odoo 19 and provides Day, Week, Month, and Year views plus recurring events, reminders, and videocall URLs. The separate Appointments app extends Calendar with published booking pages, custom questions, capacity management, and auto-confirm for self-service scheduling.

Does Odoo Calendar sync two-way with Google and Outlook?

Yes. Odoo Calendar supports bidirectional sync with both Google Calendar and Microsoft Outlook. Setup uses OAuth: a Google API Console project for Google, and an Azure (Entra ID) app registration for Outlook. Note that Outlook sends a notification to all participants on every create, delete, archive, unarchive, contact add/remove, or date/time edit on an event in Odoo, a Microsoft-side limitation documented by Odoo that cannot be fixed.

How does Odoo handle duplicate contacts?

Odoo offers two layers. The built-in Merge action lets you select contacts, choose Action, Merge, pick a destination contact (defaults to the oldest record), and confirm. The optional Data Cleaning app (Enterprise) adds similarity-scored rules, scheduled daily cron deduplication, automatic or manual merge, field cleaning, and a recycle bin. Partner Autocomplete also reduces duplicates at the source by auto-filling company data when you create a new company contact.

What is the Dynamics 365 equivalent of Odoo Calendar and Contacts?

Dynamics 365 splits the function across the Account and Contact entities, Activity-based scheduling on Dataverse (Appointment, ActivityParty, RecurringAppointmentMaster), and the separate Microsoft 365 Bookings app for external self-service booking. It is more normalized than Odoo's unified partner list and integrates deeply with Exchange and Teams, but requires managing multiple entities rather than one shared contact and attendee model.

Can I share a team calendar in Odoo?

Odoo does not have a standalone team-calendar collection. The Calendar dashboard lists colleagues in an Attendees box, and toggling each user shows or hides their availability when you schedule an event. For publishing available slots to external contacts, use Calendar's Share Availabilities feature or the dedicated Appointments app.

How do I set up Odoo Calendar sync with Google or Outlook?

An administrator registers an external application, then each user connects their own account. For Google, create a Google Cloud project, enable the Google Calendar API, add an OAuth 2.0 Web credential with the redirect URI set to your Odoo URL plus /google_account/authentication, and paste the Client ID and Secret into Odoo under Settings, Calendar, Google Calendar. For Outlook, create a multitenant Azure (Entra ID) app registration with the redirect URI set to your Odoo URL plus /microsoft_account/authentication, add a client secret (Odoo recommends a maximum 24-month expiry), and paste the credentials into Calendar, Configuration, Settings, Outlook Calendar. Each user then authorizes their account from the Calendar tab of their Preferences.

Why doesn't the event organizer receive the calendar reminder email?

On some reminder paths Odoo treats the event creator as the sender rather than a recipient, so the organizer does not receive the same email reminder that attendees get. Two reliable fixes are to add the organizer explicitly as an attendee on the event, or to pair an in-app Notification (which the creator does see as a popup) with the attendee Email reminder. Also confirm the mail queue and its scheduled cron are running, because an Email reminder that enters a stalled queue will never send to anyone.

Why did enabling Google Calendar sync create hundreds of contacts?

The first Google Calendar synchronization imports all past events on the connected calendar, and Odoo creates a contact record for every attendee on those historical events. There is no native setting to limit the import by date or block attendee-to-contact creation. The practical mitigations are to connect each user against a clean or future-only calendar, run the built-in Merge deduplication tool right after the initial sync, and on Enterprise schedule the Data Cleaning app's daily cron to score and merge the imported contacts automatically.

Sources & methodology

23 cited

Every pricing figure and statistic on this page is traced to a primary or vendor source with a verification date. Where partner pages are cited, their platform bias is disclosed in-line.

  1. 01
    Odoo Calendar is the core scheduling app in Odoo 19 (Productivity), with Day/Week/Month/Year views, a Show weekends toggle, and the signed-in user auto-added as the first attendee on new events; events support All Day or specific times, multi-day, videocall URLs, Duration, Organizer, Tags, Reminders, and Recurrent options with repeat period, recurrence rules, end conditions, and timezone.odoo.com · verified 2026-06-28
  2. 02
    Odoo Calendar's Share Availabilities (Specific Slots) feature supports drag-to-select ranges, shareable links, Appointment Title/Users/Location/Video Link, plus Availabilities, Questions, Communication, and Options tabs including auto-confirm and CRM opportunity creation.odoo.com · verified 2026-06-28
  3. 03
    The separate Odoo Appointments app provides more advanced self-service booking flows (user- or resource-based), published booking pages, capacity management, pre-booking windows, manual/auto confirmation, guest invites, and CRM opportunity creation, tightly integrated with Calendar.odoo.com · verified 2026-06-28
  4. 04
    Odoo supports shared/team calendars via the Calendar dashboard Attendees box; there is no standalone team-calendar collection; sharing is via attendee visibility and Share Availabilities.odoo.com · verified 2026-06-28
  5. 05
    Odoo Calendar supports bidirectional (two-way) sync with Google Calendar; setup requires a Google API Console project, Google Calendar API, OAuth consent screen, Web application credentials, redirect URI {odoo_url}/google_account/authentication, and Client ID/Secret in Odoo Settings, Calendar, Google Calendar; sync reset is per-user with options for existing events and next synchronization.odoo.com · verified 2026-06-28
  6. 06
    Odoo Calendar supports bidirectional sync with Microsoft Outlook via an Azure (Entra ID) multitenant plus personal accounts app registration, redirect URI {odoo_url}/microsoft_account/authentication, client secret (max 24-month expiry), with credentials in Odoo Calendar, Configuration, Settings, Outlook Calendar; Outlook sends a notification to ALL participants on every create, delete, archive, unarchive, contact add/remove, or date/time edit with no exceptions.odoo.com · verified 2026-06-28
  7. 07
    Odoo Contacts is the central repository for all business contacts, with two types (Person with Job Position and parent Company, and Company with multiple associated contacts/addresses typed as Contact, Invoice, Delivery, or Other) and contextual tabs (Contacts, Sales & Purchases, Accounting, Internal Notes, Partner Assignment, UBO when Equity app installed) plus smart buttons for related records.odoo.com · verified 2026-06-28
  8. 08
    Odoo supports manual contact deduplication (select contacts, Action, Merge, choose Destination Contact which defaults to the oldest/first-created record) and the Deduplicate the other Contacts tool matching on Email, Name, Is Company, VAT, or Parent Company, excluding contacts with an associated user or journal items.odoo.com · verified 2026-06-28
  9. 09
    The Odoo Data Cleaning app (Enterprise only) provides advanced deduplication with rules per model, similarity scoring, manual/automatic merge, scheduled actions (daily recycle cron), domain filtering, field cleaning (Formats rules), Recycle records, cross-company matching, and configurable thresholds.odoo.com · verified 2026-06-28
  10. 10
    Partner Autocomplete is an Odoo In-App Purchase (IAP) service that enriches newly-created company Contacts with business name, logo, phone, email, Tax ID, address, and UNSPSC activities as Tags; it only works for new company contacts, not existing ones or person contacts.odoo.com · verified 2026-06-28
  11. 11
    Microsoft Dataverse defines an activity as any action which can be entered on a calendar and has time dimensions (start time, stop time, due date, duration); every activity type has a row in the shared ActivityPointer table plus its own specialized table.learn.microsoft.com · verified 2026-06-28
  12. 12
    The Dataverse Appointment table is a commitment representing a time interval with start/end times and duration, with required/optional attendees, organizer, Regarding, recurrence via RecurringAppointmentMaster, and Teams online-meeting fields; participants are modeled via ActivityParty with participationtypemask roles (5=Required attendee, 6=Optional attendee, 7=Organizer, 8=Regarding, plus Owner).learn.microsoft.com · verified 2026-06-28
  13. 13
    In Dynamics 365 Sales/CE, Account represents companies/organizations and Contact represents individuals linked to one account at a time via the Company (parentcustomerid) lookup (one account to many contacts), contrasting with Odoo's unified res.partner model.learn.microsoft.com · verified 2026-06-28
  14. 14
    Microsoft Bookings is a separate Microsoft 365 app (not a Dynamics 365 feature) for simplifying appointment scheduling with customers, providing a booking page, Services, Staff, Customers, Appointments with email/SMS confirmations, scheduling policies, and Teams meetings; all Bookings data is stored in Microsoft 365/Exchange Online shared mailboxes, not Dataverse.learn.microsoft.com · verified 2026-06-28
  15. 15
    Odoo Calendar events carry a Reminders field that stacks multiple alarms, each firing independently; the two reminder types are Notification (in-app popup) and Email; a common external-meeting setup pairs a Notification 10 minutes before with an Email 1 day before; reusable reminder presets are defined under Calendar, Configuration, Alarms.dasolo.ai · verified 2026-07-31
  16. 16
    To overlay colleagues when scheduling, open the Calendar Attendees box and toggle each user to show their events on the same grid; save the overlaid set as a Favorite; set event Privacy to Public, Private (shows only that the user is busy), or Only Attendees; color-code by user or tag to spot conflicts.dasolo.ai · verified 2026-07-31
  17. 17
    Odoo forum reports that when a Calendar event with several participants is created, a reminder sent by email X time before the start is not received by the creator of the event (the organizer), because the creator is treated as the sender rather than a recipient on the reminder path.odoo.com · verified 2026-07-31
  18. 18
    Odoo forum documents that after enabling Google Calendar synchronization, Odoo imports all past events on the connected calendar and creates hundreds of contacts from past calendar invites, with no native setting to limit the sync by date or to block attendee-to-contact creation.odoo.com · verified 2026-07-31
  19. 19
    Odoo forum documents that Outlook Calendar synchronization fails when a participant on an event has no valid email address; the documented symptom is the sync erroring rather than the event syncing.odoo.com · verified 2026-07-31
  20. 20
    Google Calendar sync setup in Odoo 19 requires a Client ID and Client Secret from a Google Cloud project with the Google Calendar API enabled, an OAuth consent screen, a Web application credential, the redirect URI set to {odoo_url}/google_account/authentication, and the credentials pasted under Settings, Calendar, Google Calendar; each user then connects from their Calendar preferences.odoo.com · verified 2026-07-31
  21. 21
    Outlook Calendar sync setup in Odoo 19 uses a Microsoft Azure (Entra ID) app registration; the Client ID and Client Secret are created under Azure and entered in Odoo; Odoo documentation describes the Azure OAuth app and client secret creation, recommending a maximum 24-month secret expiry.odoo.com · verified 2026-07-31
  22. 22
    Odoo Contacts use a Tags field that accepts preconfigured tags typed into the contact form; tags can be applied in bulk from list view by selecting records and adding the tag via the action menu.odoo.com · verified 2026-07-31
  23. 23
    Odoo forum documents that tags applied to a parent company contact do not automatically cascade to its child contact persons and addresses, so filtering individuals by a tag that sits only on their parent company requires a saved filter traversing the parent or a deliberate tagging pass over both levels.odoo.com · verified 2026-07-31

Related services & solutions

Planning an Odoo or Dynamics 365 rollout?

Flectic is a platform-neutral ERP and CRM implementation partner serving SMEs across Canada, the UK, and the USA. We implement both Odoo and Microsoft Dynamics 365, with AI-accelerated delivery designed to deliver up to 3x faster than a traditional implementation. Whether you need Calendar, Contacts, and CRM configured cleanly on day one or a deduplication and sync strategy across Google, Outlook, and Teams, we can scope it on a single call.

Book an ERP Readiness Call
Response within one business day