calendar.event: fields, relations and API
The calendar.event model ("Calendar Event") is a persistent model declared by the Calendar module, then extended by 7 other modules. It exposes 95 fields, 72 of them declared directly on the model; 7 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.
Model identity
- Technical name
calendar.event- Label
- Calendar Event
- Type
- Persistent (models.Model)
- SQL table
calendar_event- Origin module
- Calendar (
calendar) - Extended by
- calendar_sms, crm, google_calendar, hr_calendar, hr_holidays, hr_recruitment, microsoft_calendar
- Default order (_order)
start desc- Inherits from (mixins)
- mail.threadgoogle.calendar.syncmicrosoft.calendar.sync
Model fields
72 own fields, 17 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
95 of 95 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| accepted_count | Accepted Count | integer | computed |
| access_token | Invitation Token | char | |
| active | Active If the active field is set to false, it will allow you to hide the event alarm information without removing it. | boolean | |
| activity_ids | Activities | one2many | inverse: |
| alarm_ids | Reminders Notifications sent to all attendees to remind of the meeting. | many2many | |
| allday | All Day | boolean | |
| applicant_id | Applicant | many2one | added by Recruitment ( |
| attendee_ids | Participant | one2many | inverse: |
| attendees_count | Attendees Count | integer | computed |
| awaiting_count | Awaiting Count | integer | computed |
| byday | By day | selection | computed Values: |
| categ_ids | Tags | many2many | |
| count | Number of Repetitions Repeat x times | integer | computed |
| current_attendee | Current Attendee | many2one | computed |
| current_status | Attending? | selection | related: |
| day | Date of month | integer | computed |
| declined_count | Declined Count | integer | computed |
| description | Description When synchronization with an external calendar is active, this description is synchronized with the one of the associated meeting in that external calendar. Any update will be propagated there and vice versa. | html | |
| display_description | Display Description | boolean | computed |
| display_time | Event Time | char | computed |
| duration | Duration | float | computed, stored |
| effective_privacy | Effective Privacy Whether the event is private, considering the user privacy | selection | computed Values: |
| end_type | Recurrence Termination | selection | computed Values: |
| event_tz | Timezone | selection | computed Values computed at runtime |
| follow_recurrence | Follow Recurrence | boolean | |
| fri | Fri | boolean | computed |
| google_id | Google Calendar Event Id | char | computed, stored added by Google Calendar ( |
| guests_readonly | Guests Event Modification Permission | boolean | added by Google Calendar ( |
| interval | Repeat On Repeat every (Days/Week/Month/Year) | integer | computed |
| invalid_email_partner_ids | Invalid Email Partner | many2many | computed |
| is_highlighted | Is the Event Highlighted | boolean | computed |
| is_organizer_alone | Is the Organizer Alone Check if the organizer is alone in the event, i.e. if the organizer is the only one that hasn't declined the event (only if the organizer is not the only attendee) | boolean | computed |
| location | Location | char | |
| microsoft_recurrence_master_id | Microsoft Recurrence Master Id | char | added by Outlook Calendar ( |
| mon | Mon | boolean | computed |
| month_by | Option | selection | computed Values: |
| name | Meeting Subject | char | required |
| notes | Notes | html | |
| opportunity_id | Opportunity | many2one→ crm.lead | added by CRM ( |
| partner_id | Scheduled by | many2one | read-only related: |
| partner_ids | Attendees | many2many | |
| privacy | Privacy People to whom this event will be visible. | selection | Values: |
| recurrence_id | Recurrence Rule | many2one | |
| recurrence_update | Recurrence Update Choose what to do with other events in the recurrence. Updating All Events is not allowed when dates or time is modified | selection | Values: |
| recurrency | Recurrent | boolean | |
| res_id | Document ID | many2one_reference | |
| res_model | Document Model Name | char | read-only related: |
| res_model_id | Document Model | many2one→ ir.model | |
| res_model_name | Res Model Name | char | related: |
| rrule | Recurrent Rule | char | computed |
| rrule_type | Recurrence Let the event automatically repeat at that interval | selection | computed Values: |
| rrule_type_ui | Repeat Let the event automatically repeat at that interval | selection | computed Values: |
| sat | Sat | boolean | computed |
| should_show_status | Should Show Status | boolean | computed |
| show_as | Show as If the time is shown as 'busy', this event will be visible to other people with either the full information or simply 'busy' written depending on its privacy. Use this option to let other people know that you are unavailable during that period of time. If the event is shown as 'free', other users know that you are available during that period of time. | selection | required Values: |
| start | Start Start date of an event, without time for full days events | datetime | required |
| start_date | Start Date | date | computed, stored |
| stop | Stop Stop date of an event, without time for full days events | datetime | requiredcomputed, stored |
| stop_date | End Date | date | computed, stored |
| sun | Sun | boolean | computed |
| tentative_count | Tentative Count | integer | computed |
| thu | Thu | boolean | computed |
| tue | Tue | boolean | computed |
| unavailable_partner_ids | Unavailable Attendees | many2many | computed |
| until | Until | date | computed |
| user_can_edit | User Can Edit | boolean | computed |
| user_id | Organizer | many2one | |
| videocall_channel_id | Discuss Channel | many2one | |
| videocall_location | Meeting URL | char | computed, stored |
| videocall_source | Videocall Source | selection | computed Values: |
| wed | Wed | boolean | computed |
| weekday | Weekday | selection | computed Values: |
| has_message | Has Message | boolean | computed inherited from mail.thread |
| message_attachment_count | Attachment Count | integer | computed inherited from mail.thread |
| message_follower_ids | Followers | one2many | inverse: inherited from mail.thread |
| message_has_error | Message Delivery error If checked, some messages have a delivery error. | boolean | computed inherited from mail.thread |
| message_has_error_counter | Number of errors Number of messages with delivery error | integer | computed inherited from mail.thread |
| message_has_sms_error | SMS Delivery error If checked, some messages have a delivery error. | boolean | computed inherited from mail.thread |
| message_ids | Messages | one2many | inverse: inherited from mail.thread |
| message_is_follower | Is Follower | boolean | computed inherited from mail.thread |
| message_needaction | Action Needed If checked, new messages require your attention. | boolean | computed inherited from mail.thread |
| message_needaction_counter | Number of Actions Number of messages requiring action | integer | computed inherited from mail.thread |
| message_partner_ids | Followers (Partners) | many2many | computed inherited from mail.thread |
| microsoft_id | Organizer event Id | char | inherited from microsoft.calendar.sync |
| ms_universal_event_id | Universal event Id | char | inherited from microsoft.calendar.sync |
| need_sync | Need Sync | boolean | inherited from google.calendar.sync |
| need_sync_m | Need Sync M | boolean | inherited from microsoft.calendar.sync |
| rating_ids | Ratings | one2many | inverse: inherited from mail.thread |
| website_message_ids | Website Messages Website communication history | one2many | inverse: inherited from mail.thread |
| create_date | Created on | datetime | read-onlyautomatic |
| create_uid | Created by | many2one | read-onlyautomatic |
| display_name | Display Name | char | read-onlycomputedautomatic |
| id | ID | integer | read-onlyautomatic |
| write_date | Last Updated on | datetime | read-onlyautomatic |
| write_uid | Last Updated by | many2one | read-onlyautomatic |
Relations
Models linked from this model
- calendar.alarm: alarm_ids
- calendar.attendee: attendee_ids, current_attendee
- calendar.event.type: categ_ids
- calendar.recurrence: recurrence_id
- crm.lead: opportunity_id
- discuss.channel: videocall_channel_id
- hr.applicant: applicant_id
- ir.model: res_model_id
- mail.activity: activity_ids
- res.partner: invalid_email_partner_ids, partner_id, partner_ids, unavailable_partner_ids
- res.users: user_id
Fields of other models pointing here
- calendar.attendee: event_id
- calendar.popover.delete.wizard: calendar_event_id
- calendar.recurrence: base_event_id
- hr.leave: meeting_id
- mail.activity: calendar_event_id
- mail.activity.mixin: activity_calendar_event_id
- res.partner: meeting_ids
Reading this model through the API
Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.
curl -X POST "https://your-instance.odoo.com/json/2/calendar.event/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","show_as","start","stop","applicant_id"],"limit":5}'import requests
BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}
res = requests.post(
f"{BASE_URL}/calendar.event/search_read",
headers=headers,
json={"domain": [], "fields": ["name","show_as","start","stop","applicant_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- External API access requires Odoo's Custom plan.
- XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
- The access rights and record rules of the key's user apply.
Cite this tool
Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.
<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/calendar-event">calendar.event (Odoo 19.0)</a>Sources
Data verified on September 23, 2026 · Odoo 19.0 Community
Have an Odoo project, or want to put your ERP to work with AI? Let's talk
Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.