Notionでタスクを管理しているのに、Googleカレンダーへの予定登録をつい忘れてしまうことはありませんか。
チームで共有しているプロジェクトボードと自分のカレンダーがバラバラだと、期日を勘違いしたり、打ち合わせをダブルブッキングしてしまうこともあります。
この記事では、NotionのデータベースとGoogleカレンダーをMakeで連携し、入力の二度手間を減らしながら予定を自動反映させる手順を解説します。
・NotionデータベースとGoogleカレンダー連携の全体像
・Makeを使った連携シナリオ設計と具体手順
・つまずきやすいエラーと原因別の対処方法
・運用後にトラブルを防ぐためのチェックポイント
NotionデータベースをGoogleカレンダーとMakeで連携する基本理解
NotionのデータベースとGoogleカレンダーを連携すると、タスクや案件を登録するだけで自動的に予定がカレンダーに追加されます。
ただし、仕組みを理解せずに設定すると、予定が重複したり、思ったタイミングで同期されないといったトラブルも起きやすくなります。
まずは「何ができて、何に気を付けるべきか」という全体像から整理していきます。
連携の結論と最短ルート
結論からいうと、最短で安全に連携する方法は「Notion → Googleカレンダー」の片方向同期をMakeで組むことです。
まずは次のようなシンプルなシナリオを目標にします。
1.Notionのタスク用データベースに「日付(開始日時)」と「タイトル」を入力する
2.Makeで「新規または更新された行(アイテム)」を検知するシナリオを用意する
3.検知したらGoogleカレンダーに予定を1件作成する
この形であれば、構成もシンプルでループも起きにくく、トラブル時の原因切り分けもしやすくなります。
現場でも、まずはこの片方向連携から始めて、慣れてきたら必要に応じて更新や双方向同期を検討するケースが多いです。
たとえば、
「Notionの『案件管理』データベースに締切日を入れると、自動的に自分のGoogleカレンダーに“○○案件締切”が入る」
といった運用だけでも、「入れ忘れ」と「ダブル入力」をかなり減らせます。
NotionとGoogleカレンダー連携で実現できること
代表的に実現しやすいのは次のようなパターンです。
- NotionのタスクデータベースからGoogleカレンダーへ締切や作業ブロックを自動登録する
- Notionの「ミーティングメモ」データベースからGoogleカレンダーにミーティング予定を作成する
- Googleカレンダーの新規予定をトリガーにして、Notionに会議メモ用のページや案件レコードを自動生成する
NotionのAPIはページやデータベースにアクセスするためのREST APIを提供しており、外部サービスから項目の取得や作成ができます(出典:Notion公式サイト)(Notion Developers)。
MakeにはNotionやGoogleカレンダー用の公式アプリがあり、これらのAPIを使ってデータベース項目や予定を操作できます(出典:Make公式サイト)(apps.make.com)。
一方で、次のような点は注意が必要です。
- 完全なリアルタイムではなく、シナリオの実行間隔に応じた「ほぼリアルタイム」になる
- 双方向同期を組むと、設定を誤った場合に同じ予定が増殖したり、ループが発生しやすい
- Notion側のデータベース構造を頻繁に変えると、Make側のマッピングが壊れやすい
「どこまで自動化するか」を決めるときは、便利さだけでなく「壊れたときに自分で直せるかどうか」も基準にするのがおすすめです。
連携の前提条件と必要な準備
連携を始める前に、最低限次の準備を整えておきます。
- Notionのワークスペースと、連携したいデータベース(タスク、案件、ミーティングなど)があること
- Googleアカウントと、予定を登録したいGoogleカレンダーが決まっていること
- Makeのアカウント(無料プランから利用可能だが、実行回数やシナリオ数に上限があることが多い)
- Notionでインテグレーションを作成できる権限(ワークスペース管理者であるか、管理者に作成してもらう)
- セキュリティポリシー的に、外部サービスとの連携が許可されていること
加えて、次のような確認ポイントも押さえておくとスムーズです。
- 時刻の扱い方
- 終日予定にするのか、開始時刻と終了時刻を使うのか
- タイムゾーンを固定するのか、ユーザーごとに変えるのか
- カレンダーの分け方
- 個人カレンダーか、チーム共有カレンダーか
- プロジェクトごとにカレンダーを分けるのか
現場では、最初から本番のカレンダーを使うより、テスト用のカレンダーを1つ作って試してから切り替えるケースが多いです。
テストで問題がなければ、本番カレンダーに宛先だけ差し替えるイメージです。
同期したいNotionデータベースを選ぶ判断基準
Notionには多くのデータベースを作れますが、すべてをGoogleカレンダーと同期する必要はありません。
むしろ、「カレンダーに出したいものだけ」を絞った方が運用しやすくなります。
判断基準の例は次の通りです。
- 少なくとも「日付(もしくは日時)」が明確に決まるデータが入っているか
- 1レコード=1つの予定として扱えるか(細かすぎるToDoリストは向かないことが多い)
- チーム全員の予定なのか、特定の担当者だけの予定なのか
- 一日に大量に増えるデータベースではないか(大量に増えるとシナリオの実行回数を圧迫しやすい)
たとえば次のような選び方が現実的です。
- 「案件の締切」「公開日」「リリース日」など、重要な日付を持つデータベースをまず候補にする
- その中から「カレンダーに出ていると予定管理しやすくなるもの」だけを選ぶ
- 迷ったら、新しい「イベント用データベース」を別途作り、そこだけをカレンダーと連携する
会話例としては、次のような整理の仕方がよくあります。
「このタスクDBは細かすぎるから、締切が決まっている『案件DB』だけカレンダー連携しよう」
「公開日だけカレンダーに出したいので、『記事DB』の中からステータスが“公開予定”のものだけを対象にしよう」
Makeを使ったNotionデータベースとGoogleカレンダー連携の具体的な手順
ここからは、実際にMakeを使ってNotionデータベースとGoogleカレンダーを連携する手順を見ていきます。
大きく分けると「どんな同期にするか決める」「NotionとMakeをつなぐ」「GoogleカレンダーとMakeをつなぐ」「トリガーとマッピングを設定する」「テストする」という流れです。
一つひとつはそれほど難しくありませんが、順番を飛ばすとエラーの原因になりやすいので、落ち着いて進めていきます。
シナリオ設計と同期方向の決め方
最初に、どの方向に同期するかを決めておきます。
代表的なパターンは次の3つです。
1.Notion → Googleカレンダー
2.Googleカレンダー → Notion
3.Notion ↔ Googleカレンダー(双方向)
一般的には、初心者には「1.Notion → Googleカレンダー」から始めることが推奨される傾向があります。
理由はシンプルで、
- ループ(同じ予定がぐるぐる増殖する)が起きにくい
- 「どの情報が正なのか」を決めやすい
- 実装とデバッグが比較的簡単
だからです。
判断基準としては、次のように考えると整理しやすくなります。
- タスクや案件の「マスター」がNotion側にあるなら → Notionを起点にする
- 予定はGoogleカレンダーで決めることが多いなら → Googleカレンダーを起点にする
- 双方向同期は、「どちらを信じるか」「どのプロパティを同期するか」をはっきり決められる場合だけに絞る
実務では、まず1→慣れてきたら2→必要なら3、と段階的に広げるパターンが多いです。
ステップ1:NotionとMakeの接続設定
次に、NotionとMakeを接続します。
大まかな流れは次の通りです。
1.Notionでインテグレーションを作成する
2.対象データベースをそのインテグレーションと共有する
3.Make側でNotionモジュールの接続を作成する
Notion側の設定イメージは以下のようになります。
1.Notionの「設定」からインテグレーション管理画面を開き、新しいインテグレーションを作成する
2.必要な権限(ページ・データベースへの読み取り/書き込み)を付与する
3.発行されたトークンを控えておく
このインテグレーションを通じて、外部サービスからページやデータベースにアクセスできるようになります(出典:Notion公式サイト)(Notion Developers)。
次にMake側での接続です(出典:Make公式サイト)(apps.make.com)。
1.Makeで新しいシナリオを作成し、最初のモジュールとして「Notion」を追加する
2.「接続を作成」を選び、先ほど控えたトークンを入力する
3.接続テストが成功することを確認する
ここでつまずきやすいのは、Notionのデータベースをインテグレーションと共有し忘れているケースです。
シナリオ設定時に「データベースの一覧に出てこない」「権限エラーが出る」といった症状があれば、Notion側で対象データベースの「…」メニューからインテグレーションを追加できているかを確認します。
ステップ2:GoogleカレンダーとMakeの接続設定
続いて、GoogleカレンダーとMakeを接続します。
こちらは、Googleアカウントにログインして権限を許可するだけなので比較的シンプルです。
1.同じシナリオ内で、次のモジュールとして「Google Calendar」を追加する
2.「接続を作成」を選び、Googleアカウントでログインする
3.カレンダーへのアクセス権限を求められるので、内容を確認して許可する
4.どのカレンダーを使うか(メイン、サブ、共有カレンダーなど)を選択する
MakeのGoogleカレンダーアプリでは、イベントの作成や更新、削除など基本的な操作が行えます(出典:Make公式サイト)(apps.make.com)。
また、Google Calendar APIはREST形式で予定の作成・取得・更新などの機能を提供しており、多くの外部連携で利用されています(出典:Google公式サイト)(Google for Developers)。
企業アカウントを使っている場合は、組織の管理設定によって外部サービスからのアクセスが制限されていることもあります。
接続時にエラーが出るときは、Google Workspaceの管理者に「MakeからGoogleカレンダーAPIへのアクセスが許可されているか」を確認してもらうとよいです。
ステップ3:トリガーと項目マッピングの設定手順
接続ができたら、「いつ」「どのように」データを同期するかをMakeのシナリオで設定します。
ここが連携の肝になる部分です。
例として「NotionのタスクDB → Googleカレンダーに予定を作成」の片方向同期を考えます。
1.トリガーモジュールを設定する
- Notionのモジュールで「データベースアイテムの監視」などを選ぶ
- 対象のデータベースを選択し、「新規+更新」「新規のみ」などの検知条件を決める
2.フィルタ条件を設定する
- ステータスが「ToDo」または「In Progress」のものだけを対象にする
- 日付プロパティが空でないものだけを対象にする
3.Googleカレンダーモジュールで「イベントを作成」を選ぶ
4.NotionのプロパティとGoogleカレンダーの項目をマッピングする
- Notionの「タイトル」→ イベントの「タイトル」
- Notionの「開始日時」→ イベントの「開始日時」
- Notionの「終了日時」または「所要時間」→ イベントの「終了日時」
- Notionの「担当者」→ イベントの「ゲスト」や説明欄に記載
- Notionの「URL」→ イベントの「説明」に貼り付ける
判断基準として重要なのは、「Notion側のどのプロパティを『人間が読む情報』にして、どれを『自動処理が使う情報』にするかを分けることです。
たとえば「タイトル」は人が読んで意味がわかるように、「内部用ID」はカレンダーの説明欄にだけ入れておき、後からイベントとNotionレコードを突き合わせられるようにすると便利です。
会話例でいうと、次のように設計を整理するとスムーズです。
上司「カレンダーのタイトルは“締切”じゃなくて“○○案件締切”まで入れてほしい」
あなた「では、Notionのタイトルをそのままカレンダーのタイトルに使って、“締切”はステータスで管理するようにしましょう」
このように、「カレンダーで何を見たいか」から逆算して、どのプロパティをマッピングするか決めるのがポイントです。
テスト実行と運用開始後のチェックポイント
設定ができたら、いきなり本番運用にするのではなく、必ずテストを行います。
現場でも、テストを丁寧にやったかどうかが、後々のトラブルの多さに直結することが多いです。
最低限チェックしたいポイントは次の通りです。
- テスト用データベース・テスト用カレンダーを用意し、そこでシナリオを試す
- 1件だけNotionにテストタスクを作成し、期待通りにカレンダーに追加されるかを見る
- そのタスクを更新したとき、イベントも正しく更新されるかを確認する
- すでに存在する過去のタスクまで一気に同期されてしまわないか(トリガー条件や実行範囲を確認)
- タイムゾーンのずれがないか(1時間ずれて登録されることがないか)
特に、
- 「ステータスを変えたら、同じ予定が2件できてしまった」
- 「シナリオをオンにした瞬間、過去のタスクが大量にカレンダーに流れ込んだ」
といったトラブルは現場でもよく聞かれます。
失敗を防ぐためには、次のような再発防止策をあらかじめ組み込んでおくと安心です。
- シナリオ内で「すでにカレンダーIDが登録されているレコードはスキップする」ロジックを入れる
- Notionのスキーマ(プロパティ構成)を頻繁に変えないようチーム内でルール化する
- シナリオをオンにするタイミングで、対象期間や対象件数がどれくらいか事前に確認する
- エラーが出たときに気付けるよう、Make側の通知設定やログ確認のフローを決めておく
NotionデータベースとGoogleカレンダー連携を安定運用するためのポイント
一度連携が動き始めると、「しばらくは放置で動いてくれるだろう」と考えがちです。
しかし、運用しているとNotionのデータベース構造を変えたくなったり、カレンダーの運用ルールが変わったりと、少しずつ前提条件が変化していきます。
ここでは、つまずきやすいトラブルと、その対処・予防の考え方をまとめます。
つまずきやすいトラブルと対処法
よく起きるトラブルを「症状→原因→対処」の形で見ていきます。
【症状1:Notionを更新してもカレンダーに予定が出てこない】
- 想定される原因
- Notionのデータベースがインテグレーションと共有されていない
- トリガー条件のフィルタが厳しすぎて、レコードが対象外になっている
- Makeのシナリオ自体がオフになっている、またはエラーで停止している
- 対処
- Notion側で対象データベースの共有設定を確認し、インテグレーションにアクセス権があるかを見る
- Makeのトリガーモジュールとフィルタ条件を確認し、テスト用レコードが条件に合うかシミュレーションする
- Makeの実行履歴を確認し、エラーメッセージが出ていないかチェックする
【症状2:同じ予定がカレンダーに何度も作成されてしまう】
- 想定される原因
- 「新規作成」と「更新」を区別せず、更新のたびに新しいイベントを作る設定になっている
- 双方向同期を組んでいて、Notion更新→カレンダー更新→Notion更新…というループが発生している
- 対処
- Notionのレコードに「カレンダーイベントID」用のプロパティを追加し、既にIDが入っている場合は「更新」に切り替えるロジックを追加する
- 片方向同期から始め、双方向にしたい場合でも「どちらか一方だけがIDのマスターになる」ように設計する
【症状3:カレンダー上の時間が1時間ずれている】
- 想定される原因
- Notionの日時プロパティがタイムゾーン付き/なしで扱われている
- MakeやGoogleカレンダー側でタイムゾーン設定が日本時間以外になっている
- 対処
- Notionの日時プロパティ設定を確認し、「終日」なのか「時刻付き」なのかを整理する
- Makeのシナリオ設定とGoogleカレンダーのタイムゾーンが「Asia/Tokyo」になっているか確認する
トラブルが起きたときは、「最近Notion側でプロパティ名や型を変えていないか」「シナリオを誰かが編集していないか」から疑うと原因に辿り着きやすい傾向があります。
よくある質問
Q.双方向同期はできますか?
A.技術的には可能ですが、ループや競合を避けるための設計が必要です。
「どちらを正とするか」「どの項目だけを同期するか」を明確に決められる場合に限定した方が安全です。
Q.既にたくさんタスクが入っているデータベースを後から連携させる場合、過去分もすべてカレンダーに流れてしまいますか?
A.トリガー設定やフィルタ次第ですが、そのままだと過去分も同期対象になることがあります。
初回は「今日以降」「特定のステータスだけ」など、期間や条件を絞るのがおすすめです。
Q.Makeのどのプランを選べばよいか分かりません。
A.連携したいデータ量や実行頻度によって適切なプランは変わります。
まずは無料プランなど小さいプランで試し、実行回数の上限に近づいてきたら上位プランを検討する流れが一般的です。
Q.Notionカレンダー(ビュー)とGoogleカレンダーは直接つながりますか?
A.Notionのカレンダービュー自体とGoogleカレンダーが直接同期するわけではなく、データベースの中身をAPI経由で読み書きする形になります。
そのため、API経由で連携しやすいようにプロパティを設計しておくことが大切です。
Q.チームメンバーのカレンダーにも一緒に予定を入れられますか?
A.Googleカレンダーの共有設定と、ゲスト追加の設定次第で可能です。
ただし、全員の予定を自動で埋めてしまうと混乱を招きやすいため、「誰の予定を自動登録するか」はチーム内で合意を取っておくと安心です。
NotionデータベースをGoogleカレンダーとMakeで連携する方法のまとめ
・Notionを予定のマスターとしGoogleカレンダーへ片方向同期から始める
・まずはテスト用のNotionデータベースとGoogleカレンダーでシナリオを検証する
・カレンダーに表示したい情報だけを持つデータベースを連携対象として絞り込む
・日付とタイトルなど最低限必要なプロパティ構成を先に決めてから設計する
・Notionのインテグレーション作成とデータベース共有設定を確実に行う
・MakeでNotionモジュール接続を作り対象データベースを正しく選択する
・Googleカレンダー用モジュールを追加し使用するカレンダーを明確に指定する
・トリガー条件やフィルタを使い対象とするレコードの範囲を意図的に制限する
・Notionの各プロパティとカレンダーのタイトル日時説明欄などを丁寧にマッピングする
・初回は単一レコードでテストし期待どおりに予定が作成更新されるか確認する
・タイムゾーンや終日設定の違いによる一時間ずれを必ずチェックしておく
・既存レコードの大量同期を避けるため期間やステータスで対象を絞って開始する
・カレンダーイベントIDをNotionに保持し重複作成を防ぐロジックを組み込む
・Notion側のスキーマ変更やMakeシナリオ編集の影響を定期的に点検する
・トラブル発生時にログやエラーメッセージを確認する運用フローをチームで共有する
・Googleカレンダーの予定をSlackで自動リマインドする設定ガイド
・スプレッドシートの行追加でGASがメールを自動送信をする方法
・Gmailの添付ファイルをGoogleドライブに自動保存する設定ガイド
・スプレッドシートとGASでGoogleフォーム集計を自動化する
・GoogleフォームをSlack連携し即時通知するZapier設定
・ChatGPTにログインできないときの原因と対処完全ガイド
・WordPressで画像をアップロードできないときの原因と対処まとめ
・Canvaでダウンロードできない原因と今すぐできる対処法
・WindowsでZoomのマイクが認識されないときの対処法
・Google Meetで音声が聞こえないときの設定見直しガイド
・Googleドライブにアップロードできない原因と対処法まとめ
・Slackでメンション通知がこないときの原因と今すぐできる対処法
