Joint Calendar v.12

The tool to combine different Odoo events in a few configurable super calendars. Shared calendar. Common calendar.


The tool does not require extra dependencies beside standard Odoo apps.
Current version:

Daily work of the most Odoo users runs around a few document types. Sales persons cope with opportunities and sale orders, HR officers process interviews and appraisals, procurement managers occupy themselves with purchase orders and shipments. Simultaneously, users need to keep in mind a lot of details spread out among numerous interfaces. Switching between those is not comfortable and error-prone. This tool solves the trouble. The app let you configure rules to join different document types on a single super calendar view with powerful reminders and easy-reach source objects.

Multifarious events on a single calendar

The tool might merge any Odoo document types on the same view: opportunities, meetings, phone calls, activities, sale or purchase orders, shipments and deliveries, tasks and tickets, so on and so on. It is even possible to place the same document twice on the same calendar with different start or stop date.
Besides, you may have an unlimited number of joint calendars with various events, configurations and user groups included, divided by teams or functional areas. Each joint calendar has an own menu item.
Super calendars are updated automatically according to the scheduled jobs. It is fast, especially if you applied time frames.


Joint document types on a single calendar

Odoo super calendar events

Fast switching between functional areas

Shared calendars are especially suitable for team interactions. Users might switch between different document types in a single click or work with all of them simultaneously. They can show only own items, items of selected persons, or items disregarding who is responsible.

Topical and relevant information

Depending on goals a different piece of data might be of need. What is more important now: expected closing or its activity deadline? The tool let you configure by your own what to consider a joint event title, start or stop date, who are event owners in a definite super calendar.
You may also define which documents to show by setting up special filters. Show opportunities but not leads. Work with orders of this sales team but not of others. Merge only overdue activities but not future ones.

How to add a new document type for a joint calendar

To add a new document type for a joint calendar you should set up a joint calendar rule. This rule defines which Odoo objects should create events, which fields of that object should be shown, and whether any filtering should take place. The app will try to add the most typical values by default, but you should think which data is required in your exact case.

  • Model - which objects to scan: opportunities, tasks, orders, meetings, activities, and so on. You can choose your custom document type as well!
  • Name – what to use as a joint event name (also used as calendar event title). Usually it is 'name', 'subject' or 'reference'.
  • Start date - when an event starts. For example, 'expecting closing' for opportunities or 'order date' for quotations. It may be any date or date with time field of a source Odoo object.
  • Attendees – who are participants (responsible persons, event owners). Usually, it is a field 'assigned to', 'a sales person' or 'attendees'. You may use even document 'followers'. It is possible to apply both users and partners as attendees
  • Stop date – when an even is shown as finished on a calendar.
  • Always Whole Day - means that all generated events would last the whole day disregarding whether start or stop are defined with hours and minutes. Such an event would be shown at a special place on a calendar (above the time line)
  • Whole Day - a special boolean field of source object which indicates that a related joint event may lasts the whole day. This setting is usually applied to standard Odoo calendar events which both might have definite time indicated or might be planned for a whole day.
  • Description – are there any notes important for joint events? Usually the fields like 'internal notes' or 'comments' are used
  • Contact Link – is this event linked to a specific partner? Usually the fields like 'customer' or 'vendor' are used
  • Domain – the special filters' constructor to include only topical documents into a joint calendar. You might search almost by any criteria. For example, show only quotations without sales orders, or show opportunities only of this sales team or of this customer. If you are confident to make Reverse Polish Notations you may also turn on the debug mode to construct advanced filters.
  • Action – defines which form view should be shown when you open a source document from a joint event. It is a technical field which in the most cases should not be changed in comparison to a default value.

How to configure a new joint calendar based on rules

As soon as you prepare a few joint event rules, you are ready to configure a new joint calendar.

First of all, define a title. It would be used as a menu entry for all joint calendar users.

Second of all, choose document types (rules) which should be merged on this shared calendar.

Then, switch to the advanced settings. Some of those might be useful:

  • Sequence – in which order various joint calendars' entries are shown. Should it be before the previous super calendar? Then, make a sequence smaller.
  • Privacy – let you make a calendar public or private (for predefined user groups only).
  • Time limits – allow you optimizing performance of joint events' interfaces. Often there is no need to show the documents of the last year on a calendar.

Is this joint calendar is not any more of use, but it might be needed in the Future? Fine, just archive this calendar: you can activate it at any moment afterwards.


