見出し画像

手帳派の人間がタスク管理のデジタル化に挑戦してみた-デジタルな振る舞いキャンプEssential ターム2-2

Z世代のアナログ人間、Dhukaです。
スケジュール管理はもちろん紙の手帳。2024年は『星の王子さま』のデザインです。機能性も高く、来年も使いたいくらいお気に入り。
でも仕事のスケジュール管理はデジタルです。
言われればやるけど、ただ単に紙の方が好きなんです。

そんな私、この度、タスク管理のデジタル化を図ってみました。紙が好きなことは、デジタルを活用しない理由にはならないので。詳細は後述します。

今回はまだ課題が残っていますが、使えなくはなさそうだと思いました。


何を作るか

やり残しを防ぐことを目的に、自分のスマートフォンで仕事以外のタスクをリマインドできる仕組みを作りたい。
現状、紙の手帳には時間の決まった「予定」のみ記載していて、日々やるべき細かな「タスク」は書かないことも多い。たとえば、「14:00-美容院」は手帳に書くが、「買い物」「掃除」は書いていない。
個々のタスクは常に持ち運んでいるスマホに通知を残しておくことで、忘れずにやろうという意識を保つことができると考える。

今回は、タスク管理はTickTick、通知はLINE Notifyを使いたい。
TickTickに入力したタスクをその日ごとの一覧にして、毎朝LINEにテキストで送信する仕組みを作る。

なお、タスク管理のアプリはいくつか検討したが、アイゼンハワーマトリクスの表示が魅力的だったのでTickTickを選んだ。

どう作るか

TickTickとLINE Notifyは直接連携できるか?

まず、APIを使用して両者を繋げないか考えたが、私の知識では難しかった。
ChatGPTで作ったコードではエラーが発生し、生成AIとのラリーでは解決しなかったので、今回は断念した。私にコーディングの知識はない。
もしやったことがある人がいたらぜひ教えていただきたい。

https://developer.ticktick.com/docs#/openapi

Google Calendar経由で繋げるか?

次に、Google Calendarと連携することを考えた。具体的には、TickTick上のタスクをGoogle Calendarに登録し、その内容をLINE Notifyで通知する仕組みだ。
TickTickとGoogle Calendarの連携はIFTTTを使用すれば可能である。LINE NotifyはApp Scriptでトークンを登録できたので、Google Calendarともすぐに繋げられるはずだ。
そう考えて、今回はこの方法で進めることにした。

なお、IFTTTのアプレットをカスタマイズするには課金する必要があり、今回は無料で進めたいので既存のものを使用した。
また、TickTickもやはり課金するとカレンダーと連携できるようだ。こちらも試したことがある人がいれば、ぜひ教えていただきたい。

カチカチ

Google Calendar上のその日のタスクを一覧にしたテキストを、LINE Notifyで毎朝8時に通知する仕組みをApp Scriptで作りたい

// LINE Notifyのアクセストークン
var LINE_NOTIFY_ACCESS_TOKEN = 'YOUR_LINE_NOTIFY_ACCESS_TOKEN';

// LINE Notifyにメッセージを送信する関数
function sendLineNotifyMessage(message) {
  var url = 'https://notify-api.line.me/api/notify';
  var headers = {
    'Authorization': 'Bearer ' + LINE_NOTIFY_ACCESS_TOKEN,
  };
  var payload = {
    'message': message,
  };
  var options = {
    'method': 'post',
    'headers': headers,
    'payload': payload,
  };
  UrlFetchApp.fetch(url, options);
}

// 今日の日付のタスクを取得してリスト化する関数
function getTodaysTasks() {
  var today = new Date();
  var calendar = CalendarApp.getDefaultCalendar();
  var events = calendar.getEventsForDay(today);

  var message = '今日のタスク:\n';
  if (events.length > 0) {
    for (var i = 0; i < events.length; i++) {
      message += '- ' + events[i].getTitle() + '\n';
    }
  } else {
    message += 'タスクはありません';
  }

  return message;
}

// 今日のタスクを取得してLINEに通知する関数
function notifyTodaysTasks() {
  var message = getTodaysTasks();
  sendLineNotifyMessage(message);
}

// トリガーを設定して毎朝8時に通知する
function setupDailyNotification() {
  ScriptApp.newTrigger('notifyTodaysTasks')
    .timeBased()
    .atHour(8) // 朝8時に通知する
    .everyDays(1) // 毎日実行
    .create();
}

ChatGPTがコードを作ってくれた。これをApp Scriptに入れれば、翌朝8時にはLINEで通知が来る。はずだった。

結果

試運転

通知がきたのは朝8時35分だった。タイムラグがあるようだ。
また、内容は一部のみであった。どうやら、TickTickからGoogle Calendarに登録される内容が限られるようだ。
恐らくタスクの日時の設定によって登録されたりされなかったりするのだが、詳細は調べ切れていない。

2つしかないわけないでしょうよ

今後の課題

今後、LINEとTickTickの直接の連携を試みるのか、TickTickに課金してカレンダーと繋ぐのか、IFTTTに課金してアプレットをいじるのか、Google Calendarを使用してスケジュール管理を行うのか、いくつか検討できることはある。
タイムラグも何らかの方法で解決できるかもしれない。

なお、個人的には紙の手帳は使い続けるつもりだ。手帳は自分の生活の記録であり、それは私にとって質量のある物体で保管するに値するものだと思うからだ。

脱線するが、私は本も紙が好きだ。自分の糧になっている物語や知識が本棚に置いてあるなんて、とても素敵なインテリアだと思う。
スマホで撮った写真をわざわざ印刷して飾るのと同じ感覚かもしれない。機能は同じかもしれないが、ある種の実体として残しておきたいのだ。

とはいえ、あまり反抗ばかりしているといつまでもアナログ人間のままなので、上記の今後の課題はきちんと検討したい。


この投稿も「デジタルな振る舞いキャンプEssential」第2タームの課題です。一応。
GASの基礎は講義で学びました。これが今までやったことの中で一番すぐ応用できると思い、試してみた記録が今回の記事です。

第2タームの講義動画は、思考プロセスや仕組みの説明が多く、今後自分で活用できる大変有意義なものだったと思います。具体的なツールの使用方法を教わるより、その基盤を勉強する方が、私は好きなのかもしれません。

ところで、どの動画かは忘れましたが、受講前のオリエンテーションか何かで「ヤバい」「デジタルな振る舞いではない」とされた項目の中に、「スケジュールを紙の手帳で管理している」というものがあったと記憶しています。

いや紙が好きなだけであってやろうと思えばできるし!

・・・と反抗心を燃やしたことも、今回の投稿の動機だったりします。
小学生かよ。


今日のテーマソング:


#デジタルな振る舞い #Essential #DeC #リスキリング

いいなと思ったら応援しよう!