技術系

シフト勤務者必見!Googleカレンダーを利用した自動目覚まし時計

概要

シフト勤務者の苦悩

知人はご存知の通り自分の今の勤め先はシフト勤務なので、毎日起きる時間がかなりまちまちになっている。
土日はもちろん週による周期も無く、勤務によって起きる時間が5パターンもあるため目覚ましを設定するのも一苦労だ。
そこで思いついたのが勤務日の公開に使っているGoogleカレンダーを利用した目覚まし時計。
それほど斬新なネタでは無いけど思いついたのがつい先日だったので紹介してみる。

Googleカレンダーの設定

カレンダーの作成

まず目覚ましに使うカレンダーを新しく作成する。
わざわざ新しく作成する理由は順を追って説明する。
新しく作るカレンダーには目覚まし設定する予定しか入れないようにする。

新しくカレンダーを作るには以下のマイカレンダーのメニューから。
スクリーンショット 2012-02-17 20.06.54

デフォルト通知設定

カレンダーを作ったら、そのカレンダーのメニューの通知をクリック。
以下のように通知方法を設定する。
スクリーンショット 2012-02-17 20.10.02

これによりこのカレンダーに追加されるイベントにはデフォルトで通知が追加される。
これが新しく専用カレンダーを作る理由、カレンダーを分けていないと通知が不要なイベントにもデフォルトで通知が追加されてしまうためだ。
ここまでやったらGoogleカレンダー側の設定は終了。

インポートするデータの作成

次はGoogleカレンダーにインポートするデータの作成。
これに関しては昔書いたこの記事を参考にして欲しい。
スケジュールのインポートフォーマット » (略)黒生鉄心の奇妙な日常

予定自体をExcelで貰っているなら、後はExcelVBAで良いように加工できる。
文字コードと改行コードの指定が面倒そうに感じるが以下を参考にすると良い。
EXCELのデータをUnicode(UTF-16)形式のCSVに出力|僕が映画評論家になれないワケ

改行コードはvblfを使うとして、Unicode指定は以下のCreateTextFileの3つ目の引数でTrueを入れることで指定できる。
Set Fso = CreateObject("Scripting.FileSystemObject")
Set f = Fso.CreateTextFile(fName, OverWrite, True)

あとここで重要な補足がある。
生成するインポート用csvファイルのStart Time列に、それぞれ目覚ましを鳴らしたい時間を指定すること。
ただしGoogleカレンダーは予定を30分単位でしか指定できない?みたいなので、それに合わせて指定すること。
インポートデータが出来たら次はインポート作業だ。

Googleカレンダーへインポート

インポート自体はファイルとインポート先カレンダーを指定するだけなので簡単なのだが、最近Googleカレンダーの仕様が変更されてインポートメニューの位置がちょっと変わったようだ。
以下の他のカレンダーのメニューからカレンダーのインポートをクリックする。
スクリーンショット 2012-02-17 20.36.17

後はこの画面でインポートするファイルとカレンダーを指定すれば良い。
スクリーンショット 2012-02-17 20.36.48

Googleカレンダーの通知を使って目覚ましを鳴らす

あとはカレンダーを使って目覚ましを鳴らすだけだ。
自分はiPhone・iPadで設定したのだが、少々手間がかかるのでまずは他デバイスの場合。

Windows

使えそうなツールがあったんだけど、何故か2010年末日までしか動作しないらしい。
Google カレンダーで管理してPCで音楽を鳴らして目覚ましにする | Q's Software

そも前提としてPCを常時稼動させる必要があるので非現実的。

Mac

こちらで紹介されているiTuneSleepというアプリがiCalと連携してiTunesから音楽を流せるらしいが、残念ながらLionではインストール時にエラーが出る。どうもAppleScript絡みのエラーっぽい?
Mac Explorer| iTuneSleep - iTunesでスリープタイマー・アラーム設定をするアプリケーションが無料に

ちなみにiCalにGoogleカレンダーのデフォルト以外を設定する方法はこちら。
Googleカレンダーと、SnowLeopardのiCalで複数のカレンダーをシンクする。SpaningSyncもmobileMeも要らないよ - When it’s ready. (a2c.get.diary)

