Odoo 19.0 Community · Persistent

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 nameLabelTypeDetails
accepted_countAccepted Countinteger
computed
access_tokenInvitation Tokenchar
activeActive

If the active field is set to false, it will allow you to hide the event alarm information without removing it.

boolean
activity_idsActivitiesone2many

inverse: calendar_event_id

alarm_idsReminders

Notifications sent to all attendees to remind of the meeting.

many2many
alldayAll Dayboolean
applicant_idApplicantmany2one

added by Recruitment (hr_recruitment)

attendee_idsParticipantone2many

inverse: event_id

attendees_countAttendees Countinteger
computed
awaiting_countAwaiting Countinteger
computed
bydayBy dayselection
computed

Values: 1 (First), 2 (Second), 3 (Third), 4 (Fourth), -1 (Last)

categ_idsTagsmany2many
countNumber of Repetitions

Repeat x times

integer
computed
current_attendeeCurrent Attendeemany2one
computed
current_statusAttending?selection

related: current_attendee.state

dayDate of monthinteger
computed
declined_countDeclined Countinteger
computed
descriptionDescription

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_descriptionDisplay Descriptionboolean
computed
display_timeEvent Timechar
computed
durationDurationfloat
computed, stored
effective_privacyEffective Privacy

Whether the event is private, considering the user privacy

selection
computed

Values: public (Public), private (Private), confidential (Only internal users)

end_typeRecurrence Terminationselection
computed

Values: count (Number of repetitions), end_date (End date), forever (Forever)

event_tzTimezoneselection
computed

Values computed at runtime

follow_recurrenceFollow Recurrenceboolean
friFriboolean
computed
google_idGoogle Calendar Event Idchar
computed, stored

added by Google Calendar (google_calendar)

guests_readonlyGuests Event Modification Permissionboolean

added by Google Calendar (google_calendar)

intervalRepeat On

Repeat every (Days/Week/Month/Year)

integer
computed
invalid_email_partner_idsInvalid Email Partnermany2many
computed
is_highlightedIs the Event Highlightedboolean
computed
is_organizer_aloneIs 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
locationLocationchar
microsoft_recurrence_master_idMicrosoft Recurrence Master Idchar

added by Outlook Calendar (microsoft_calendar)

monMonboolean
computed
month_byOptionselection
computed

Values: date (Date of month), day (Day of month)

nameMeeting Subjectchar
required
notesNoteshtml
opportunity_idOpportunitymany2one

added by CRM (crm)

partner_idScheduled bymany2one
read-only

related: user_id.partner_id

partner_idsAttendeesmany2many
privacyPrivacy

People to whom this event will be visible.

selection

Values: public (Public), private (Private), confidential (Only internal users)

recurrence_idRecurrence Rulemany2one
recurrence_updateRecurrence 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: self_only (This event), future_events (This and following events), all_events (All events)

recurrencyRecurrentboolean
res_idDocument IDmany2one_reference
res_modelDocument Model Namechar
read-only

related: res_model_id.model

res_model_idDocument Modelmany2one
res_model_nameRes Model Namechar

related: res_model_id.name

rruleRecurrent Rulechar
computed
rrule_typeRecurrence

Let the event automatically repeat at that interval

selection
computed

Values: daily (Days), weekly (Weeks), monthly (Months), yearly (Years)

rrule_type_uiRepeat

Let the event automatically repeat at that interval

selection
computed

Values: daily (Daily), weekly (Weekly), monthly (Monthly), yearly (Yearly), custom (Custom)

satSatboolean
computed
should_show_statusShould Show Statusboolean
computed
show_asShow 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: free (Available), busy (Busy)

startStart

Start date of an event, without time for full days events

datetime
required
start_dateStart Datedate
computed, stored
stopStop

Stop date of an event, without time for full days events

datetime
requiredcomputed, stored
stop_dateEnd Datedate
computed, stored
sunSunboolean
computed
tentative_countTentative Countinteger
computed
thuThuboolean
computed
tueTueboolean
computed
unavailable_partner_idsUnavailable Attendeesmany2many
computed
untilUntildate
computed
user_can_editUser Can Editboolean
computed
user_idOrganizermany2one
videocall_channel_idDiscuss Channelmany2one
videocall_locationMeeting URLchar
computed, stored
videocall_sourceVideocall Sourceselection
computed

Values: discuss (Discuss), custom (Custom)

wedWedboolean
computed
weekdayWeekdayselection
computed

Values: MON (Monday), TUE (Tuesday), WED (Wednesday), THU (Thursday), FRI (Friday), SAT (Saturday), SUN (Sunday)

has_messageHas Messageboolean
computed

inherited from mail.thread

message_attachment_countAttachment Countinteger
computed

inherited from mail.thread

message_follower_idsFollowersone2many

inverse: res_id

inherited from mail.thread

message_has_errorMessage Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_has_error_counterNumber of errors

Number of messages with delivery error

integer
computed

inherited from mail.thread

message_has_sms_errorSMS Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_idsMessagesone2many

inverse: res_id

inherited from mail.thread

message_is_followerIs Followerboolean
computed

inherited from mail.thread

message_needactionAction Needed

If checked, new messages require your attention.

boolean
computed

inherited from mail.thread

message_needaction_counterNumber of Actions

Number of messages requiring action

integer
computed

inherited from mail.thread

message_partner_idsFollowers (Partners)many2many
computed

inherited from mail.thread

microsoft_idOrganizer event Idchar

inherited from microsoft.calendar.sync

ms_universal_event_idUniversal event Idchar

inherited from microsoft.calendar.sync

need_syncNeed Syncboolean

inherited from google.calendar.sync

need_sync_mNeed Sync Mboolean

inherited from microsoft.calendar.sync

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

website_message_idsWebsite Messages

Website communication history

one2many

inverse: res_id

inherited from mail.thread

create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

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
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}'
Python (requests)
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.