rcal というWebアプリを実装して1ヶ月ほど使っていてこなれてきたので書く。
これは自分のやらなきゃいけないことを記録するために使っている、いわゆるTODOアプリである。 機能としては
- Googleカレンダーに連携して、カレンダー上のイベントをタスクとして扱う
- タイトルが
rから始まるイベントは削除するまで自動で延期され続ける *1
というシンプルなもの。

やらなきゃいけないことあるな、と思ったときにGoogleカレンダーに r ゴミ出し などと登録しておけば、その予定された時刻をすぎた予定は2時間ずつ延期され続けられるので、カレンダーに残り続ける。ゴミ出しが終わったらその予定を削除すればタスク完了だ
モチベーション
自分はあまりにADHDの性質が強く、やらねばならぬことを正確に管理することが困難である。 定型的な処理を繰り返すことができず、タスク管理は人生の課題であった。メモ帳で管理してみたり、タスク管理アプリを使ってみたりしたが定着せず30年を生きてきたのである
唯一強く習慣化されているのがカレンダーアプリで予定を確認することだ。それだけはできるため、自分のタスク管理も兼ねてカレンダーになんとなく特定の日までにやらなければならないことを予定として登録しておき、なんとかこなすという形で運用してきた。終わらなかったものは手動で翌日に回すなどしていたのを、webアプリ化して自動化したというわけだ。
アプリの思想として、カレンダーアプリからやれることは全部そこからやればいい、と考えているのでタスクの登録画面がないタスクアプリになっている
想定質問: 後回しするのではなくその場でやればいいのでは
=> 気持ちが乗るまで本当にできないんだわこれが
やれるタイミングが来るまで基本的には放っておいて良いのが利点
実装など
にコードがある
Ruby on Rails製で、kamalを使ってVPSにデプロイしている。 Rails 8のOne person frameworkの思想、こだわりを強く感じて最高。
データベースはsqliteで運用しており、VPS内に永続化されている。VPSの自動バックアップオプションみたいなの使っていて、個人アプリだしこれで良いかという気持ち。 実装はGoogleカレンダーの変更通知webhookが受け取れる期限が1週間くらいで、実装で延期しなきゃいけないあたりがだるかったところ。
だいぶマイノリティのためのアプリという自負があるが、刺さったら試してみてください
*1:r はrecurring の r