Menampilkan acara kalender sebagai teks, di terminal

10

Menggunakan Yosemite, apakah ada cara untuk menampilkan acara dari kalender saya di baris perintah?

Saya mengetahui persediaan kalendar kalender apel untuk hal-hal seperti liburan dan semacamnya, / usr / share / calendar / dan perintah 'kalender' untuk menampilkan acara yang tercantum di sini. Apakah ada cara untuk melakukan hal yang sama tetapi daftar acara dari kalender saya sendiri?

Saya telah menemukan bahwa kalender pribadi disimpan di ~ / Library / Kalender tetapi semua yang saya temukan dalam folder itu tidak berfungsi dengan perintah 'kalender'. Ada beberapa folder dengan nama ambigu mirip dengan "D4385-GS57-D352-GA248592.calendar". Dan beberapa folder berisi banyak file * .ics, yang menurut saya merupakan acara kalender.

mindheavy
sumber
calendartidak bekerja dengan file * .ics, lihat man calendaruntuk format file yang didukung. Tetapi saya ingin tahu apakah ada cara lain untuk membuat daftar isi kalender Anda dalam bentuk yang dapat dibaca.
nohillside
@ patriks Benar. Saya membaca halaman manual ketika saya mengetahui tentang perintah ini. Saya tidak tahu terlalu banyak tentang cara kerja kalender di OS X modern, tapi saya pikir file * .ics adalah entri kalender. Apa yang Anda sebutkan adalah yang saya cari, beberapa cara lain untuk membuat daftar isi kalender dalam bentuk teks.
mindheavy

Jawaban:

8

Bagaimana dengan yang seperti itu:

$ 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
...

Perintah ini akan menampilkan semua acara di semua kalender Anda (termasuk yang berlangganan).

jherran
sumber
1
Ini luar biasa, saya sedang mengerjakan panduan pemula pemula sekarang untuk mempelajari cara kerjanya. Saya berharap cukup belajar untuk menyaring acara berdasarkan tanggal. Idealnya saya ingin dapat memberikan perintah yang menunjukkan acara untuk hari ini dan mungkin lima hari.
mindheavy
Jika Anda mendapatkan kesalahan: xargs: grep: Daftar argumen terlalu panjang Gunakan: cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics'untuk bagian pertama sampai sed.
pegasuspect
9

Anda harus melihat ke dalam icalbuddy http://hasseg.org/icalBuddy/ . Ini memungkinkan Anda mengonfigurasi hari apa yang ingin Anda hasilkan, berdasarkan tanggal / kalender dan semua bidang. Ini benar-benar berinteraksi dengan kalender dari semua jenis (disinkronkan dan tidak) dan dapat digunakan di terminal, geektool, dll.

Clayton C.
sumber
FYI - iCalBuddy hebat tetapi ada bug dengan OS X 10.11 yang dilaporkan di sini: github.com/ali-rantakari/icalBuddy/issues/14
Matt
Tampaknya sudah diperbaiki sejak saat itu.
Martin Delille
8

Saya suka menggunakan Homebrew untuk menginstal versi icalbuddy yang berfungsi baik dengan OS X 10.11

brew install ical-buddy 
Fischmuetze
sumber
1
Versi Homebrew sekarang dapat ditemukan di: brew install ical-buddy. Perhatikan tanda hubung.
Richard Kranendonk