Multiple rules to search documents by types

Shared calendar: combine various events

Joint calendar settings

Advanced settings of joint calendar

Joint event rule (example of opportunities)

Opportunity joint events

Joint event rule (example of sale orders)

Sales orders joint calendar

Joint event rule (example of meetings)

Meetings joint calendar

Joint event rule (example of tasks)

Tasks joint calendar

Automatic reminders for any Odoo document

Spend 10 seconds to configure alarms for all objects of the same type. You may warn users about closing time, missing deadlines, due dates. By email or as a pop-up reminder. Once configured, the schema would work forever.

How to introduce a warning system

All you need is to prepare a few reminders and indicate those as default on a shared calendar form. Once joint events are generated, each of those would have the same alarms. Afterwards, you may update the these alarms for certain items if you want.

Thus, you can make reminders for any Odoo document automatically. Remind sales persons about next actions in opportunities and calls. Warn workers about a new manufacturing order. Notify programmers about deadlines. So on and so on.

Use both email notifications or pop-up warnings. Warn attendees and responsible users at the moment you like to: from 5 minutes to hundreds of days before.


Configure pop-up alarm for any Odoo event

Reminder by joint event

Email reminder by any Odoo object

Email notification of joint event

Quick access to source details

Joint events and their source documents are connected: if a user applies changes, those changes would update the both. Besides, you may also create an 'independent' event which is not linked to any Odoo object.

How are source documents and joint events interrelated

Users observes a link for a source document right on an event form. Thus, it is always possible to expand miscellaneous details.

If you changed a joint event, its parent object would be updated correspondingly in real time. For example, you drag a record and drop it to another date, then a source document would be also moved. Be cautious: it does not work for computed and readonly fields (e.g. a create date can not be modified logically).

If you changed a source object, a joint event would be updated with a next super calendar scheduled job.


Joint event form with simple access to parent document

Parent object from Odoo joint event

Simple user rights administration

You might regulate an access for a particular joint calendar right on its form. Make it public or share it only for chosen user groups.

More details about joint calendar security

The right to create and configure joint calendars belongs only to Odoo administrators (users with the rights 'Administration - Access Rights').

Users may open joint events related to public joint calendars or private joint calendar with one of her/his group indicated. Configure private groups on a joint calendar form, the tab 'Settings', the fields 'Privacy' and 'Groups'. In such a way it is possible to make a joint calendar only for sales managers or only for accountants.

Take into account that in order a user may observe or update a joint event, she/he should have the same rights for a source document. For example, if a sales person doesn't have a right to observe an opportunity, she/he would not see a related joint event as well.

Manually created joint events (without a parent object) may be either public (for all employees) or private (visible for attendees only).

Used in any functional area

The coolest thing about joint calendars is that you may use it for any sphere: CRM, project management, sales, HRM, MRP, so and so on.

Have a look at typical use cases

Activities by all objects and responsibles on a single calendar

Activities are a great Odoo invention, which helps you organize daily routine as a set of well-reached and structured tasks. They are quite comfortable for use, but for team collaboration and efficient management, sometimes you want to have a calendar overview of planned and overdue activities.

Joint Calendar let you achieve that goal. Just add an activity rule as joint calendar rule:

  • As a model use 'Activity'
  • As a name use 'Display Name'
  • As a start date field use 'Due Date'
  • As attendees fields use 'Assigned to'
  • As a domain apply 'Summary is set'
  • For the action field create a new one: go to the Settings > Technical > Actions > Window Action. As an object use 'mail.activity', as a view mode – 'form', as a name – any suitable
Opportunities on a super calendar
  • As a model use 'Lead / Opportunity'
  • As a name use 'Opportunity'
  • As a start date field use 'Expecting Closing'
  • As attendees fields use 'Salesperson'
  • As a contact link use customer
  • As a domain optionally restrict opportunities by sales teams.
Tasks on a joint calendar
  • As a model use 'Task'
  • As a name use 'Title'
  • As a start date field use 'Deadline'
  • As attendees fields use 'Assigned to'
  • As a domain optionally you can set definite projects
Share employees leaves
  • As a model use 'HR Leave'
  • As a name use 'Description'
  • As a start date field use 'Start Date'
  • As attendees fields use 'User'
  • As a stop date field use 'Start Date'
  • As a domain filter by status: show only approved leaves.

