毎日カレンダインタープリタ生活

この記事は 天久保 Advent Calendar 2023 - Adventarcoins Advent Calendar 2023 - Adventar の 7 日目の記事です。

みなさんはカレンダー1を使っていますか?私はここ数年で使い始めました。

カレンダーを使い始める以前は、友人の約束の時間は守れず、帰省の日程を忘れ、課題は当然提出できない、という状態でした。このままではいけないと思いカレンダーを使い始めてから、以前に比べて高い精度で予定をこなすことができるようになりました。 これは真人間のみなさんにとっては当然のことかもしれませんが、私にとっては非常に大きな進歩でした。

本記事では、私がどのような方法、メンタルモデルでカレンダーを使用しているのか、予定管理の上での tips、それによる効果について書きます。

目次

カレンダーのある生活

カレンダーインタプリタとして振る舞う

カレンダーのない生活とはどのような生活でしょうか?

私の場合は、ぼんやりと頭の中に予定があり、予定のタイミングでうまく想起できると予定がこなせる、うまく想起できなかったやつはできない、という感じでした。 私はそこまで記憶力がいいわけではないので、この状態では予定を忘れてすっぽかすことがよくありました。

この課題を解決するためには以下の2つが必要です。

  • 予定を永続的に記録するストレージ
  • 予定の記録を元に、予定の開始時刻になったら人間に通知する仕組み

まず、特定の時間がブロックされるような全ての予定をカレンダーに記入するようにします。 これによって(当然ですが)予定が永続的に記録されるようになります。 予定をカレンダーに記入する際は、「その前にいる場所から予定に合わせて行くべき場所への移動時間」も予定という形でカレンダーに記入しておいた方がよいです。こうすることでカレンダーの予定の開始時刻と行動の開始時刻を一致させることができます。これも Google Calendar を利用している場合は Google Map の経路検索と経路の Google Calendar への書き込み機能を使うことで簡単にできます。

その上で、Google Calendar などのカレンダーアプリを使っている場合はスマホアプリやデスクトップのプッシュ通知、スマートスピーカーなどで予定を通知するようにして、ほとんどのシチュエーションで通知を受け取れるようにしておきます。

この状態を作ることで、カレンダーが「私が今すべき行動」の single source of truth になり、通知を受け取ったタイミングでカレンダーの内容を実行する機械として振る舞うことで予定をこなすことができるようになります。 この状態を「カレンダインタープリタ生活」と呼ぶことにします。

タスクをスケジュールする

ここまでで、カレンダー上に明示的に記録された予定はこなすことができるようになりました。 しかし、ここまで扱ったのような「特定のブロックされる時間」があるような予定以外にも、時間を決めてやるべき行動があります。具体的には締切のあるタスクです。

このようなタスクは、締切から逆算してタスクの締切前に作業時間を確保してカレンダー上の予定に落とし込むことでカレンダインタープリタ生活のなかで上手く扱うことができます2

tips

Google Calendar で友人とスケジュールを組む

これはカレンダー一般の話ではなく、私が使っている Google Calendar で予定を管理する場合の tips です。 また、友人側も Google Calendar で全ての予定を管理するタイプの人間である必要があります。

Google Calendar にはゲストという概念があります。 他の Google アカウントや Google Groups のグループのメールアドレスを指定することで、予定に他の人を招待することができます。

そしてそのゲストの予定の空き情報を確認しながら予定の時間を決定する機能も Google Calendar にはあります。

この機能を利用するには、少なくとも相手方のカレンダーの予定の有無の情報にアクセスできる3必要があります。 1on1 の人間関係の場合、相手の Google アカウントに Google Calendar の予定枠だけが見えるように共有するとよいでしょう。複数人のメンバーが固定的なコミュニティの場合、Google Groups を作ってそこに全員を招待し、Google Groups に予定枠だけが見えるように共有するとよいです。

Google Calendar への入力を自動化する

