Wyświetlanie wydarzeń w kalendarzu jako tekstu w terminalu


10

Czy w Yosemite można wyświetlać wydarzenia z mojego kalendarza w wierszu poleceń?

Zdaję sobie sprawę z zapasów kalendarzy z zapasami dla jabłek, takich jak święta i takie, / usr / share / calendar / oraz polecenia „calendar”, aby wyświetlić wymienione w nich wydarzenia. Czy istnieje sposób, aby zrobić to samo, ale wyświetlić listę wydarzeń z moich własnych kalendarzy?

Odkryłem, że osobiste kalendarze są przechowywane w ~ / Library / Calendars, ale wszystko, co znalazłem w tym folderze, nie działa z poleceniem „kalendarz”. Istnieje kilka folderów o niejednoznacznych nazwach podobnych do „D4385-GS57-D352-GA248592.calendar”. Niektóre foldery zawierają wiele plików * .ics, które moim zdaniem są wydarzeniami w kalendarzu.


calendarnie działa z plikami * .ics, sprawdź man calendarobsługiwany format pliku. Jestem jednak ciekawy, czy istnieją inne sposoby wyświetlania zawartości kalendarza w czytelnej formie.
nohillside

@patrix Zgadza się. Przeczytałem stronę podręcznika, kiedy dowiedziałem się o tym poleceniu. Nie wiem za dużo o tym, jak działają kalendarze we współczesnym systemie OS X, ale myślę, że pliki * .ics są pozycjami kalendarza. To, o czym wspomniałeś, jest tym, czego szukam, innymi sposobami, aby wyświetlić zawartość kalendarza w formie tekstowej.
mindheavy,

Odpowiedzi:


8

Co powiesz na coś takiego:

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

To polecenie wyświetli wszystkie zdarzenia we wszystkich twoich kalendarzach (łącznie z subskrybowanymi).


1
To świetnie, pracuję teraz nad przewodnikiem dla początkujących, aby dowiedzieć się, jak to działa. Mam nadzieję, że nauczę się wystarczająco, aby filtrować wydarzenia według daty. Idealnie chciałbym móc przekazać polecenie pokazujące wydarzenia na bieżący dzień i może pięć dni poza domem.
mindheavy,

Jeśli pojawia się błąd: xargs: grep: lista argumentów jest za długa Użyj: cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics'do pierwszej części, aż sed.
pegasuspect

9

Powinieneś zajrzeć do icalbuddy http://hasseg.org/icalBuddy/ . Pozwala to skonfigurować dni, które chcesz wydrukować, według daty / kalendarza i wszystkich pól. W rzeczywistości świetnie współdziała z wszelkiego rodzaju kalendarzami (zsynchronizowanymi i nie) i może być używany w terminalu, geektool itp.


Do Twojej wiadomości - iCalBuddy jest świetny, ale zgłoszono tutaj błąd w OS X 10.11: github.com/ali-rantakari/icalBuddy/issues/14
Matt

Od tego czasu wydaje się być naprawiony.
Martin Delille,

8

Lubię używać Homebrew do instalowania wersji icalbuddy, która działa dobrze z OS X 10.11

brew install ical-buddy 

1
Wersja homebrew można teraz znaleźć na stronie: brew install ical-buddy. Uwaga kreska.
Richard Kranendonk,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.