【導入マニュアル】Googleカレンダー ➔ Notion連携
Get Notion free
Page icon

【導入マニュアル】Googleカレンダー ➔ Notion連携

このマニュアルでは、GoogleカレンダーとNotionデータベースを同期するスクリプトの設定方法を説明します。
👀 Callout icon
まずはじめに下記の動画をご覧ください!全体像の説明、重要な点をざっくりお伝えしています!
💡 Callout icon
準備するもの
Googleアカウント
Notionアカウント
✅ Callout icon
実装機能
基本は、Googleカレンダー → Notionの連携です。 ※Notion → Googleカレンダーには対応しておりません。
初期同期:連携前に登録済みの〇〇日後までのイベント(予定)をNotionデータベースに反映
新規追加:連携後に追加されたイベント(予定)は、定期的にNotionデータベースに追加
更新:イベント(予定)のタイトルや時間が更新されたら、Notionデータベースにも反映
削除:イベント(予定)が削除されたら、Notionデータベースの該当ページも削除

概略

本ツールを使用することで、Googleカレンダーの予定(イベント)を、Notionのデータベースに同期することができます。
GoogleカレンダーとNotionのデータベース、それぞれでスケジュールやタスクを管理している方にとっては非常に有用なツールになるはずです。
今までノーコードツール(iPaaS)等で同期連携していた方も、本ツールを使えば無料で実装することが可能になりますので、是非順を追って試してみてください!
下記、Googleカレンダー(左)の予定がNotionのデータベース(右)に反映されている状態です。対応する予定に色付けしています。イメージとして共有しておきます。
それでは設定に入っていきましょう!!🔥

ステップ1: スプレッドシートのコピー

📝 Callout icon
本ステップのゴール ツールの大元となるスプレッドシートをコピーし、ご自身のGoogle Drive内にスプレッドシートを作成すること。
スプレッドシートの取得
以下のリンクからスプレッドシート(【コピペ用】Googleカレンダー ➔ Notion連携)を開いてください。
スプレッドシートをコピー
スプレッドシートを開いたら、メニューの「ファイル」から「コピーを作成」をクリックしてください。
任意の名前を付けて、自分のGoogleドライブに保存します。
ファイルがコピーされたら準備完了です!

ステップ2: Notion APIトークンの取得

📝 Callout icon
本ステップのゴール Notionデータベースを外部から操作するために必要なインテグレーションの作成、それに付随するAPIトークンの取得。
別のブラウザタブで Notion Developers ページを開きます。
「新しいインテグレーション」をクリックします。
インテグレーション名を入力します(例:「CalendarSync」)。
関連するワークスペースを選択します。
「種類」で「内部(Internal)」を選択します。
「保存」ボタンをクリックします。
表示された「Internal Integration Token」をコピーします。
このトークンは後で使用するので、安全な場所(メモ帳など)に一時的に保管してください。
重要: このトークンは秘密情報です。他人と共有しないでください。

ステップ3: Notionデータベースの作成と連携

📝 Callout icon
本ステップのゴール 下記3つの作業を実行。 1. 同期するNotionデータベースの作成 2. ステップ2で作成したインテグレーションとの連携 3. NotionデータベースIDの取得
新規でデータベースを作成する場合と、既存のデータベースを使用する場合で分けて説明します。設定したGoogleカレンダーの予定が全て同期されるため、予期せぬデータが入らぬよう、試しに「新規でデータベースを作成する」ことをおすすめします。

