端末でカレンダーイベントをテキストとして表示する


10

ヨセミテを使用して、コマンドラインでカレンダーのイベントを表示する方法はありますか?

Appleが休日などに提供する在庫カレンダー、/ usr / share / calendar /、およびこれらにリストされているイベントを表示するためのコマンド「calendar」を知っています。同じことをする方法はありますが、自分のカレンダーからのイベントをリストしますか?

個人のカレンダーは〜/ Library / Calendarsに保存されていることがわかりましたが、そのフォルダー内で見つけたすべてのものが 'calendar'コマンドで機能しません。「D4385-GS57-D352-GA248592.calendar」のようなあいまいな名前のフォルダーがいくつかあります。そして、いくつかのフォルダには、カレンダーのイベントであると思う* .icsファイルがたくさん含まれています。


calendar* .icsファイルでは機能しませんman calendar。サポートされているファイル形式については、を参照してください。しかし、私はあなたのカレンダーの内容を読みやすい形でリストする他の方法があるかどうか知りたいです。
ノーヒルサイド

@patrixそうです。このコマンドについて知ったときに、manページを読みました。最近のOS Xでカレンダーがどのように機能するかについてはあまり知りませんが、*。icsファイルはカレンダーエントリだと思います。あなたが言ったことは私が探しているものであり、カレンダーの内容をテキスト形式でリストする他のいくつかの手段です。
mindheavy 2014

回答:


8

そのようなものはどうですか:

$ find ~/Library/Calendars -name "*.ics" |
      xargs grep -h -e "SUMMARY" -e "DTSTAMP" |
      sed -E 's/^[A-Z].*:(.*$)/\1/g' |
      sed -E 's/^([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2}).*$/\1-\2-\3 \4:\5:\6/g'
Fists Birthday
2014-05-16 05:44:20
Secons Birthday
2014-07-26 09:58:49
Thirds Birthday
2014-05-16 05:44:20
...

このコマンドは、すべてのカレンダー(サブスクライブされたものを含む)のすべてのイベントを出力します。


1
これはすばらしいことです。私は現在、sed初心者向けガイドを使用して、これがどのように機能するかを学習しています。イベントを日付でフィルタリングするのに十分なことを学びたいと思います。理想的には、当日のイベントとおそらく5日間のイベントを表示するコマンドを渡したいと思います。
mindheavy 14

エラーが発生する場合:xargs:grep:引数リストが長すぎます:cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics'最初の部分はsedになるまで使用します。
pegasuspect

9

icalbuddy http://hasseg.org/icalBuddy/を調べる必要があります。これにより、日付/カレンダーおよびすべてのフィールドによって、出力する曜日を構成できます。実際には、あらゆる種類のカレンダー(同期されているものとされていないもの)とうまく相互作用し、ターミナルやgeektoolなどで使用できます。


FYI-iCalBuddyは素晴らしいですが、OS X 10.11にバグが報告されています:github.com/ali-rantakari/icalBuddy/issues/14
Matt

それ以来修正されているようです。
Martin Delille、

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.