evacを使ってスケジュール(iCal)をSlack経由で通知する

evacを公開した時のエントリで、iCalの予定を読み込んでMac上のgrowlに通知する等を紹介したのですが、ペパボ社内でSlackが使われる様になったので通知をSlackに移しました。

やり方としては自分用のチャンネルをSlack上に開設してmention付きで通知させることでMacの前で作業しているときはSlackのnoticeで通知され、ミーティング等でMacの前にいない場合もiPhoneにプッシュ通知されるので便利。(だと思います。)

ペパボでは誰でも利用できる形でtakosanが用意されているので、evacのikachanプラグインを使うことでslack通知させることができます。

といったフローになります。

$ npm install -g evac

evacはインストールができますので、以下の様なレシピを用意します。

ここでは実行時点から1時間以内の予定を通知対象にします。

in:
  ical:
    url: http://〜/****.ics
    within: 1
out:
  ikachan:
    url: http://******
    join: false
    channel: "#evactest"
    message: "@hideack __word__"

あるいは、incoming webhook が確保できればそちらを使うこともできます。

in:
  ical:
    url: http://〜/****.ics
    within: 1
out:
  slack:
    url: https://hooks.slack.com/services/****/****/****
    format: "@hideack __word__"

こういったYAMLファイルを用意した上でcron等で定期的に以下の様な形でevacに設定を渡すと...

$ evac /home/hideack/evac/plan-notice.yaml

以下の様にslack上で予定が通知されます。

これできっと「あ!」っということが減るはずです。