MENU
App

GoogleカレンダーとOdooのカレンダーを同期してみた — 標準モジュールの全手順と、Google Cloud側の3つの落とし穴

GoogleカレンダーとOdooのカレンダーを双方向同期する構成図

Odooにはカレンダー機能があり、予定を連絡先・見積・CRMの案件に紐づけて管理できます。「この打ち合わせはどの案件のものか」「相手先は誰か」が予定から辿れるのは、Googleカレンダー単体にはない便利さです。

一方で、日々の予定はGoogleカレンダーで管理している会社が多いと思います。当社もそうでした。Googleカレンダーを見ながらOdooに予定を入れ直すのは二度手間で、結局Odooのカレンダーは使われなくなります。そこで「Googleカレンダーの予定をそのままOdooに入れ、Odoo側で案件や連絡先に紐づけられる状態」を目指しました。

本記事は「Odoo 19 の標準機能だけで、GoogleカレンダーとOdooのカレンダーを双方向同期できるか」を実際にやってみた記録です。結論から言うと、Odoo側の設定は10分で終わります。時間がかかるのはGoogle Cloud側で、しかも会社のメールがGoogleアカウントかどうかで手順が変わります。そこを中心に書きます。

Odooの環境と、やりたかったこと

項目 内容
Odoo 19.0 Enterprise(Odoo.sh)
Google側 各自のGoogleカレンダー
使った機能 Odoo標準の Google Calendar モジュール(google_calendar

自作の同期スクリプトは作っていません。Odooには最初からGoogleカレンダー連携モジュールが入っていて、作成・変更・削除・参加者を双方向に反映してくれます。作り込むより、標準に乗るほうが保守の面で圧倒的に楽です。

全体の流れ

  1. OdooにGoogle Calendarモジュールをインストールする
  2. Google Cloudで Calendar API を有効化し、OAuthクライアントを作る
  3. OdooにクライアントIDとシークレットを登録する
  4. 各ユーザーがOdooのカレンダーで「Googleと同期」を押して認可する

Odoo側は 1 と 3 だけです。2 がGoogle Cloudの作業で、4 は各ユーザーが1回だけ行います。

Step 1: Odooにモジュールをインストール

Odooの「アプリ」で検索の「アプリ」フィルタを外し、「Google」で検索すると Googleカレンダ というモジュールが出てきます。「有効化」を押すだけです。アプリではなくモジュール扱いなので、フィルタを外さないと出てこない点だけ注意してください。

Odooのアプリ画面。Googleカレンダモジュールを赤枠で表示

Odooのアプリ画面で「Google」を検索したところ。「Googleカレンダ」の有効化ボタンが消えていればインストール済み

Step 2: Google Cloudで Calendar API と OAuthクライアントを用意する

ここが本記事の本題です。Google Cloud Console(https://console.cloud.google.com/)で次の3つを行います。

2-1. Google Calendar API を有効化

「APIとサービス > ライブラリ」で Google Calendar API を検索し、「有効にする」を押します。

Google Calendar API が有効になった状態

Google Calendar API の詳細画面。ステータスが「有効」になっていれば完了

2-2. OAuth同意画面(Google Auth Platform)を設定

「Google Auth Platform > ブランディング」でアプリ名とサポートメールを入れ、「対象」でユーザーの種類を決めます。ここが最初の落とし穴です(後述)。

OAuth同意画面の「対象」設定。外部・テスト中

「対象」画面。当社の場合はユーザーの種類が「外部」、公開ステータスが「テスト中」になった

2-3. OAuthクライアントIDを作成

「Google Auth Platform > クライアント > クライアントを作成」で、アプリケーションの種類を ウェブ アプリケーション にし、承認済みのリダイレクトURIに次を登録します。

https://<OdooのURL>/google_account/authentication

Odoo.shなら https://xxxx.odoo.com/google_account/authentication です。末尾のパスは固定で、Odooのマニュアルにも書かれています。作成すると クライアントIDクライアント シークレット が表示されるので控えます。シークレットはこの画面を閉じると二度と表示されません。

作成したOAuthクライアントの詳細。IDとURIはぼかしている

作成したOAuthクライアントの詳細。リダイレクトURIにOdooの /google_account/authentication を登録している。シークレットは作成時にしか表示されない

Step 3: OdooにクライアントIDとシークレットを登録

Odooの「設定 > 一般設定」で上部の検索に「Google」と入れると、「カレンダー」セクションに Googleカレンダ のチェックボックスが出ます。チェックを入れ、2-3で控えたクライアントIDとシークレットを入れて保存します。

Odooの一般設定。Googleカレンダの項目にクライアントIDとシークレットを入力(IDはぼかしている)

Odooの一般設定を「Google」で検索したところ。カレンダー > Googleカレンダ にクライアントIDとシークレットを入れる

当社は設定投入をClaude Codeに任せていたので、この部分は画面ではなくXML-RPCで ir.config_parametergoogle_calendar_client_id / google_calendar_client_secret に書き込みました。どちらでも結果は同じです。

Step 4: 各ユーザーが「Googleと同期」を押す

Odooの「カレンダー」アプリを開くと、表示切替の右側に「Google」ボタンがあります。押すとGoogleのアカウント選択画面に飛ぶので、普段カレンダーに使っているGoogleアカウントを選んで許可します。認可が済むとボタンにチェックが付き、「連携済み」の印になります。

Odooカレンダー画面の「Google」ボタン

Odooのカレンダー画面(週表示)。右上の「✓ Google」が連携済みの印。予定の内容はぼかしている

許可が終わるとOdooに戻り、その場で初回同期が走ります。当社の場合、Odooの予定は一気に数千件になりました。過去十数年分と、繰り返し予定の未来分がすべて入ったためです。

同期後のOdooカレンダー。Googleの予定が入っている

同期後のOdooカレンダー(月表示)。Googleカレンダーの予定がそのまま入っている。内容はぼかしている

ここまでが手順です。以下は、実際にやって引っかかった点です。

注意1:会社のメールがGoogleアカウントではない場合

Google Cloudの同意画面で「ユーザーの種類」を 内部 にできるのは、そのプロジェクトがGoogle Workspaceの組織に属している場合だけです。当社のドメインはGoogle Workspaceではないので「内部に公開」ボタンが押せず、外部 になりました。

外部の場合、公開ステータスが「テスト中」の間は、テストユーザーに登録したGoogleアカウントしか認可できません。そこでOdooユーザーの会社メールを登録しようとしたところ、こう返されました。

不適格なアカウントは追加されません
The following email addresses are either not associated with a Google Account or the account is not eligible for designation as a test user

つまり、会社のメールアドレスはGoogleアカウントではない、ということです。考えてみれば当然で、Odooのログインメールと、Googleカレンダーを使っているアカウントは別物です。各ユーザーに「カレンダーに使っているGoogleアカウント」を聞き、そのGmailをテストユーザーに登録し直しました。

テストユーザーの登録画面

「対象」画面のテストユーザー。ここに登録したGoogleアカウントだけが認可できる(アドレスはぼかしている)

OdooのユーザーのメールとGoogleアカウントは一致していなくても同期できます。認可時に選んだGoogleアカウントのカレンダーが、そのOdooユーザーに紐づきます。

注意2:「テスト中」のままだと7日で認可が切れる

Googleの仕様で、公開ステータスが「テスト中」のアプリが発行したリフレッシュトークンは 7日で失効します。つまり週に1回、各ユーザーがOdooで「Googleと同期」を押し直す必要があります。

回避するには「対象」画面の「アプリを公開」で本番公開にします。カレンダーのスコープは「機密」扱いなので、公開しても Google の審査を通さない限り認可画面に「このアプリはGoogleで確認されていません」と警告が出ますが、「詳細 > (アプリ名)に移動」で進めば認可でき、トークンも失効しなくなります。社内利用ならこれで十分です。

Google Workspaceを使っている会社なら、最初から「内部」にすればこの問題はありません。警告も出ません。Google Workspace かどうかで、Google Cloud側の手間がまったく違います。

注意3:同期は「双方向」で、消すと両方消える

同期は次のタイミングで動きます。

  • Odooのカレンダー画面を開いたとき(その場で同期)
  • Odooの定期処理「Googleカレンダー:同期」(初期値12時間ごと)

Google側からOdooへの即時通知はありません。Googleで変えた予定がOdooに出るのも、上のどちらかの時点です。間隔は「設定 > 技術設定 > スケジュールされたアクション」で変えられます。

Odooの定期処理「Googleカレンダー:同期」

Odooのスケジュールされたアクション「Googleカレンダー:同期」。実行周期がここで変えられる(初期値は12時間)

そして同期は双方向なので、片方で消した予定はもう片方でも消えます。「Odooのテスト予定を消しただけ」のつもりがGoogleカレンダーから消える、が起きます。同期対象がGoogleの「メイン」カレンダーだけである点も含め、使い始める前に全員に伝えておくべき仕様です。

もう一つ。同期前にOdoo側で作ってあった予定は、Googleに新しい予定として送られます。Google側にすでに同じ打ち合わせの招待があると、同じ時間に予定が重複して並びます。当社も「Zoom: ○○様引き継ぎ」(Google由来)と「○○様引き継ぎ」(Odoo由来)が並びました。どちらかを消せば両方から消えるので、消す方を決めてから消します。

完成した構成

Googleカレンダー(各ユーザーのメインカレンダー)
        ↕ OAuth 2.0(Google Cloud のウェブ用クライアント)
Odoo 19 google_calendar モジュール
        ├ カレンダー画面を開いたとき: 同期
        └ 定期処理「Googleカレンダー:同期」(初期値12時間ごと → 必要なら短縮)

Google Cloud側の設定は1プロジェクトで全ユーザー共通、認可は各ユーザーが1回です。

得られた原則

  • Odoo側は標準機能で十分。作り込まない。双方向同期、繰り返し予定、参加者、削除まで標準が面倒を見ます。
  • 先に「会社のメールはGoogleアカウントか」を確認する。Google Workspaceなら内部公開で終わり。そうでなければテストユーザー登録か本番公開が必要で、各ユーザーのGmailを聞いて回ることになります。
  • 「テスト中」で放置しない。7日ごとの再認可は、忘れた頃に「同期されていない」問い合わせになります。
  • 削除が双方向であることを全員に伝えてから使い始める。
  • 同期前にOdooにある予定は、Google側と二重になる前提で整理する。

よくある質問

Google Workspaceではなく個人のGmailでも同期できますか

できます。当社がまさにそうです。ただしGoogle Cloudの同意画面が「外部」になるため、テストユーザー登録か本番公開が必要です。

OdooのログインメールとGoogleアカウントが違っても大丈夫ですか

大丈夫です。「Googleと同期」を押したときに選んだGoogleアカウントのカレンダーが、そのOdooユーザーに紐づきます。

共有カレンダーや複数のカレンダーは同期できますか

標準モジュールが同期するのは、Googleの「メイン」カレンダー1つだけです。複数カレンダーを扱うには追加開発が必要です。

同期を止めたいときは

Odooのカレンダー画面の同期ボタンのメニューから「Googleとの同期を停止」できます。Google側のアカウント設定からアプリのアクセスを取り消しても止まります。

「このアプリはGoogleで確認されていません」と出ました

Google Cloudのアプリが審査を通っていない場合に出る警告で、社内利用では正常です。「詳細」→「(アプリ名)に移動」で進めば認可できます。

当社はOdooの公式パートナーとして、Odooの導入・カスタマイズ・外部システム連携を支援しています。「うちのGoogleカレンダーでもできるか」「Microsoft 365(Outlook)のカレンダーではどうか」といったご相談は、お問い合わせフォームからお気軽にどうぞ。

※本記事の内容は2026年9月時点のOdoo 19 EnterpriseおよびGoogle Cloud Consoleの画面に基づきます。画面や仕様は変わる可能性があります。

弊社ではOdoo(オドゥ)を利用した業務システムの一元管理・オールインワンな仕組みの構築・開発をして企業様をサポートしています。
ご興味ある方は是非お問い合わせください。

※注意

本ブログの投稿内容に関するお問い合わせをして頂いてもご返信できませんので、何卒ご了承ください。