##
emacs+mhcで
スケジュール管理
[Co-KoNPILe (ここんぱいる) #6](https://cokonpile.connpass.com/event/180113/)(2020/07/23) @furandon_pig
https://furandon-pig.github.io/study-memo/docs/cokonpile/20200613.html
# スケジュール
管理ツール。
PIM(Personal Information Manager)ツール * [Garoon](https://garoon.cybozu.co.jp/product/schedule.html) * Googleカレンダー * Microsoft Outlook * etc...
### きょうのおはなし * mhcの紹介 * mhcのデモ
### mhcとは? * [mhc](https://www.quickhack.net/mhc/) * "Message Harmonized Calendaring system" * [yoshinari-nomura/mhc](https://github.com/yoshinari-nomura/mhc) * PIMツールのひとつ。 * Rubyで実装されている。 * emacsエディタと連携させた動作も可能。
### 環境構築(その1) FreeBSDでの構築例。 ```shell $ sudo pkg install emacs ruby ruby26-gems $ sudo gem install mhc $ $ mhc init ~/mhc ```
### 環境構築(その2) mhcのemacs用UIのインストール。 ```shell $ mkdir work $ cd work $ git clone https://github.com/yoshinari-nomura/mhc.git $ cp ~/work/mhc/samples/japanese-holidays.mhcc ~/mhc/presets/ ``` `~/.emacs` に以下を追記する。 ```lisp (add-to-list 'load-path (expand-file-name "~/work/mhc/emacs")) (load-file (expand-file-name "~/work/mhc/emacs/mhc.el")) (autoload 'mhc "mhc" "Message Harmonized Calendar system." t) ```
# 動作デモ
### 良く使うコマンド | コマンド | 機能 | | --- | --- | | C-. . | 今日の日付に移動する | | `E` | 予定を新規追加する | | `M` | 既存の予定を修正する | | `>` | 翌月の予定を表示する | | `<` | 前月の予定を表示する |
### データファイルを眺めてみる ```shell $ ls ~/mhc/spool/ 03F62408-CC98-11EA-AE50-C42C031CD19B.mhc DFAA0A99-CC97-11EA-AE50-C42C031CD19B.mhc 62B6CF82-CC98-11EA-AE50-C42C031CD19B.mhc F0449169-CC97-11EA-AE50-C42C031CD19B.mhc B732E151-CC97-11EA-AE50-C42C031CD19B.mhc ```
### データファイル(1件分)の内容 ``` $ cat ~/mhc/spool/B732E151-CC97-11EA-AE50-C42C031CD19B.mhc X-SC-Subject: Co-KoNPILe (ここんぱいる) #6 - 海のような進捗発表会ともくもく懇親会 X-SC-Location: オンライン X-SC-Day: 20200723 X-SC-Time: 13:30-18:00 X-SC-Category: X-SC-Priority: X-SC-Recurrence-Tag: X-SC-Cond: X-SC-Duration: X-SC-Alarm: X-SC-Record-Id: B732E151-CC97-11EA-AE50-C42C031CD19B X-SC-Sequence: 1 https://cokonpile.connpass.com/event/180113/ https://twitter.com/search?q=%23cokonpile ```
### ちょっとした応用例 * `X-SC-*` なヘッダを含んだテキストファイル * `X-SC-Record-Id` の値は `uuidgen` で生成可能 * スクリプト等で予定の追加・編集ができそう😃
### 応用例:Yahoo!天気をmhcに取り込む * 天気の週間予報をmhc上で参照したい。 * Webスクレイピングでデータ取得、mhc登録。 * (実際のデモで試してみる)
### まとめ * mhcの紹介 * emacs上で動作するPIMツール * フォーマットはシンプルなので応用しやすい * 応用例として天気の週間予報の取り込み みなさまもぜひmhcを使ってみてください!😃
### ご清聴ありがとうございました😃