こんにちは。
今回はiPhoneのショートカットアプリを使ってタイムカードを作ってみました。
##タイムカードを作ってみたい
現在私は大学院に通っています。自分が毎日・毎週どれくらいの時間をラボで過ごしているのかが気になり、一昔前にタイムカードを作って研究室にどれくらい滞在していたかを記録していました。その時のタイムカードはIFTTTで作成しており、スマホのGPSを使って研究室のエリア内に入った時間と出ていった時間をGoogleスプレッドシートに記録するというものでした。しかし、GPSの精度がイマイチで研究室に入っていないのに近くを通過しただけで入室判定になったりと微妙な感じでした。そこで今回は本物のタイムカードのように物理的な認証によって入室・退室を記録しようと考えました。
##iPhoneショートカット×Googleカレンダー
そこでiPhoneショートカットとGoogleカレンダーを利用することにしました。完成形はこのような流れです。
- 入室時、iPhoneのNFCタグリーダーで入室のタグを読み込ませる
- 入室タグでショートカットのトリガーが起動し、Googleカレンダーに現在の日時を登録する(仮登録)。ついでにWi-Fiオン・おやすみモードオン
- 退室時、再びiPhoneのNFCタグリーダーで退室のタグを読み込ませる
- 退室タグでショートカットのトリガーが起動し、Googleカレンダーの入室時刻を読み取り、入退室時刻を合わせて1つのイベントとしてカレンダーに登録する
- 入室時の仮登録のイベントを削除
メインで使用するのはiPhoneショートカットのNFCタグリーダーとGoogleカレンダーです。NFCタグへのタッチで操作を簡素化、さらにGoogleカレンダーを使うことで可視性が良く、色々なデバイスで共有されるので便利です。
##要所解説
###0. 準備
iPhone以外で必要なものは以下の通りです。
・ NFCタグ
amazonでの購入先リンクはこちら
・ 出退勤を記録したいGoogleカレンダーとそれを登録するカレンダー
###1. 入室タグの読み込み
iPhoneショートカットのオートメーションにはNFCタグをトリガーにショートカットのアクションを設定できるので、その機能を使います。自分は入室・退室用のタグそれぞれ準備しています。
###2. Googleカレンダーへの出勤記録の仮登録
ショートカットの新規イベントの作成で、出勤簿のカレンダーに入室時の時刻を記録する。この際、メモに"仮"と記載しておきます。これが1つのポイントです。
ここでの難所は時刻登録の方法です。iPhoneショートカットには時刻周りにバクが存在します。ショートカットアプリなのか、時刻の関数(?)なのかは分かりません。午前1〜6時頃までの時刻を使用すると全て午後に変換されてしまいます(どの時刻まで不正確か以前調べましたが、記事の下書きが消えてしまいました…)。こんな深夜・早朝に研究室には行かないので機能の修正はほぼ不要ですが何となく嫌なので直します。修正方法については下記のブログに記事がありました。
日付フォーマット: カスタム
時間フォーマット: yyyy/MM/dd HH:mm:ss
で問題なく使うことができます。
###3. 退室タグの読み込み
1と同じ
###4. 入退室時刻を合わせて一つのイベントとして登録する
ここがやや複雑です。
まずカレンダーの検索で、仮登録した出勤のイベントを取得します。出勤簿のカレンダーのうちで最も新しく、メモに"仮"の記載があるイベントを検索で取得します。取得したイベントの開始時刻を新規イベントの開始時刻に、現時刻を終了時刻にすることで、出勤・退勤時刻が1つにまとまったイベントが作成できます。
###5. 入室時の仮登録イベントを削除する
仮登録したイベントを削除します。
本来はこのイベントの退勤時刻をアップデートするのが楽なのですが、既に登録済みのイベントの時刻や詳細を変更することができないのでこうしています。
##ショートカットの全景
ショートカットのスクリーンショットを掲載します。
###出勤記録
##ショートカットの共有
以下にショートカットのダウンロードリンクを貼っておきます。登録先のカレンダーを全て「毎回尋ねる」に設定を変更してあるので、使用前に自分の使用したいカレンダーに変更してください。
出勤記録
https://www.icloud.com/shortcuts/02a7826a34d648f6ba3c86ddd16237bd
退勤記録
https://www.icloud.com/shortcuts/6223ffea4dc74e4993d488a1aace3ff6