TIP: You can type at any time to perform a new search.
Google Calendar
google_calendar · odoo/odoo
Security findings
Migration considerations
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE calendar_user SET google_sync_enabled = TRUE WHERE is_primary = TRUE` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- odoo/odoo · module folder
- Module version
- 0.1.0
- Category
- Productivity
- Folder size
- 1.85 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-10-05 00:19:49
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Xavier-Do, Victor Feyens, Sébastien Theys, Tiffany Chang (tic), Arnaud Joset, Renaud Thiry, amdi-odoo, Dylan Kiss (dyki), Chong Wang (cwg), Noe Antoine, sesn-odoo, Gabriel (gdpf), Tanguy Quéguineur, thle-odoo, nikj-odoo, Michaël Mattiello, Krzysztof Magusiak (krma), sagu-odoo, Sylvio Poliart (sypol), mojem, Julien Launois (jula), Yagnik ✗ (yagp), alan-odoo, MostafaTwfiq, Julien Carion, ELCO, chpa-odoo, Frantisek Binovsky, Julien Piron, Jean Schoenlaub
Code Analysis
Views touched (7)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
calendar_calendar_view_form_inherit_google_calendar |
calendar.calendar.view.form.inherit.google.calendar | calendar.calendar | calendar | Inherits calendar.calendar_calendar_view_form |
calendar_calendar_view_list_inherit_google_calendar |
calendar.calendar.view.list.inherit.google.calendar | calendar.calendar | list | Inherits calendar.calendar_calendar_view_list |
calendar_user_view_form_inherit_google_calendar |
calendar.user.view.form.inherit.google.calendar | calendar.user | calendar | Inherits calendar.calendar_user_view_form |
google_calendar_reset_account_view_form |
google.calendar.account.reset.form | google.calendar.account.reset | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.google.calendar | res.config.settings | calendar | Inherits calendar.res_config_settings_view_form |
view_google_calendar_event |
google_calendar.event.calendar | calendar.event | calendar | Inherits calendar.view_calendar_event_calendar |
view_users_form |
res.users.form | res.users | form | Inherits calendar.res_users_view_form |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/google_calendar/sync_data |
GoogleCalendarController.google_calendar_sync_data |
user | jsonrpc | ALL | sudo |
Models touched (12)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (3)-
do_accept(self) -
do_decline(self) -
do_tentative(self)
New fields (3)
-
google_sync_enabledBooleanreadonly=Falserelated='calendar_user_id.google_sync_enabled' -
google_sync_tokenCharrelated='calendar_user_id.google_sync_token' -
is_import_pendingBooleanreadonly=True args: 'Needs Import'
-
create(self, vals_list)@api.model_create_multi -
get_google_path(self)Return the api path to the calendar in Google, or false if it should not be synchronized. -
unlink(self) -
write(self, vals)
New fields (3)
-
google_idCharcompute='_compute_google_id'readonly=Falsestore=True args: 'Google Calendar Event Id' -
guests_readonlyBooleandefault=False args: 'Guests Event Modification Permission' -
videocall_sourceSelectionondelete={'google_meet': 'set discuss'}selection_add=[('google_meet', 'Google Meet')]
-
action_mass_archive(self, recurrence_update_setting)Delete recurrence in Odoo if in 'all_events' or in 'future_events' edge case, triggering one mail. -
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (5)
-
access_roleSelectionondelete={'reader': 'cascade', 'freeBusyReader': 'cascade'}selection_add=[('reader', 'Reader'), ('freeBusyReader', 'Free Busy Reader')] -
google_sync_enabledBooleanstring='Google Sync' -
google_sync_tokenCharargs: 'Sync Token' -
is_filter_activeBooleancompute='_compute_filters'readonly=Falsestore=Truestring='Shown in Filters List' -
is_filter_checkedBooleancompute='_compute_filters'readonly=Falsestore=Truestring='Filter Enabled'
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (2)
-
delete_eventsBooleanhelp='This will affect events in calendars you own, and any other events you are organizing.'string='Delete synced events from Odoo' -
user_idMany2one → res.usersrequired=True args: 'res.users'
-
reset_account(self)
New fields (2)
-
activeBooleandefault=True -
last_google_calendar_sync_pathCharcopy=False
-
create(self, vals_list)@api.model_create_multi -
unlink(self)We can't delete a record that is also in Google Calendar. Otherwise, we would have no clue that the record must be deleted from Google Calendar at the next sync. -
write(self, vals)
New fields (2)
-
google_idCharcopy=Falseindex='btree_not_null' args: 'Google Calendar Id' -
need_syncBooleancopy=Falsedefault=True
No public methods.
New fields (4)
-
cal_client_idCharconfig_parameter='google_calendar_client_id' args: 'Client_id' -
cal_client_secretCharconfig_parameter='google_calendar_client_secret' args: 'Client_key' -
cal_google_disable_auto_videocall_linkBooleanconfig_parameter='google_calendar.disable_auto_videocall_link' args: 'Disable videocall generation' -
cal_sync_pausedBooleanconfig_parameter='google_calendar_sync_paused'help='Indicates if synchronization with Google Calendar is paused or not.' args: 'Google Synchronization Paused'
No public methods.
New fields (6)
-
google_account_emailChargroups='base.group_system'readonly=Falserelated='res_users_settings_id.google_account_email' -
google_calendar_rtokenChargroups='base.group_system'related='res_users_settings_id.google_calendar_rtoken' -
google_calendar_sync_tokenChargroups='base.group_system'related='res_users_settings_id.google_calendar_sync_token' -
google_calendar_tokenChargroups='base.group_system'related='res_users_settings_id.google_calendar_token' -
google_calendar_token_validityDatetimegroups='base.group_system'related='res_users_settings_id.google_calendar_token_validity' -
google_synchronization_stoppedBooleangroups='base.group_system'readonly=Falserelated='res_users_settings_id.google_synchronization_stopped'
-
check_calendar_credentials(self)@api.model -
check_synchronization_status(self) -
get_calendar_sync_email(self)@api.model -
is_google_calendar_synced(self)True if Google Calendar settings are filled (Client ID / Secret) and user calendar is synced meaning we can make API calls, false otherwise. -
pause_google_synchronization(self) -
restart_google_synchronization(self)@api.model -
stop_google_synchronization(self)@api.model -
unpause_google_synchronization(self)
New fields (6)
-
google_account_emailCharcopy=Falsegroups='base.group_system' args: 'Google Calendar Email' -
google_calendar_rtokenCharcopy=Falsegroups='base.group_system' args: 'Refresh Token' -
google_calendar_sync_tokenCharcopy=Falsegroups='base.group_system' args: 'Next Calendar Sync Token' -
google_calendar_tokenCharcopy=Falsegroups='base.group_system' args: 'User token' -
google_calendar_token_validityDatetimecopy=Falsegroups='base.group_system' args: 'Token Validity' -
google_synchronization_stoppedBooleancopy=Falsegroups='base.group_system' args: 'Google Synchronization stopped'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…