😽

Notionのオートメーション新機能「Webhookアクション」を使いgoogleカレンダーに予定を登録する

2024/12/04に公開

はじめに

Notionのオートメーションに新しい機能であるWebhookアクションができた。
https://x.com/NotionJP/status/1864201607698894850

https://www.notion.so/ja/help/webhook-actions

早速この機能を使い、Notionの情報を外部出力する。

つくりたいもの

NotionにタスクDBがあるが、そのタスクをカレンダーに転記したい。
流れはこんな感じ。

オートメーション設定

オートメーションのトリガーとして内容の変更があればよかったが、現状(2024/12/04)ないので日時プロパティを用意して、以下の流れでWebhookを発動させる。

  1. 「カレンダー登録ボタン」を押すと「登録日時」プロパティが更新される
  2. 登録日時プロパティの変更をトリガーにして、オートメーションが作動する
    • なお、その際id, タイトルがWebhookに出るように設定する

GAS側のcode

main.js
function doPost(e){

  const params = JSON.parse(e.postData.getDataAsString());
  const getEventName = properties => {
    return properties['ID'].unique_id.number
      + ' '
      + properties['タイトル'].title.map(v => JSON.parse(JSON.stringify(v)).plain_text).join('');
  };
  CalendarApp.getDefaultCalendar().createEvent(
    getEventName(params.data.properties),
    dayjs.dayjs().toDate(),
    dayjs.dayjs().add(30, 'minutes').toDate(),
  );
  return ContentService.createTextOutput(params?.challenge);
}

使っているライブラリ
https://gas.excelspeedup.com/dayjs/

Discussion