🐴

Notion:Googleカレンダー作成用URLを関数で作る

2021/12/01に公開

はじめに

Barusu Advent Calendar第1日目の記事です。
毎日書いてくよ!
今年は毎日書くとか宣言したけど途中で挫折したよ!
100本ちょいしか書けなかったよ!
せめてAdvent Calendarだけは完走してくよ!

本題

みなさんNoition使ってますか?
便利だよねーなんでもできるし。
スプレッドシートで色々やってたけどNotionに移行した人多いんじゃない?

かく言うわたしもNotionファンです。
2年前に出会って、すぐにProプラン契約したくらい。
昔は無料プランだと1万ブロックまでだったんだけど、今は無料でも無制限利用できるもんねー。
素敵だよね。

こんなことや

こーいうこととか

こんな使い方だってできちゃう。

すきすきNotion。

さて、Notionへの愛が1/3でも伝えられたところで今日ご紹介するのは
NotionのTodo管理をちょっとやりやすくする方法です。

NotionでTodo書いて、さーやるぞーって思ってもいつやるか決めてない。
今すぐ?いやいやこれからMTGあるし、今日作業できる時間少ないし後でやろう!って思ってそのまま放置。
Todo管理破綻しちゃったわー。あーあ。みたいなことがあるわけです。

いやいや、僕は/私はちゃんとやれます!って人は...... すごいね。尊敬します。

Todoリストも良いんですけど、いつやるか?を設定しないといつまでもやらない。
NotionのTodoをGoogleカレンダーに追加すれば良いんじゃね?って発想です。

作り方

NotionでTableを作る

/tableからTabledatabaseを選択して作成

プロパティを設定する

日付型のプロパティを作る

プロパティを選択してTYPEを変更

関数型のプロパティを作る

プロパティを選択してTYPEをFormulaに変更

Edit Formulaをクリックして関数を編集

関数入力欄に以下を貼り付けてDoneをクリック

"https://www.google.com/calendar/event?action=TEMPLATE&dates=" + format(year(prop("Date"))) + formatDate(prop("Date"), "MM") + formatDate(prop("Date"), "DD") + "/" + format(year(prop("Date"))) + formatDate(prop("Date"), "MM") + formatDate(dateAdd(prop("Date"), 1, "days"), "DD") + "&text=" + prop("Name") + "&details=NotionURL:https://www.notion.so/" + id()

<解説> 関数について

  • "https://www.google.com/calendar/event?action=TEMPLATE&dates="
    "https://www.google.com/calendar/hosted/<your-domain>/event?action=TEMPLATE&dates=" に変更すると、指定のドメインのみにできる。
    同一のブラウザで複数のアカウントでGoogle Appsにログインしている場合、常に最初にログインしたアカウントの予定入力画面が開いてしまう挙動を回避したいときに使える。
    ※<your-domain>は各自のGWSドメインに置き換える

  • + format(year(prop("Date"))) + formatDate(prop("Date"), "MM") + formatDate(prop("Date"), "DD") + "/" + format(year(prop("Date"))) + formatDate(prop("Date"), "MM") + formatDate(dateAdd(prop("Date"), 1, "days"), "DD")
    日付プロパティ名を指定する
    漢字OK

  • + "&text=" + prop("Name")
    Nameプロパティを指定することでNotionのタイトルと同一にできる
    漢字OK

  • + "&details=NotionURL:[https://www.notion.so/](https://www.notion.so/)" + id()
    ※カレンダー予定の詳細欄にNotionのTodoへのリンクを記載してます

使い方

  1. 作成したFormulaの値をコピーする
  2. ブラウザに貼り付けてリンクを開く
  3. 保存して完了

ハマったこと

1~9月、1~9日だと桁が足りず、日付がおかしいことになる問題

1~9日の場合

Date = 2021/02/01
Before
	date(prop("Date"))  = > 1
After
	formatDate(prop("Date"), "DD") = > 01

1~9月の場合

Date = 2021/02/01
Before
	month(prop("Date"))+1 = > 2
After
	formatDate(dateAdd(prop("Date"), 1, "months"), "MM") = > 02

他活用案

数日にまたいで設定したい

解決策:Notionのプロパティと関数をカスタマイズする
こんな感じで。

Name:タイトル
Date:開始日,終了日

関数

"https://www.google.com/calendar/event?action=TEMPLATE&dates=" + format(year(prop("Date"))) + format(month(prop("Date")) + 1) + format(date(prop("Date"))) + "/" + format(year(prop("EndDate"))) + format(month(prop("EndDate")) + 1) + format(date(prop("EndDate")) + 1) + "&text=" + prop("Name") + "&details=NotionURL:https://www.notion.so/" + id()

時間も指定したい

解決策:Notionのプロパティと関数をカスタマイズする
けっこう複雑になるので別途書きます。

終わったかどうかをチェック入れたい

解決策:Botに確認させるやつ作る

まとめて登録したい。URLぽちぽちしたくない

選択肢
 たたかう
 どうぐ
 まほう
 にげる
▷ ごじつ

双方向同期したい

こんなサービスがあるので使えば良いと思うよ。

550円/月 かかるけど、やりたいことはできる。
というかこれ使えば良いんじゃないか?って思う

https://notion-automations.com/calendar

以上

Discussion