Notionを使って<たすくま>みたいなタスク管理がしたい

Notionを使って、<たすくま>みたいなタスク管理ができないか検討します

Jul 9, 2025
Notionを使って<たすくま>みたいなタスク管理がしたいDB
Table view
スクラップ
Created time
 

はじめに:たすくまが使えなくなった

 
どこのiOSバージョンから
たすくまの通知が不具合発生していた
→タスク処理してもリマインド通知が止まらない
 
繰り返しリマインドしてくれることで、タスクをいつかは実行する、という使い方だったので
通知に不具合があるのは致命的だった。
 
数年待ったけど、不具合が治る気配はない。
自分で近しい何かを準備したい。
 
たすくまで「もっとこうだったらいいのに」もあったので、それも実現したい。
 
 

欲しい機能を整理する

 

欲しい

 
  • タスクを上から順番にこなしていくリスト
    • 並び替えが出来る
  • 開始予定時刻を設定できる
  • 開始予定時刻になったら繰り返し開始確認リマインドする
    • リマインドは間隔が指定でき、徐々に間隔が半減していく
    • リマインド間隔を1分に指定していたら1分後、30秒後、15秒後となっていく。最短15秒。
  • タスク実行にかかる予想時間を設定できる
  • 開始から予想時間が経過したら完了確認リマインドする
    • 完了確認リマインドも同じ間隔で繰り返しリマインドされる
    • リマインド間隔は開始リマインド間隔と同じ
  • 開始ボタンがあり、開始した日時を記録できる
  • 終了ボタンがあり、終了した日時を記録できる
  • 中断ボタンがあり、タスク実行を中断できる
    • 中断した場合、再開するまでリマインドされる
    • リマインド間隔は同じ
  • 参考リンクを紐付けることができる
  • メモを残すことができる
 

なくてもいい

 
  • チェックインの機能
  • 時間をセクションで区切る機能
    • 日常の全てを記録するわけではない。そのため、セクション時間内に収まるかどうかの判定はしない
    • たすくまのコアの部分を削除している感覚もあるが、[全てを記録する]という使い方は自分に合っていなかった
 

自分が欲しいと思っている機能

 
めちゃくちゃ高頻度でリマインドして欲しいみたい。
 
 

自分の欲しい機能について考えてみた

 
[Notion Todo] とか [Notion タスク管理] とか [Notion リマインダー]で検索をしてみたが、あまり自分が好きそうな情報は得られなかった。
確認する中で自分が欲しいのは [ Todo ] とか [ タスク管理 ] ではなく、
[ 強力に何度もリマインドされること ]
なのかもしれないと思った。
 
 

試しにNotion上にタスクを書きだしてみる

 
ためしにタスクを書きだしたDBを作成してみる。
 
 
タスクの親子関係があった方がいいのかも。
子ども子どもに作るより、これはまとめられそうだから親を作る親を作るのような方式の方があっているかも?
親というかグルーピングか。
両方の方向から考えた方が良いか。
ただ、[サブタスク]のような下に入り込む方向はやめたほうがいいかも。
収集がつかなくなりそう。
 
開始・中断の再開・終了
リマインドを停止する可能性のある処理が実行された場合、リマインダーを止めるための処理が走る必要がある→webにアクセス通信する、APIを叩く必要がある
 
 

 

通知の仕組みについて検討する

 
リマインドする対象はなんとなく見えてきた。
どうやって、リマインドを通知する?

メッセージツール比較表

サービス名
料金体系
回数制限
実装難易度
主な特徴
適用場面
LINE Messaging API
月200通まで無料以降1-3円/通
月200通まで無料3万通まで1-2円以降3円/通
簡単
日本で高い普及率高い開封率
日本のユーザー向け個人・小規模利用
LINE通知メッセージAPI
要問い合わせ
審査制
中程度
電話番号ベース送信企業向け機能
企業の公式通知
Discord Webhook
完全無料
秒間50リクエストチャンネル毎秒間5メッセージ
最も簡単
ファイル添付可能埋め込み形式対応
開発者・技術者向けコスト重視
Discord Bot API
完全無料
同上
簡単
対話機能実装可能高度な機能
将来的な機能拡張予定
Slack Webhook/API
有料プランあり
プランによる
中程度
豊富な連携機能高いカスタマイズ性
企業・チーム向けビジネス利用
Microsoft Teams
有料プランあり
プランによる
中程度
Microsoft環境親和性コラボレーション機能
Microsoft環境企業利用
Telegram Bot
無料
詳細不明
やや複雑
Bot機能豊富プライバシー重視
技術者向けセキュリティ重視
Mattermost
オープンソース
自社運用次第
複雑
自社サーバー運用完全制御可能
自社インフラ運用セキュリティ重視
 

