many2manyattendee
Attendee avatars with a tick, a cross or a question mark on each, plus flags for missing emails and people who are already busy. All of it from one server call the widget makes itself.
| Technical name | many2manyattendee |
|---|---|
| Field types | many2many |
| Views | form, calendar side panel |
| Module | calendar, the Meetings app |
| Used in core | 1 occurrence, the attendees field on the meeting form in calendar |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0, Odoo 16.0 |
| No-code setup | No. It depends on calendar-specific server methods and companion fields |
| Alternatives | many2many_tags_avatar, many2many_avatar_user, many2manyattendeeexpandable, many2many_tags |
What the attendee tags field does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
no_create | boolean | Inherited from the tags widget. Removes creation from the attendee input entirely.(default: false) |
no_quick_create | boolean | Inherited. Removes creation from the typed text while keeping the popup form path.(default: false) |
create_name_field | field | Inherited. Field the typed text is written into when quick-creating a contact. |
invalid_email_partner_ids | companion field | Read by literal name, not declared. Attendees appearing in it are flagged as having no valid email address. |
unavailable_partner_ids | companion field | Read by literal name, not declared. Attendees appearing in it are flagged as already busy. New in Odoo 19.(since Odoo 19.0) |
Three data sources, none of them options. The status icons come from a server call the widget issues for the current attendee ids. The missing email flag and the unavailable flag are read from two fields on the meeting record, by literal name and with no declared dependency, so the view has to load them. When those fields are absent, the flags simply never appear.
Working examples
Where the status icons actually come from
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | Partial / changed | Not released. Rebased onto the user avatar tags widget with a dedicated tag component and the new icon set. |
| Odoo 19.0 | Verified | Verified against the shipped source. Adds the unavailable-attendee flag. |
| Odoo 18.0 | Verified | Status icons and the missing email flag, without the unavailable flag. |
| Odoo 17.0 | Verified | Same core behavior with the older component conventions. |
| Odoo 16.0 | Verified | Same core behavior with the older component conventions. |
Upgrade note. No view change is needed between Odoo 16 and Odoo 19. Odoo 19 added the unavailable-attendee flag, which requires the second companion field on the meeting; the core meeting form provides it, so an upgraded database gains the flag with the standard views. Custom meeting forms that list attendees should add that field to pick the flag up.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| No status icons on the avatars | The attendees have not responded yet, or the server call returned nothing. Expected before anyone replies. Check the browser network tab if you believe responses exist. |
| No missing email flag | The meeting form does not load the companion field the widget reads by literal name. Add that field to the form, invisible is enough. |
| No unavailable flag | Either the database is on Odoo 18 or earlier, or the second companion field is not in the view. Upgrade, or add the field to the meeting form. |
| The organizer is not first | The server call did not mark anyone as organizer for that meeting. Check the meeting has a valid organizer; the sort only runs when one is returned. |
| Avatars render but nothing else | The widget fell back to plain avatar tag behavior because its data call failed. Check the browser console; the status call is separate from the record load. |
| Missing widget error | The calendar module is not installed in that database. Install Calendar, or use the avatar tags widget instead. |
Attendee tags field vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
many2manyattendee | Meeting attendee lists where acceptance status matters at a glance | Avatar tags decorated with response icons from a dedicated server call, plus email and availability flags |
| many2many_tags_avatar | Any list of people shown as avatars | No status icons, no server call and no calendar-specific flags |
| many2many_avatar_user | Lists of internal users | User-aware, with chat from the avatar, but no attendee status |
| many2manyattendeeexpandable | The same list in a constrained space | Adds a collapsed summary with accepted and declined counts |
| many2many_tags | Plain tags with no pictures | Text only, and no per-tag state |
Frequently asked questions
Where do the attendee status icons come from?+
Why is one attendee flagged as having no email?+
What does the unavailable flag mean?+
Why is the organizer always first?+
What changes in Odoo 20?+
Scheduling that respects everyone's calendar
Meeting availability, resource booking and the integrations that keep external calendars in step are where scheduling projects succeed or quietly fail. We implement Odoo Calendar and its integrations on versions 16 through 19.
Book a free consultation