👋
Zapierを使ってGoogleカレンダーをNotionDBに同期させる
Zapierを利用することで、Googleカレンダーに新しくイベントが登録された場合にNotionDBに追加したり、既存のカレンダーイベントを変更した際にNotionDB側に反映させるといった片方向同期ができます。
なお、今回の手順はZapierを設定後に「新しく追加または変更したカレンダーイベント」のみが対象となります。すでに登録済みのイベントデータを一括で同期させたり、イベントを削除した場合の同期については別途まとめたいと思います。
前提
- ZapierからGoogle CalendarとNotionへのコネクションが設定済みであること。
- NotionにはZapierとのコネクトが設定済みであること。
- NotionDBには同期するイベントのIDを格納するための文字列属性
cal_id
が存在していること。
設定の流れ
Trigger
処理のトリガーを設定します。今回は新規作成と更新の両方で起動する設定を行います。
- Zapを新規作成し、Triggerに
Google Calendar
を選択します。 - Eventには
New or Updated Event
を選択します。これで新規作成に加えてイベントを変更した場合にも処理が実行されます。 -
Google Calendar account
とCalendar
を選択しTest trigger
で動作を確認します。
Action1. 検索
続いて既存のNotionDBを検索するActionを設定します。
- Actionを追加し
Notion
を選択します。 - Eventには
Find Database Item
をクリックします。他にもCreateやUpdateといったEventがありますが、いわゆるUpsertを実現したい場合はFind Database Item
を選択すると効率的です。 -
Notion account
とDatabase
を選択したら、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 account
とDatabase
を選択したら、Item
にはCustomタブから前のステップ(Action1)で検索または作成したNotionDBのIDを選択します。 - その他の属性は必要に応じてTriggerで引き渡された情報をマッピングします。
- 最後に
Test Action
で実際に属性が同期されるか確認します。
まとめ
以上、Googleカレンダー情報をNotionDBに片方向同期させるZapierの手順まとめでした。
作成前はUpsertを実現するためには条件分岐などで処理が煩雑になるかなと予想していましたが、NotionのActionが非常に柔軟なことから、最終的にとてもシンプルな構成になりました。
Discussion