OdooWiki OCA HUB

Base Recurrence

base_recurrence folder_open OCA/server-ux open_in_new
Uncategorised License: AGPL-3

This is a technical module that helps managing recurrence on Odoo models.

It allows to define a recurring rule on a record and two helper methods:

  • One to get the recurring next date
  • One to set the recurring next date on the record

auto_awesome What this module does

AI-generated from the code · Odoo 15.0

Provides a shared technical foundation so other Odoo modules can define recurring rules (daily, weekly, monthly, etc.) on any record and automatically compute the next occurrence date.

This is a technical module: it does not add menus, screens or buttons by itself. It adds a reusable building block (an abstract model called recurrence.mixin) that other modules can attach to their own records.

What it provides: - A recurrence type field (recurrence_type) with the choices Daily, Weekly, Monthly, Monthly Last Day, Quarterly, Semesterly and Yearly. - Helper methods that calculate the next occurrence date based on the last occurrence date and the chosen recurrence type. - A method to set the next occurrence date, optionally starting from the current date and time. - A method to move the schedule forward: the next date becomes the last date, and a new next date is computed.

Business rules and automatic behaviour: - The interval between occurrences follows the selected type: one day, one week, one month, three months, six months or one year. - For Monthly Last Day, the calculation targets the last day of the month; for Quarterly and Semesterly, it targets the first day of the period.

Which areas it touches: - Only the recurrence.mixin abstract model. Any module that inherits it decides which fields hold the last and next occurrence dates. No user-visible feature is added on its own.

Depends on

base
Models and fields (1)
  • recurrence.mixin · new modelrecurrence_type

Text generated by AI (DeepSeek) from reading the Odoo 15.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 3 confirmed, 6 with no information of 9 versions.

Sources · Odoo 13.0

Confirmed on 2026-11-03 in branch 13.0 of OCA/server-ux.

terminal Installation and usage

OCA documentation · Odoo 15.0

Supported intervals

* Day
* Month
* End of Next Month
* Quarter
* Semester
* Year



Example
from odoo import fields, models


class RecurrenceModel(models.Model):

    _name = "recurrence.model"
    _inherit = ["recurrence.mixin"]
    _description = "A model that implements recurrence"

    _field_last_recurrency_date = "last_recurrency_date"
    _field_next_recurrency_date = "next_recurrency_date"

    last_recurrency_date = fields.Datetime()
    next_recurrency_date = fields.Datetime()

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.