calendar-cli - Googleカレンダーを操作するためのコマンドライン・インターフェース
Google カレンダーをコマンドラインで操作するニーズがあったので、元々あったスクリプトを CLI として作り変えた。
これを使えば、コマンドラインで
- 1日単位のサマリーの表示
- 予定の登録
が、できる。
コード
セットアップ
Google の API を使う都合上、導入までに少し手間がかかる。
1. API プロジェクトの作成とclient_secret.json の入手
- Google Developers Console を開く (要Googleアカウントのログイン)
- 新規プロジェクトを作成
- Calendar API を有効化
- API と認証 -> API -> Google Apps API -> Calendar API -> API を有効にする
- OAuth 2.0 認証のクライアントを作成 (デバイス種別は Other)
- API と認証 -> 認証情報 -> OAuth 同意画面 -> サービス名 (calendar-cli でよい) を入力し保存
- API と認証 -> 認証情報 -> 認証情報を追加 -> OAuth 2.0 クライアント ID
-> アプリケーションの種類: その他として保存
- 画面から client_secret.json をダウンロードし保存
- 実際のファイル名はもっと長い可能性あり
2. calendar-cli のインストール
pip で導入可能。環境によっては要sudo。
$ pip install calendar-cli $ calendar-cli --version calendar-cli 0.1.3 $ calendar-cli -h Usage: calendar-cli [options] Print a summary of events on the calendar. calendar-cli setup [--read-only --credential ] Generate a credentials file from the client secret. You need a web browser to proceed. calendar-cli create [--date <YYYYMMDD> --start <HHMM> --end <HHMM> --credential <credential_path>] <summary> Create an event onto the calendar. Options: --version show program's version number and exit -h, --help show this help message and exit --calendar=CALENDAR set calendar id to CALENDAR (default:primary) --date=YYYYMMDD set date to YYYYMMDD in the setup/create command (default:today) --credential=CREDENTIAL set credential path to CREDENTIAL (default:/Users/user/.credentials/calendar-cli.json) --read-only create a read-only credential file in the setup command (default: False) --start=HHMM set start time in the create command --end=HHMM set end time in the create command --debug enable debug logging (default: False)
3. 認証用ファイルの作成
calendar-cli でセットアップ用のコマンドを用意した。
client_secret.json の部分は、手順1でダウンロードした適切なパスに書き換えること。
$ calendar-cli setup client_secret.json
一度ブラウザ上で OAuth 認証が行われた後、~/.credentials/calendar-cli.json として認証情報が保存される。
使い方
1. サマリーの表示
- 今日の予定を表示 (デフォルトのカレンダー)
$ calendar-cli
- 指定した日の予定を表示 (デフォルトのカレンダー)
$ calendar-cli --date 12/6
日付として指定可能なフォーマットは以下。年を省略すると現在の年で補完される。- 20151206 (YYYYmmdd)
- 2015-12-6, 2015-12-06 (YYYY-m-d)
- 2015/12/6, 2015/12/06 (YYYY/m/d)
- 12-6-2015, 12-06-2015 (m-d-YYYY)
- 12/6/2015, 12/06/2015 (m/d/YYYY)
- 12-6, 12-06 (m-d)
- 12/6, 12/06 (m/d)
- 指定したカレンダーの今日の予定を表示
$ calendar-cli --calendar xxxxxx@group.calendar.google.com [終日] 有給休暇 (James LaBrie) [11:00-12:00] ○○様来社 (John Petrucci) [14:00-15:00] [外出] △△訪問 (John Myung) [17:30-22:00] □□勉強会 (Jordan Rudess) [17:30-23:00] ☆☆飲み会 (Mike Mangini)
2. イベントの登録
- 当日または翌日の 10:30 に 15分のイベントを作成
$ calendar-cli create --start 10:30 内容 イベントを作成しました: 2015-11-02 月 [10:30-10:45] 内容
現在時刻が 10:30 以前であれば当日、以降であれば翌日にイベントが作成される。
時刻指定のフォーマットは以下。- 1030 (HHMM)
- 9:30, 09:30 (H:M)
- 当日または翌日に 12:00-13:00 のイベントを作成
$ calendar-cli create --start 12:00 --end 13:00 内容 イベントを作成しました: 2015-11-02 月 [12:00-13:00] 内容
現在時刻が 12:00 以前であれば当日、以降であれば翌日にイベントが作成される。 - 日付を指定してイベントを作成
$ calendar-cli create --date 12/6 --start 12:00 --end 13:00 内容 イベントを作成しました: 2015-12-06 日 [12:00-13:00] 内容
--date オプションのフォーマットはサマリー表示と同じ。 - 終日イベントを作成
$ calendar-cli create --date 12/12 内容 イベントを作成しました: 2015-12-12 土 [終日] 内容
0 件のコメント:
コメントを投稿