calendar_week_days
The seven weekday toggles on a recurring event. The same widget the base framework provides, with a calendar template and a direct write on change.
August 27, 2026Updated August 31, 20263 min read
| Technical name | calendar_week_days |
|---|---|
| Views | form (view widget, <widget> element) |
| Module | calendar, the Calendar app |
| Used in core | The recurrence section of the calendar event form |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0 |
| No-code setup | No. It is set in view XML and depends on module-specific data |
| Alternatives | week_days, boolean_toggle, daterange |
What the recurring weekdays does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
the seven day fields | inherited field dependencies | One boolean field per weekday, requested by reusing the base widget's dependency list. |
the change handler | overridden method | Writes the inverted value of the toggled day straight to the record, keeping no local state. |
Each day is its own field. There is no combined value: toggling a day writes to that day's boolean field directly, which is why the widget requests all seven as dependencies.
Working examples
Thirteen lines, and what they reuse
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Byte-identical to Odoo 19 on the development branch. |
| Odoo 19.0 | Verified | Verified against the shipped source. |
| Odoo 18.0 | Verified | Same thirteen line implementation. |
| Odoo 17.0 | Verified | Same implementation with older component conventions. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. Present since Odoo 17. Odoo 16 handled recurrence weekdays without this widget, so an upgrade from it picks up the picker with the standard views and no data changes.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Toggling a day does nothing | The record is read-only, so the write is rejected. Check the form's edit conditions. |
| The toggles are all off on a recurring event | The recurrence is not weekly, so the day fields are unused. Expected. Switch the recurrence to weekly. |
| The layout differs from other Odoo forms | This widget uses a calendar-specific template. Use the base weekday widget for the framework layout. |
| A day field is missing | The model does not define all seven boolean fields. The widget expects the standard set; add the missing field. |
| Options are ignored | The widget declares none. Nothing to configure; the fields drive it. |
| The widget is missing | The Calendar module is not installed in that database. Install Calendar, or use the base weekday widget. |
Recurring weekdays vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
calendar_week_days | Choosing which weekdays a recurring calendar event falls on | The base weekday picker with a calendar template and a direct write on toggle |
week_days | The same seven toggles elsewhere | The framework's own template |
| boolean_toggle | A single yes or no | One field rather than seven grouped |
| daterange | A start and end date | A period rather than a repeating pattern |
Frequently asked questions
How are the weekdays stored?+
What does this add over the base widget?+
Does it keep local state?+
Does it have options?+
Which versions have it?+
Scheduling that holds up past the first exception
Recurrence, resource booking and calendar sync all look simple until a holiday or a reschedule lands. We implement Odoo Calendar and the scheduling around it, on versions 16 through 19.
Book a free consultation