Linux でもサイボウズリマンダーのようなリマインドを実現する


木虎です。ブログを始めようと言った言いだしっぺであるにも関わらず初めての投稿です。すみませんすみません。

メールなどは Google Apps を使っているんですが、スケジュール管理はサイボウズ Office 8 を使っています。Windows だとリマインダーというクライアントアプリがあり、設定しておくと予定時刻の前にポップアップなどで予定時刻が迫っていることがわかりとても便利です。

最近仕事では普段使いの OS として Linux (Distributionは Ubuntu 派生の Linux Mint です) を使っています。リマインダーは Windows 専用アプリですので Linux で使えません。なので、予定時刻になっていることに気づかないことがよくありました。さすがにこれはイカンだろうということで予定時刻が近づいたらリマインドしてくれるようにしましたのでやり方を紹介します。

基本的な構成は以下のとおりです。

  • 何らかのスクリプトでサイボウズにアクセスし iCalendar 形式のファイルを生成する
  • 適当な Web サーバをローカルにたてて生成したファイルを HTTP で公開する
    • Google Apps のカレンダーに取り込むことも考えたが、外部公開しているサーバにファイルを置かないといけないのでやめました
  • evolutions で iCalendar ファイルを取り込む

以前にも同様のことを Cybozu2ICal というスクリプトを使って Mac OS X でもやったので簡単にいくかと思っていたのですが、サイボウズ Office 8 では使えないとのこと。ということで他に何かないかを探してみたところ Perl で書かれたスクリプト を見つけました。

ブログのエントリ通りに設定ファイルを作成し 5分ごとに Cron で起動するよう設定します。僕の場合は output_file を設定せずにリダイレクトで ics ファイルを生成するようにしました。

*/5 * * * * . ~/.profile; cybozu8_ical >${HOME}/Public/www/cybozu.ics

次に Web サーバの設定です。Web サーバには Nginx を選択しました。apt でインストールして以下の行を /etc/nginx/sites-available/default に追加します。

server {
... snip ...
    location ~ ^/~kitora/(.*)$ {
        alias /home/kitora/Public/www/$1;
    }
}

最後に evolution の設定です。カレンダーを新規追加して以下のように設定します。

以上でカレンダーを取り込むことができましたが、リマインドのポップアップがありません。ポップアップなどで通知されるようにするには Perl スクリプトを以下のように修正します。

--- bin/cybozu8_ical    2012-05-11 10:17:50.372138780 +0900
+++ Downloads/cybozu8_ical      2012-05-21 17:42:57.372848363 +0900
@@ -178,12 +178,6 @@
 EOF
     print "LOCATION:$location\n" if defined $location;
     print <<EOF;
-BEGIN:VALARM
-TRIGGER:-PT10M
-REPEAT:1
-ACTION:DISPLAY
-DESCRIPTION:It's about time to next plan.
-END:VALARM
 END:VEVENT
 EOF
 }

これで予定の 10分前にポップアップなどで通知されるようになります。


This entry was posted in その他. Bookmark the permalink.