text_scheduled_date
New in Odoo 19, the text_scheduled_date widget renders the composer's Send Later button: a clock that opens a dialog with preset slots and a custom picker, then stores the choice in the wizard's scheduled_date field.
August 25, 2026Updated August 25, 20266 min read
| Technical name | text_scheduled_date |
|---|---|
| Field types | char, text |
| Views | form |
| Also registered as | datetime_scheduled_date, the same control for the datetime field on mail.scheduled.message |
| Module | mail, installed with Discuss and any messaging app |
| Used in core | 2 occurrences across 2 modules: the mail composer wizard and the hr_recruitment refuse wizard |
| Versions | Odoo 20.0, Odoo 19.0 |
| No-code setup | No. Composer plumbing with no Studio path. |
| Alternatives | datetime_scheduled_date, datetime, remaining_days |
What the Send Later button does
What this means for your team
Working examples
Preset math and the two-widget split
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Icon and internal typing changes visible on the development branch; see below. |
| Odoo 19.0 | Verified | Verified against the shipped source, presets and hardcoded field name included. |
| Odoo 18.0 | Not available | Widget does not exist; the composer's send-later flow was internal. |
| Odoo 17.0 | Not available | Widget does not exist. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. The widget file is new in 19.0. Odoo 18's composer had its own send-later flow wired inside the composer component, not as a reusable field widget, so nothing carries over and nothing needs migrating; views written for 19 keep working on the development branch.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Dialog saves but the field never changes | The widget writes to a literal scheduled_date key, and your field has a different name. Rename the wizard field to scheduled_date or extend the component to use props.name. |
| Send Later button missing from the composer | Core hides it in batch mode and outside comment composition. Compose from a single record's chatter; batch sends schedule through mailing tools instead. |
| Cannot pick a time in the past | The dialog passes minDate now to the picker on purpose. None needed; schedule forward or send immediately. |
| Preset radio not selected when reopening the dialog | The stored value no longer equals any preset, for example tomorrow 8:00 chosen yesterday. Expected: the dialog falls back to the custom option holding the stored moment. |
| Clear option missing on the Scheduled Message form | That form uses datetime_scheduled_date, which sets isRemovable false. Delete the scheduled message itself instead of clearing its date. |
Send Later button vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
text_scheduled_date | Send Later controls in message wizards | Preset slots plus picker, stored through a hardcoded scheduled_date key |
datetime_scheduled_date | The mail.scheduled.message form | Same dialog on a real datetime field, without the clear action |
| datetime | Ordinary datetime entry | Generic picker, no presets, writes to its own field |
| remaining_days | Displaying deadlines | Read-oriented relative display, not a scheduling control |
Frequently asked questions
What is the text_scheduled_date widget in Odoo?+
Why is it called text_scheduled_date when it handles dates?+
Can I use text_scheduled_date on my own wizard field?+
What are the preset options in the Send Later dialog?+
Why does the Send Later button not appear on mass mailings?+
Is text_scheduled_date available before Odoo 19?+
Does Odoo 20 change the widget?+
Want composer features in your own workflows?
Send Later, templates, and scheduled messages are all reusable pieces if you know their conventions, like this widget's hardcoded field name. We extend Odoo's mail stack with custom wizards and scheduling logic for teams on Odoo 16 through 19.
Book a free consultation