このマニュアルでは、GoogleカレンダーとNotionデータベースを同期するスクリプトの設定方法を説明します。
まずはじめに下記の動画をご覧ください!全体像の説明、重要な点をざっくりお伝えしています!
準備するもの
Googleアカウント
Notionアカウント
実装機能
基本は、Googleカレンダー → Notionの連携です。
※Notion → Googleカレンダーには対応しておりません。
初期同期:連携前に登録済みの〇〇日後までのイベント(予定)をNotionデータベースに反映
新規追加:連携後に追加されたイベント(予定)は、定期的にNotionデータベースに追加
更新:イベント(予定)のタイトルや時間が更新されたら、Notionデータベースにも反映
削除:イベント(予定)が削除されたら、Notionデータベースの該当ページも削除
概略
本ツールを使用することで、Googleカレンダーの予定(イベント)を、Notionのデータベースに同期することができます。
GoogleカレンダーとNotionのデータベース、それぞれでスケジュールやタスクを管理している方にとっては非常に有用なツールになるはずです。
今までノーコードツール(iPaaS)等で同期連携していた方も、本ツールを使えば無料で実装することが可能になりますので、是非順を追って試してみてください!
下記、Googleカレンダー(左)の予定がNotionのデータベース(右)に反映されている状態です。対応する予定に色付けしています。イメージとして共有しておきます。
それでは設定に入っていきましょう!!
ステップ1: スプレッドシートのコピー
本ステップのゴール
ツールの大元となるスプレッドシートをコピーし、ご自身のGoogle Drive内にスプレッドシートを作成すること。
スプレッドシートをコピー
スプレッドシートを開いたら、メニューの「ファイル」から「コピーを作成」をクリックしてください。
任意の名前を付けて、自分のGoogleドライブに保存します。
ファイルがコピーされたら準備完了です!
ステップ2: Notion APIトークンの取得
本ステップのゴール
Notionデータベースを外部から操作するために必要なインテグレーションの作成、それに付随するAPIトークンの取得。
別のブラウザタブで Notion Developers ページを開きます。
「新しいインテグレーション」をクリックします。
インテグレーション名を入力します(例:「CalendarSync」)。
関連するワークスペースを選択します。
「種類」で「内部(Internal)」を選択します。
「保存」ボタンをクリックします。
表示された「Internal Integration Token」をコピーします。
このトークンは後で使用するので、安全な場所(メモ帳など)に一時的に保管してください。
重要: このトークンは秘密情報です。他人と共有しないでください。
ステップ3: Notionデータベースの作成と連携
本ステップのゴール
下記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の取得
本ステップのゴール
同期するGoogleカレンダーを識別する、GoogleカレンダーIDを取得。
※本ツールは、複数のGoogleカレンダーから予定を同期できる仕様になっています。
Googleカレンダーを開き、同期したいカレンダーの︙をクリックしてください。
「設定と共有」をクリック
下の方にスクロールすると「カレンダーID」が見つかるので、そちらをメモしておいてください。複数のカレンダーを連携したい場合は、それぞれのカレンダーIDをメモしてください。
ステップ5: 設定項目の入力
本ステップのゴール
ツールを実行するために必要な設定項目をスプレッドシートに入力します。
ステップ1でコピーしたスプレッドシートの「Control」シートC列に各ステップで取得した情報を入力してください。
※スプレッドシートD列に入力すべき値の説明を記載しているため、説明は割愛いたします。
下記のように入力したら準備完了。
ステップ6: ツールの起動と実行結果の確認
本ステップのゴール
ツールを起動し問題なく動いていることを確認。
スプレッドシート上部にある「同期を開始する」ボタンを押してください。
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です。