👋

Zapierを使ってGoogleカレンダーをNotionDBに同期させる

2023/01/06に公開

Zapierを利用することで、Googleカレンダーに新しくイベントが登録された場合にNotionDBに追加したり、既存のカレンダーイベントを変更した際にNotionDB側に反映させるといった片方向同期ができます。
なお、今回の手順はZapierを設定後に「新しく追加または変更したカレンダーイベント」のみが対象となります。すでに登録済みのイベントデータを一括で同期させたり、イベントを削除した場合の同期については別途まとめたいと思います。

前提

  1. ZapierからGoogle CalendarとNotionへのコネクションが設定済みであること。
  2. NotionにはZapierとのコネクトが設定済みであること。
  3. NotionDBには同期するイベントのIDを格納するための文字列属性cal_idが存在していること。

設定の流れ

Trigger

処理のトリガーを設定します。今回は新規作成と更新の両方で起動する設定を行います。

  • Zapを新規作成し、TriggerにGoogle Calendarを選択します。
  • Eventには New or Updated Event を選択します。これで新規作成に加えてイベントを変更した場合にも処理が実行されます。
  • Google Calendar accountCalendarを選択しTest triggerで動作を確認します。

Action1. 検索

続いて既存のNotionDBを検索するActionを設定します。

  • Actionを追加しNotionを選択します。
  • Eventには Find Database Item をクリックします。他にもCreateやUpdateといったEventがありますが、いわゆるUpsertを実現したい場合はFind Database Itemを選択すると効率的です。
  • Notion accountDatabaseを選択したら、Triggerで引き渡された情報にあるID(イベントのID)cal_idに設定します。こうすることでイベントのIDをキーにDBを検索することができます。
  • 続いてCreate Notion Database Item if it doesn't exist yetにチェックをつけます。こうすることで、DBにアイテムが存在しない場合(イベント新規作成時)にアイテムを新たにNotionDB側に作成することができます。
  • Test Actionで実際にNotionDBにアイテムが追加されることを確認します。

Action2. 更新

続いてNotionDBを更新するActionを設定します。

  • Actionを追加しNotionを選択します。
  • EventにはUpdate Database Itemを選択します。
  • Notion accountDatabaseを選択したら、ItemにはCustomタブから前のステップ(Action1)で検索または作成したNotionDBのIDを選択します。
  • その他の属性は必要に応じてTriggerで引き渡された情報をマッピングします。
  • 最後にTest Actionで実際に属性が同期されるか確認します。

まとめ

以上、Googleカレンダー情報をNotionDBに片方向同期させるZapierの手順まとめでした。
作成前はUpsertを実現するためには条件分岐などで処理が煩雑になるかなと予想していましたが、NotionのActionが非常に柔軟なことから、最終的にとてもシンプルな構成になりました。

Discussion