通知方法:Discordがいいか

 
サーバー上からDIscordのWebhookを叩くことで、通知するのが良さそう。
 

 

サーバーからDiscordにメッセージする

 

作成済みのWebhook URL を確認する

notion image
notion image
notion image
 

 
 
 
 
メッセージの送信をしてみる

メッセージの送信をしてみる

 

新しいVPSサーバーを準備した

 
 
ここで環境を準備する。
 

pipをインストールする

 
# which pip /usr/bin/which: no pip in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin) # curl -kL https://bootstrap.pypa.io/get-pip.py | python # curl -kL https://bootstrap.pypa.io/get-pip.py | python % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2225k 100 2225k 0 0 2021k 0 0:00:01 0:00:01 --:--:-- 2023k Collecting pip Downloading pip-25.1.1-py3-none-any.whl.metadata (3.6 kB) Downloading pip-25.1.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 3.1 MB/s eta 0:00:00 Installing collected packages: pip Successfully installed pip-25.1.1 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning. # 作業ユーザーを作成しておく。 # adduser takuro # su - takuro pipがインストールされたことを確認する $ which pip /usr/local/bin/pip
 
icecreamをpip install
$ pip list | egrep "icecream" $ $ pip install icecream Defaulting to user installation because normal site-packages is not writeable Collecting icecream Downloading icecream-2.1.5-py3-none-any.whl.metadata (1.5 kB) Collecting colorama>=0.3.9 (from icecream) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting pygments>=2.2.0 (from icecream) Downloading pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB) Collecting executing>=2.1.0 (from icecream) Downloading executing-2.2.0-py2.py3-none-any.whl.metadata (8.9 kB) Collecting asttokens>=2.0.1 (from icecream) Downloading asttokens-3.0.0-py3-none-any.whl.metadata (4.7 kB) Downloading icecream-2.1.5-py3-none-any.whl (14 kB) Downloading asttokens-3.0.0-py3-none-any.whl (26 kB) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Downloading executing-2.2.0-py2.py3-none-any.whl (26 kB) Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 3.0 MB/s eta 0:00:00 Installing collected packages: pygments, executing, colorama, asttokens, icecream Successfully installed asttokens-3.0.0 colorama-0.4.6 executing-2.2.0 icecream-2.1.5 pygments-2.19.2 $ pip list | egrep "icecream" icecream 2.1.5 $
 

discordに通知するスクリプトを作成

 
後でまとめて記載する。
 

discordに通知されることを確認する

* * * * * /usr/bin/python /home/takuro/reminder/shisetsu_cancelcheck_discord_notification.py
これで毎分通知される状態が作れた
 
 
通知する流れについて考える

通知する流れについて考える

 
  • Discord上のURLボタンから開始や停止がコントロールできたほうがいい?
    • これをやると、webサーバーとAPIが必要になる。URLでサーバー内のscriptを実行するということ。
  • 毎分Notionのテーブルの状態をサーバーが取得する?
    • 毎分クーロンでスクリプトを実行している?
      • cronもデーモンプロセスとして、常駐している仕組み
      • 同じように<Notionテーブルの内容> が <crontabの内容> と考えるとイメージ付けやすい?
 

次に通知したい時間はNotionテーブル上で計算できる?

 

通知が必要なパターン

  • 開始予定時刻が過ぎている
  • 終了予定時刻が過ぎている
  • 中断してから5分以上過ぎている
 
もし [ 終了必時刻 ] が入力されていたら、 [ 終了予定時刻 ] は [ 終了必時刻 ] になる
もし [ 終了必時刻 ] が入力されておらず、 [ 作業時間 ] が入力されていたら、 [ 実開始 ] + [ 作業予定時間 ] が [ 終了予定時刻 ] になる
 
もし [ 実開始 ] が入力されていて、 [ 実終了 ] が未入力で……
という感じで計算した
 
 
NotionDBの情報を取得する

NotionDBの情報を取得する

 
 
 
 
 
 

まとめ