Skip to main content
iVentureTeam

mail_activity_list_reschedule_dropdown

A compact dropdown on an activity row offering today, tomorrow and next week, with the server deciding what those actually mean.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
August 27, 2026Updated September 7, 20264 min read
Technical namemail_activity_list_reschedule_dropdown
Viewslist (view widget, <widget> element)
Modulemail, present in every Odoo database
Used in coreActivity lists in mail
VersionsOdoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0
No-code setupNo. It is set in view XML and depends on module-specific data
Alternativesmail_activity_mixin_list_reschedule_dropdown, remaining_days, list_activity

What the reschedule dropdown does

An activity that is overdue usually needs one of three answers: today, tomorrow, or next week. Opening the reschedule dialog to pick one of three dates is more ceremony than the decision deserves.

These two widgets are a small dropdown offering exactly those three, computed from the current date so the labels read as weekday names rather than as dates. Choosing one calls a server method that moves the activity.

After the call the whole list is reloaded, because rescheduling changes which records match the filter that produced it.

What this means for your team

Activity backlogs are the quiet failure mode of a CRM. They build up because rescheduling costs more effort than ignoring, and once a list is mostly overdue nobody reads it at all.

Three-click rescheduling directly attacks that. It is worth pairing with a rule about what a next week deferral means, because the widget makes deferring as easy as doing.

Supported options in Odoo 19

The widget takes the standard view widget props and declares no options. What it computes and what the registration sets are listed below. Read from the activity list reschedule source, Odoo 19.0.

OptionTypeWhat it does
the three labelscomputed at setupWeekday names for today, tomorrow and the start of next week, derived from the current date.
the action namesserver methodsEach option names a method rather than a date, so the server decides the target.
listViewWidthregistration hintKeeps the dropdown's column narrow in a list.(default: [50, 100])
the close handlerreload and notifyReloads the list root and notifies the model, because the row may no longer match the filter.

Dates are the server's decision. Each option names a method, so what tomorrow means with a weekend or a holiday in the way is decided in Python rather than in the browser.

Working examples

Placing it

<widget name="mail_activity_list_reschedule_dropdown"/>

Inside an activity list. No attributes.

What the labels show

Thu   # today
Fri   # tomorrow
Mon   # start of next week

Weekday names, recomputed at setup.

The business record variant

<widget name="mail_activity_mixin_list_reschedule_dropdown"/>

Same dropdown, different target.

Naming an intent instead of computing a date

The three labels are computed at setup from the current date: today's weekday name, tomorrow's, and the first day of next week. That means the dropdown reads as weekday names, which is easier to act on than a date.

Each entry carries the name of a server method rather than a date. That is the important design choice: the browser never computes a target date, it names an intent and lets the server decide what today, tomorrow and next week mean given working days and calendars.

The action is dispatched as an object button against the record, with a close handler that reloads the list root and notifies the model. Both are needed: the reload fetches the new state, and the notification makes the list redraw.

The two registrations share a listing width hint of fifty to one hundred, which is what stops the dropdown column from claiming space it does not need.

The mixin variant differs in one respect only. It overrides the three method names after calling the parent setup, pointing at the my next variants, because on a business record the target is the user's own next activity rather than the activity record itself.

Version compatibility

VersionStatusNotes
Odoo 20.0In developmentNot released. Converted to newer conventions on the development branch.
Odoo 19.0VerifiedVerified against the shipped source.
Odoo 18.0VerifiedSame three options and both registrations.
Odoo 17.0VerifiedSame approach with older component conventions.
Odoo 16.0Not availableWidget does not exist.

Upgrade note. Present since Odoo 17. Both variants have shipped together from the start, so an upgrade needs no attention here.

What is changing in Odoo 20

Odoo 20 is expected at Odoo Experience in Brussels, 24 to 26 September 2026. The development branch is unstable and this may still change; we re-verify this page after the release.

Converted to newer conventions. The development branch updates the component to the newer props and dropdown conventions. The three options, the named methods and the listing width hint are unchanged.

Common problems and fixes

SymptomCause and fix
The list does not refreshThe close handler reloads the root and notifies the model; one of those did not run. Reload the view manually and check for an error during the call.
The new date is not what I expectedThe server decides what today, tomorrow and next week mean. Check the working calendar; the browser only names the intent.
The rescheduled record disappearsIt no longer matches the filter that produced the list. Expected. Widen the filter to see it.
The column is too narrowThe registration hints a width between fifty and one hundred. Expected; the dropdown is meant to be compact.
The wrong activity movesThe two variants target different things. Use the activity variant on activity lists and the mixin variant on business records.
Nothing happens on selectionThe named method does not exist on that model. Check the model inherits the expected mixin.

Reschedule dropdown vs the alternatives

WidgetBest forKey difference
mail_activity_list_reschedule_dropdownRescheduling an activity record from an activity listThree named server methods rather than computed dates, with a full list reload after
mail_activity_mixin_list_reschedule_dropdownBusiness records with activitiesTargets the user's own next activity instead
remaining_daysShowing how overdue something isDisplays rather than changes a date
list_activityThe activity summary on a rowA summary rather than a reschedule control

The full activity dialog remains the right tool when the new date is not one of the three, or when a note needs to change with it. This dropdown exists for the common case where it is.

Frequently asked questions

Why do the options show weekday names?+
They are computed at setup from the current date, so today, tomorrow and next week read as the actual weekdays rather than as abstract labels.
Does the browser compute the new date?+
No. Each option names a server method, so what tomorrow means with a weekend or holiday in the way is decided in Python.
Why does the whole list reload?+
Because rescheduling can move the record out of the filter that produced the list. The close handler reloads the root and notifies the model so the list redraws.
What is the difference from the mixin variant?+
The mixin variant overrides the three method names to target the user's own next activity, which is what a business record needs.
Which versions have it?+
Odoo 17 onwards. The development branch converts it to newer conventions without changing behavior.

Activity lists your team keeps clean

Overdue activities pile up when rescheduling is harder than ignoring. We tune Odoo activities, reminders and follow-ups so the list stays actionable, on versions 16 through 19.

Book a free consultation

How this page was produced

The weekday labels computed from the current date, the named server methods rather than computed dates, the object button dispatch with its list reload and model notification, the listing width hint and the mixin variant's method name override were read from the activity list reschedule source on the Odoo 19.0 branch. Version coverage comes from comparing the file across the 17.0 and 18.0 branches and its absence on 16.0, plus a comparison against the public development branch. Spotted an error? Tell us and we will correct the page.