Better then expected

The app does exactly what was needed. Combine all tasks from all calendars to one. And allows to manages all activities from all modules in one place.

Arseniy in the Odoo Apps Store

This makes the Event Calendar so much more useful !

We bought this to combine certain project tasks with the schedules of our maintenance engineers. We now have a better overview which moments are overlapping the schedules of other events. The joining of multiple events in 1 event calendar is super easy, it should be a standard option in ODOO.

Sander Galestien in the Odoo Apps Store

Excellent responsive team of programmers

Joint Calendar is the perfect addition to the standard Calendaring system that Odoo offers. It makes the job of setting up specific departmental calendars filled with any objects you wish very easy and Alex and the team provides fantastic after-sales support, responding in most cases within 24 hours to requests for help. Thanks for a great module.

Bill Ennals in the Odoo Apps Store

Essential to have Activities, Tasks, Meetings etc all in one calendar and shared.

Great service support very quick and were right on with fixing the issue... I think the ability to see everything on one shared calendar is such an essential part of coordination and time management. Great product once you sort out the rules you need!

Saul in the Odoo Apps Store

Configuration and Installation Tips for Joint Calendar Odoo v.12

Scheduled jobs

To change the frequency of joint calendar automatic jobs:
  1. Turn on the debug mode
  2. Go to technical settings > Automation > Scheduled jobs
  3. Find the job 'Refresh Joint Events' to change the frequency of calendars' update
  4. Find the job 'Notify About Joint Event' to change the frequency of email alarms.

Email alarm style

To change the email notification template:
  1. Activate the developer mode
  2. Go to technical settings > Email > Templates
  3. Find the template 'Joint Event Notification'
  4. You are welcome to change here message body
  5. Email subject might be changed through the translated term 'Reminder by Event'.

Frequently Asked Questions about Joint Calendar Odoo v.12

When the option "Always Whole Day" is turned on, then all generated events created with the rule will last the whole day disregarding whether start or stop are defined with hours and minutes. Such an event will be shown at a special place on a calendar.

For example, if you create a rule for the model "Sale Order", and turn on the option "Always Whole Day", then the event will be placed on the daily and weekly super calendars above the timeline.

If you turn off the option, then, if the start or stop are defined with hours/minutes, the event will be placed at a particular time on the day's timeline and you will see the time before the event's title.

Make sure:

1. There is at least one joint calendar created configured and refreshed. Please refresh your browser page after setting up any joint calendar

2. You have the access to at least one of the calendars

There might be several reasons for that. It is possible, that the related scheduled job hasn't yet took place. In this case, you can launch the cron manually by clicking on the button refresh on the right column of the joint calendar interface.

Also check, whether you have Time Limits set to the calendar as otherwise the events for only a particular time range will be shown. For example, if you have a calendar 'Sale Orders' with time limits 10 days before and 30 days after. If a Sale Order was created, for example, 12 days before, then it will not be shown in the calendar.

Make sure, that there aren't any filters applied to the rules as there might be no records matching them. For example, if you have a rule 'Sale Order' with the filter 'Customer = Deco Addict', then only orders of this customer will be shown in the related calendar.

You can combine as many Odoo documents as you like into a single calendar. Or, you can divide those between several calendars (for example Sales Calendar and Projects, Tasks and Activities Calendar) and then switch between them in the systray.

Rules define which Odoo objects should create events, which fields of that object should be used and shown, and whether any filtering should take place.

While creating a rule, you can define by your own what to consider a joint event title, start or stop date, who are target attendees, etc.

Stop date - a field of the target Odoo model, which defines when an even is shown as finished on a calendar. For example, if you create a rule for the model "Sale Order" and choose the "Delivery Date" for the Stop date field, then the event will be shown in the events menu from the day for which this quotation is planned (Start Date field - Order Date) till the day of the product's delivery.

It is an optional field, so you can leave it empty. In this case, the event will be placed only on the day defined by the Start Date field.

It means that this event was created manually. It has no parent object, and is not regulated by a rule. Such joint events would be available under the filter "Undefined", without color.

All people, who have the access to see the calendar, may create and see its undefined events.

According to the current Odoo Apps Store policies:

  • every module bought for version 12.0 and prior gives you access to all versions up to 12.0.
  • starting from version 13.0, every module version should be purchased separately.
  • disregarding the version, purchasing a tool grants you a right to all updates and bug fixes within a major version.