新規でデータベースを作成する場合(推奨

Notionの任意のページ内にデータベースを作成してください。(テーブルビューがおすすめです)。
データベースのプロパティは「名前」(タイトル)だけで問題ありません。必ずタイトルプロパティのプロパティ名を「名前」に設定してください。その他の必要なプロパティはスクリプトが自動で作成します。
データベースのイメージ
No results
作成したデータベースに、先ほど作成したインテグレーションを追加します。
まず、データベースをフルページで開きます。
下記のようなポップアップが出てくるので、「はい」を選択。
追加されていることが確認できたら連携完了です。
次に、データベースIDを取得します。
データベースをフルページで開いた状態で、「共有」>「リンクをコピー」をクリックしてください。
下記のようなURLがコピーされていることを確認してください。
https://www.notion.so/8fccbd7a333646f2a1757d1d2c2263ee?v=01bf1b56e3b7420da482c20d046aa2ba&pvs=4
www.notion.so/
?
の間にある32文字の英数字がデータベースIDになります。 下記の緑下線部分。
https://www.notion.so/8fccbd7a333646f2a1757d1d2c2263ee?v=01bf1b56e3b7420da482c20d046aa2ba&pvs=4
このデータベースIDは後ほど使用するのでどこかにメモしておいてください。 このデータベースIDは、スクリプトがNotionデータベースにアクセスするために使用されます。

既存のデータベースを使用する場合

基本的に、新規でデータベースを作成する場合と流れは同じなので、留意すべき点を記載します。
必ずタイトルプロパティのプロパティ名を「名前」に設定してください。その他の必要なプロパティはスクリプトが自動で作成します。
データベースのイメージ
No results
下記プロパティ名は自動で作成され、ツール実装に必要です。もしすでに既存のプロパティ名に下記を使用している場合、既存プロパティ名を変更しておいてください。
ツールで使用するプロパティ
プロパティ名
タイプ
Google Calendar ID
テキスト
カレンダーID
テキスト
日時
日付
最終更新日時
日付
※「日時」プロパティに関しては、Googleカレンダーの予定の日時が入ります。すでに同様の意味を持ったプロパティが既存データベースにある場合、既存プロパティ名を「日時」に変更すればOKです。
上記留意点を踏まえたうえで、こちらの3から同様の設定を行ってください。

ステップ4: GoogleカレンダーIDの取得

📝 Callout icon
本ステップのゴール 同期するGoogleカレンダーを識別する、GoogleカレンダーIDを取得。 ※本ツールは、複数のGoogleカレンダーから予定を同期できる仕様になっています。
Googleカレンダーを開き、同期したいカレンダーの︙をクリックしてください。
設定と共有」をクリック
下の方にスクロールすると「カレンダーID」が見つかるので、そちらをメモしておいてください。複数のカレンダーを連携したい場合は、それぞれのカレンダーIDをメモしてください。

ステップ5: 設定項目の入力

📝 Callout icon
本ステップのゴール ツールを実行するために必要な設定項目をスプレッドシートに入力します。
ステップ1でコピーしたスプレッドシートの「Control」シートC列に各ステップで取得した情報を入力してください。 ※スプレッドシートD列に入力すべき値の説明を記載しているため、説明は割愛いたします。
下記のように入力したら準備完了。

ステップ6: ツールの起動と実行結果の確認

📝 Callout icon
本ステップのゴール ツールを起動し問題なく動いていることを確認。
スプレッドシート上部にある「同期を開始する」ボタンを押してください。
10秒くらい経つと、下記のようなポップアップが出てくるので「OK」を選択してください。
スプレッドシートを開いているGoogleアカウントと同じアカウントを選択してください。
詳細」をクリック
Untitled project(安全ではないページ)に移動」をクリック
「許可」をクリック
もう一度、「同期を開始する」ボタンを押してください。裏側でスクリプト(コード)が実行されます。設定次第では数分かかる場合もありますが、「スクリプトを実行しています」と表示されたらひとまずOKです。
同期が完了すると、「同期が完了しました。」と表示されるので「OK」をクリックし、ポップアップ表示を消しましょう。
Notionのデータベースを確認し、予定が反映されていたら完成です!
しっかりとNotionのデータベースに反映されていることが確認できましたね!!これで連携完了です🎉
初期同期以降は、GASが
C9セル
で設定した時間おきに、Googleカレンダーを確認し、更新内容があればNotionデータベースに反映してくれます。なお、取得イベントは、
C8セル
で設定した日数までになります。
Googleカレンダー側で、予定名や時間を更新したり、予定を削除した場合も、しっかりNotionのデータベースに反映されることを確認してみてください!
以上で連携設定は終了になります。お疲れ様でした!

注意事項

権限の承認:
スクリプトが初めて実行される際に、Googleアカウントの権限承認が必要です。指示に従って承認を行ってください。
NotionのAPI制限:
Notion APIにはレート制限があります。大量のリクエストを送信しないよう、適切な同期間隔を設定してください。
エラーの確認:
同期中にエラーが発生した場合、スクリプトエディタのログを確認してください。
トリガーによって実行されたスクリプトのエラーは、ユーザーに通知されない場合があります。

よくある質問

Q1. 初期同期が完了しません。

大量の予定がある場合、初期同期に時間がかかることがあります。同期が途中で中断された場合でも、次回の実行時に続きから再開されます。しばらく待ってから再度同期を試みてください。

Q2. Notionに予定が反映されません。

設定項目の確認: NotionのトークンやデータベースIDが正しく入力されているか確認してください。
権限の確認: Notionデータベースがインテグレーションと共有されているか確認してください。
同期間隔の確認: 同期の間隔(
C9セル
)が適切に設定されているか確認してください。

Q3. 最初からもう一度設定を反映しなおしたいです。

スプレッドシート上部にある「リセットする」ボタンを押してください。裏側で処理された記録、値等をリセットしてくれます。リセット後は、初期同期から実行されますので、設定項目を修正してから再度「同期を開始する」ボタンを押してください。

Q4. 各プロパティを非表示にしても平気ですか?

はい、問題ありません。しっかりと適切な名前のプロパティがデータベースに設定されていれば大丈夫です。プロパティの順番を並べ替えてもOKです。
Table