Notion:Googleカレンダー作成用URLを関数で作る
はじめに
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へのリンクを記載してます
使い方
- 作成したFormulaの値をコピーする
- ブラウザに貼り付けてリンクを開く
- 保存して完了
ハマったこと
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円/月 かかるけど、やりたいことはできる。
というかこれ使えば良いんじゃないか?って思う
以上
Discussion