予定のなかには、カレンダーに入力するまでもなくコンピュータが扱える形で記録されているものもあるでしょう。 そういった予定は Google Calendar に自動で入力できるかもしれません。 データを持っているサービスごとに事情が異なるので、私が普段遣いしているいくつかのサービスについて書きます。

会社の Google Calendar に個人の予定を同期する

定時の概念がある労働ではあまり問題になりませんが、学生の SWE のアルバイトによくある不定期な働き方では個人的な予定と会社の予定のバティングが問題になることが多いです。

私は会社でも Google Calendar で友人とスケジュールを組む で述べたような方法でミーティングなどの予定を調整しています5。 しかしこの時、会社の予定調整には会社の Google Workspace 内の Google アカウントのカレンダーを使っているため、社内の人が私のカレンダーの空き情報を確認すると個人的な予定のブロックが存在しないことが問題になります。

そこで以下のような操作を自動で実行する Google App Script を作って使っています。

このスクリプトは、個人の Google アカウントが持つ中間カレンダーに開始時刻と終了時刻以外の情報を潰して個人のカレンダーの予定をコピーし、コピーした予定に会社の Google アカウントをゲストとして招待することで会社の Google カレンダーに予定として表示されるようにします。

こうすることで、会社のカレンダーに対する書き込み権限を個人の Google アカウントに与えることなく個人的な予定の時刻だけを会社のカレンダーに共有できます。

効果

以上のようにカレンダーを活用することで、「予定をこなす」という行為が高い精度でできるようになりました。 冒頭でも述べたように、カレンダーをすでに使っている人にとっては当然のことなのかもしれませんが、約20年間カレンダーというものを一切使わずに生きてきた身としてはこの効果は衝撃的6でした。

また副次的な3つの効果も得られました。

まず予定のストレージが揮発性の高い脳からカレンダーに移ったことで、より長い期間の将来の計画を立てることができるようになりました。 従来のぼんやりと頭に予定があるだけ状態では私の能力では3日以上先の将来を考えることが難しかったのですが、カレンダーに予定を記録することで1ヶ月以上先の将来の計画を立てて実行できます。これなしではチケットの購入(計画)と開催(実行)が1ヶ月以上空くようなイベント7に行くことは不可能だったでしょう。

また予定を機械が扱えるストレージに置くことで他者との予定の共有のコストが低くなりました。私の場合は Google Calendar を利用しているので Google Calendar で友人とスケジュールを組む で述べたような方法をとっているのですが、これには前提となる制約も多いので制約を満たせたのは運がよかったです。

最後に自分の行動のログがカレンダー上に残るようになりました。カレンダインタープリタ生活を送ると、自分がした行動がほとんど全てカレンダーに記録されます。これによって過去の特定の時刻に自分が何をしていたのか調べたり、ある一定期間(1週間とか)内の自分の行動についての統計を取る、といったことが可能になりました。

さいごに

Q. ところでなぜここまでやってアドベントカレンダーに遅刻しているんですか?

A. 記事を書く時間をカレンダーに入れ忘れていたためです。カレンダーインタープリタはカレンダーにない予定を実行できない。


  1. 筆者が使用している Google Calendar を想定しますが、明記していない限りカレンダーアプリとか、なんなら手帳や卓上カレンダーでも同じように使える…はず。
  2. これがタスクスケジューリングってワケ。スケジューリング - Wikipedia
  3. 「予定の表示(時間枠のみ、詳細は非表示)」
  4. 実はこれで出力されるカレンダーが少し変で困っていたのでパッチを送った。OSS でよかった。 iCal 形式で出力される投稿予定カレンダーの予定(event)を終日(allDay)の予定にしてほしい · Issue #48 · adventar/adventar
  5. むしろカレンダインタープリタ生活も予定調整も以前働いていた会社で社員の方々がやっていた行動を真似たもの。
  6. 人類が文字を獲得したのと同等まである。
  7. カレンダーを使い始めたのと時期を同じくしてめちゃくちゃライブやクラブイベントに行くようになった。