Take into account that the faOtools team does not control those policies. For all questions, please contact the Odoo Apps Store representatives directly.

The easiest approach is to use the Odoo store built-in workflow:

1. Open the module's page and click the button Deploy on

2. After that, you will be redirected to the GitHub page. Login to your account and click 'Create a new repo' or use the existing one. Please, make sure, that your repository is private. It is not permitted to publish the apps under the OPL-1 license. If necessary, create a new repo for your project

3. Then, go to and click on the deploy button, submit the decision in the pop-up window and click 'Continue'. The action will trigger the installation process.

These steps will install the app for your project production branch. If you want to deploy the apps for other branches or update the module, you should undertake the following actions:

1. Upload the source code for the app from the Odoo store

2. Commit the module to a required GitHub repository. Make sure that none of the app folders/files are ignored (included in the .gitignore of your repo). Repositories are automatically created by, which might add by default some crucial items there (e.g. /lib). You should upload all module directories, subdirectories, and files without exceptions

3. Deploy a target branch of the project or wait until it is automatically built if your settings assume that.

  1. Unzip the source code of the purchased tools in one of your Odoo add-ons' directories;

  2. Re-start the Odoo server;

  3. Turn on the developer mode (technical settings);

  4. Update the apps' list (the apps' menu);

  5. Find the app and push the button 'Install';

  6. Follow the guidelines on the app's page if those exist.

Yes, sure. Take into account that Odoo automatically adds all dependencies to a cart. You should exclude previously purchased tools.

A red/orange warning itself does not influence features of the app. Regretfully, sometimes our modules do not pass standard automatic tests, since the latter assumes behavior which is in conflict with our apps goals. For example, we change price calculation, while standard Odoo module tests compare final price to standard algorithm.

So, first of all, please check deployed database features. Does everything work correctly?

If you still assume that warning influences real features, please contact us and forward full installation logs and the full lists of deployed modules (including core and third party ones).

Regretfully, we do not have a technical possibility to provide individual prices.

No, third party apps can not be used on Odoo Online.

Yes, all modules marked in dependencies are absolutely required for a correct work of our tool. Take into account that price marked on the app page already includes all necessary dependencies.  

The price for our modules is set up in euros. The Odoo store converts prices in others currencies according to its internal exchange rate. Thus, the price in US Dollars may change, when exchange rate changes.

Bug reporting

In case you have faced any bugs or inconsistent behavior, do not hesitate to contact us. We guarantee to provide fixes within 60 days after the purchase, while even after this period we are strongly interested to improve our tools.

No phone number or credit card is required to contact us: only a short email sign up which does not take more than 30 seconds.

Please include in your request as many details as possible: screenshots, Odoo server logs, a full description of how to reproduce your problem, and so on. Usually, it takes a few business days to prepare a working plan for an issue (if a bug is confirmed) or provide you with guidelines on what should be done (otherwise).

Public features requests and module ideas (free development)

We are strongly motivated to improve our tools and would be grateful for any sort of feedback. In case your requirements are of public use and might be efficiently implemented, the team would include those in our to-do list.

Such a to-do list is processed on a regular basis and does not assume extra fees. Although we cannot promise deadlines and final design, it might be a good way to get desired features without investments and risks.

No phone number or credit card is required to contact us: only a short email sign up which does not take more than 30 seconds.

You may also like the tools
Cloud Storage Solutions

The technical core to synchronize your cloud storage solution with Odoo

245€ 220€
OneDrive / SharePoint Odoo Integration

The tool to automatically synchronize Odoo attachments with OneDrive files in both ways

394€ 354€
Google Drive Odoo Integration

The tool to automatically synchronize Odoo attachments with Google Drive files in both ways

394€ 354€
OwnCloud / NextCloud Odoo Integration

The tool to automatically synchronize Odoo attachments with OwnCloud / NextCloud files in both ways

394€ 354€
KnowSystem: Knowledge Base System

The tool to build deep and structured knowledge base for internal and external use. Knowledge System. KMS

Universal Appointments and Time Reservations

The tool for time-based service management from booking appointment to sale and reviews

398€ 358€
Password Manager

The tool to safely keep passwords for shared use

KPI Balanced Scorecard

The tool to set up KPI targets and control their fulfillment by periods

Odoo Documentation Builder

The tool to create website documentation based on your knowledge base