Amazonのアソシエイトとして、このブログは適格販売により収入を得ています。

WearOSでカレンダーを自由自在に表示する方法

Android

自由自在っていうか、
普通のWatch Faceだと「次のイベント」しか表示させられなくて自由度が低かった。
なんならこのカレンダーとこのカレンダーのぉ…みたいな選択もやりづらくて、だるかった。

ので、カレンダーの内容を整理して、必要なものを表示するための仕組みを作った。

実現したこと

終日予定を1行表示

例えば、[午後外出]とか。
翌日なら[明日:燃えるごみの日]とか。自動でつける。

次の予定を1行表示・次の次の予定を1行表示

この次に発生する予定を表示。
表示させる範囲は直近の未来のものから、1週間先までとした。
だから今夜ケーキ受け取りがあって、明日朝から1on1ミーティングがあるなら、
[19:30 ケーキ受け取り]
[明日 09:30 1on1]
みたいな表示をしてくれる。

これがセットになるので
[午後外出]
[19:30 ケーキ受け取り]
[明日 09:30 1on1]
というのをWatch Faceに表示してくれる。
すっごい便利。
デフォでこの機能を搭載してくれ(自画自賛)

やり方

最初に書いとくけど、そこそこめんどいです。
あと細かいコードは書きません。お手元のAIに相談してください。

カレンダーのical形式非公開URLを用意。

僕の場合は、自分・家・仕事の3つ。
全部Googleカレンダーで管理してるから助かった。

icalを取得、整形して変数を出してくれるサーバを用意する。

僕の場合はCloudflareで遊んでるドメインが合ったので、workersで立ち上げ。
抽出と整形の仕様を詰めて、終日・ネクスト・ネクネクで3つの変数を出すようにした。

WearOS用のアプリを作成。

Android Studioで作成した。
workersに変数を聞きに行き、Watch FaceのComplicationに送り出すための橋渡しアプリ。
15分おきにチェックしてねというもの。
プッシュとか色々考えたんだけど、消費電力との兼ね合いがありそう。
カレンダーはそんな頻繁且つ緊急に更新されるものでもないので、15分で充分という判断。

Watch Faceを作成。

Complicationを自由に配置するため、Watch face studioではなくAndroid Studioで作成。
Complicationを3つ作成し、前述のアプリのデータを配置するように設定する。
その他、適当に時計やら天気やら必要な情報を置いていくと…

完成。

今回はDeepseekと一緒に作った。
作成中のエラーは主にWatch Faceを作るところで発生。
要素が重なっていたり、要素の枠を超過する文字があったりすると軽率にWatch Faceが死ぬので、非常に繊細な位置決めが必要で辛かった。
それ以外はけっこうすんなりできたと思う。

多分、予定表示関連で同じようなストレスを抱えてる人はいると思うので、参考になれば幸いです。

ところでPixel watch 5買いました。Galaxy watch 6は卒業です。


Google Pixel Watch 5(45 mm)

なぜPixel watchにしたのか。

単純にGalaxyより5,000円くらい安かったのと、Google Healthが魅力的だったから。
Google Healthの話も今度書く。

タイトルとURLをコピーしました