一応iCalから音楽を鳴らすのはそんなに難しくないんだけど、iCalにインポートしたイベントの通知設定を個別に変更する必要があるのでイマイチ。
Mac miniならまだ低電力で稼働するため常時稼動も現実的なので機会があればもう少し詳しく調べてみたい。

Android

有料105円だが、こちらのアプリでほぼ希望通りの機能が実現できるみたい。
カレンダーアラームヘルパー

ただしAndroid OS2.1以降のみ対応。
そのためウチにある唯一のAndroid端末のメガネケースではテスト出来なかったため詳細は不明。
ただOS自体がGoogle製なのでiOSデバイスよりは親和性が高そうだし問題は無いと思う。

iPhone・iPad

というわけでようやく本題のiPhone・iPadでの設定。
少々手間がかかるがそれほど面倒ではない。
ちなみにiPhone・iPadどちらも方法はほとんど同じなので適宜読み替えればOK。

Exchangeのカレンダー共有設定

こちらを参考にExchangeでカレンダーの共有設定を行う。
ASCII.jp:iPadで「Google カレンダー」を使おう!

ちなみにExchangeでなくGmailの項目からもカレンダーの共有設定はできる。
が、共有されるのはデフォルトカレンダーのみでそれ以外のカレンダーの共有方法が分からなかったので、素直にExchangeで共有してGoogle Syncで共有するカレンダーを指定した方が良いと思う。

データの取得方法の設定

カレンダーを利用する設定ができたら次はデータの取得方法の設定だ。
[設定] - [メール/連絡先/カレンダー] - [データの取得方法]から設定を変更する。
A1884D41-DFFD-4CA2-B07D-42060370F973

プッシュの場合はGoogleカレンダー側で変更がかかった場合にただちに更新される。
その代わりに電池の消費が激しい。
フェッチの場合は指定した時間ごとにデータを更新するためプッシュより電池の持ちが良い。
どれを選ぶかは運用次第だが、自分の場合は基本的に月1回しか更新しないためフェッチの1時間毎の設定にした。

通知とアラームの設定

最後に実際に鳴らす通知とアラームの設定を行う。
まず通知設定はiPhoneの[設定] - [通知] - [カレンダー]で通知をオンにする。
CBA988ED-8CDB-4C48-96B0-B9A540025DBA

ここで通知設定をよく行う人は気付いたかもしれないが、カレンダーの通知方法にはバッジとダイアログしか無くサウンド設定が無い。
最初自分はこれを見てカレンダーの通知では音が鳴らないのかと勘違いしてしまった。

次にアラームの設定。
実はカレンダーはデフォルトアプリであるため、音に関する設定は[設定] - [サウンド] -[カレンダーの通知音]で設定できる。
657910AD-427F-47F6-9DE3-984F04272C9C

鳴らす音に関しては通知音だと短時間鳴ってお終いなので、着信音の方を選ぶといいだろう。着信音でも物によってはすぐ鳴り止んでしまうようなので実際に聴いて確かめると良い。個人的オススメはアラーム、耳元でこれが鳴り続けて寝てられる猛者は最早目覚ましでは起きれないと思う。

まとめ

これでインポートしたデータで指定した時間にアラームが鳴るはずだ。
E6EF8127-9E39-43C7-AFE1-D54BDCF7FC35
9BE79559-F29F-4E3A-BD50-2B43AE75ABF7

一度設定さえしてしまえばiPhone・iPadへの共有・Googleカレンダーの通知設定は自動で行われるので、Googleカレンダーのインポートだけ行えば良い。

ただし一つ注意点がある、この通知はあくまで一般的な通知でiPhoneのデフォルト時計アプリのアラームのような特殊な物ではない。
そのため端末がマナーモードになっているとそちらが優先されて鳴動しないのだ。
自分の場合は余計な通知を入れていないためマナーモードにする必要の無いiPadに設定しているので問題無いが、普段持ち歩きマナーモードにする機会の多いiPhoneで上記設定を行う場合はマナーモードの解除忘れに注意が必要だ。

-技術系
-, ,