Skip to main content

Provides a field and widget for RRules according to RFC 2445

Project description

License: AGPL-3

Repetition rules

This module was written to offer a field type that holds rrules according to RFC 2445.


To use this module, you need to:

  • depend on it

  • say from openerp.addons.field_rrule import FieldRRule

  • use FieldRRule like any other field

  • on forms, use widget="rrule"

  • have a look at demo/res_partner.*

Technically, this is a wrapper around serialized fields. The value always will be a subclass of dateutil’s rruleset. For technical reasons, this class overrides __iter__, so if you need a proper rruleset, call the value: my_browse_record.my_field_of_type_rrule() - this gives you a vanilla rruleset.

If you want to pass a default, use the internal representation you’ll find in the database - a list of dictionaries with the keyword arguments to be passed to rrule’s constructor and a type field that for now can only be rrule: A context of {"default_rrule": [{"count": 1, "freq": 1, "type": "rrule", "interval": 1, "bymonthday": [1]}]} would give you a default for the field rrule which occurs one time at the first of the month.

In case you work with defaults and want to dumb down the UI a bit, use {'no_add_rule': true}.

Further, as this is a serialized field, a value of not set will be represented in the database as 'null' if the value was set and unset afterwards, or a database null if the value was never set - this is then also what you have to search for when you need records with your field unset.

Daylight saving time

By default, this field keep intervals stable, as Odoo handles UTC times internally. If you need stable times (think of some repetition of an appointment) in time zones with daylight saving, you need to set stable_times=True in the field’s constructor.

Known issues / Roadmap

  • support the unimplemented features of rrules

  • support rdates, exdates, exrules

  • consider multiple widgets with different feature sets

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.



  • Odoo Community Association: Icon.


Do not contact contributors directly about help with questions or problems concerning this addon, but use the community mailing list or the appropriate specialized mailinglist for help, and the bug tracker linked in Bug Tracker above for technical issues.


Odoo Community Association

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

To contribute to this module, please visit

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release. See tutorial on generating distribution archives.

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page