11.02.2015

calendar-cli - Command-line Interface for Google Calendar

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 をダウンロードし保存
    • 実際のファイル名はもっと長い可能性あり

認証情報 calendar cli

 

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 土 [終日] 内容

 

Related Posts

0 件のコメント:

コメントを投稿