Відображення подій календаря як текст у терміналі


10

Використовуючи Yosemite, чи є спосіб відобразити події з мого календаря в командному рядку?

Мені відомо про запаси яблучних запасів яблук для таких речей, як свята та інші, / usr / share / календар / та команду 'календар' для відображення подій, перелічених у них. Чи є спосіб зробити те ж саме, але перерахувати події з моїх власних календарів?

Я виявив, що особисті календарі зберігаються у ~ / Бібліотеці / Календарях, але все, що я знайшов у цій папці, не працює з командою 'календар'. Є кілька папок із неоднозначними назвами, схожими на "D4385-GS57-D352-GA248592.calendar". І деякі папки містять багато файлів * .ics, які, на мою думку, є подіями календаря.


calendarне працює з файлами * .ics, див man calendar. підтримуваний формат файлу. Але мені цікаво, чи є якісь інші способи перерахувати вміст вашого календаря у читаній формі.
nohillside

@patrix Правильно. Я прочитав сторінку man, коли дізнався про цю команду. Я не знаю надто багато про те, як працюють календарі в сучасній ОС X, але я вважаю, що файли * .ics - це записи в календарі. Те, що ви згадали, - це те, що я шукаю, а також інші засоби перерахування вмісту календаря у текстовій формі.
mindheavy

Відповіді:


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
Це чудово, я зараз працюю через посібник для початківців седів, щоб дізнатися, як це працює. Я сподіваюсь навчитися достатньо, щоб фільтрувати події за датою. В ідеалі я хотів би, щоб я міг передати команду, яка показує події за поточний день, а може, і п’ять днів.
mindheavy

Якщо ви отримуєте помилку: xargs: grep: Список аргументів занадто довгий Використання: cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics'для першої частини до sed.
pegasuspect

9

Ви повинні заглянути в icalbuddy http://hasseg.org/icalBuddy/ . Це дозволяє вам налаштувати дні, які потрібно вивести, за датою / календарем та всіма полями. Він насправді чудово взаємодіє з різними календарями (синхронізовані та не) і може використовуватися в терміналі, гекстулі тощо.


FYI - iCalBuddy чудовий, але є помилка з OS X 10.11, про яку повідомлялося тут: github.com/ali-rantakari/icalBuddy/isissue/14
Метт

Здається, це виправлено з того часу.
Мартін Деллі

8

Мені подобається використовувати Homebrew для встановлення версії icalbuddy, яка добре працює з ОС X 10.11

brew install ical-buddy 

1
Homebrew версії тепер можна знайти по адресою: brew install ical-buddy. Зверніть увагу на тире.
Річард Кранедонк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.