Visualizzazione degli eventi del calendario come testo, nel terminale


10

Usando Yosemite, c'è un modo per visualizzare eventi dal mio calendario nella riga di comando?

Sono a conoscenza dei calendari di borsa di Apple per cose come vacanze e simili, / usr / share / calendar / e del comando 'calendar' per visualizzare gli eventi elencati in questi. C'è un modo per fare la stessa cosa ma elencare gli eventi dai miei calendari?

Ho scoperto che i calendari personali sono memorizzati in ~ / Library / Calendars ma tutto ciò che ho trovato all'interno di quella cartella non funziona con il comando 'calendar'. Esistono diverse cartelle con nomi ambigui simili a "D4385-GS57-D352-GA248592.calendar". E alcune cartelle contengono molti file * .ics, che penso siano eventi di calendario.


calendarnon funziona con i file * .ics, consultare man calendaril formato file supportato. Ma sono curioso di sapere se ci sono altri modi per elencare il contenuto del tuo calendario in una forma leggibile.
Nohillside

@patrix Esatto. Ho letto la pagina man quando ho scoperto questo comando. Non so molto su come funzionano i calendari nel moderno OS X, ma penso che i file * .ics siano voci di calendario. Quello che hai menzionato è quello che sto cercando, altri mezzi per elencare i contenuti del calendario in forma di testo.
mindheavy

Risposte:


8

Che ne dici di qualcosa del genere:

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

Questo comando genererà tutti gli eventi in tutti i tuoi calendari (inclusi quelli sottoscritti).


1
Questo è fantastico, sto lavorando attraverso una guida per principianti sed in questo momento per imparare come funziona. Spero di imparare abbastanza per filtrare gli eventi per data. Idealmente, vorrei essere in grado di passare un comando che mostra gli eventi per il giorno corrente e forse cinque giorni fuori.
mindheavy

Se viene visualizzato l'errore: xargs: grep: elenco degli argomenti troppo lungo Utilizzare: cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics'per la prima parte fino a quella di sed.
pegasuspect,

9

Dovresti cercare in icalbuddy http://hasseg.org/icalBuddy/ . Ciò consente di configurare i giorni in cui si desidera stampare, per data / calendario e tutti i campi. In realtà interagisce perfettamente con calendari di tutti i tipi (sincronizzati e non) e può essere utilizzato in terminali, geektool, ecc.


Cordiali saluti - iCalBuddy è fantastico ma c'è un bug con OS X 10.11 riportato qui: github.com/ali-rantakari/icalBuddy/issues/14
Matt

Sembra essere stato risolto da allora.
Martin Delille,

8

Mi piace usare Homebrew per installare una versione di icalbuddy che funzioni bene con OS X 10.11

brew install ical-buddy 

1
Versione Homebrew è ora disponibile all'indirizzo: brew install ical-buddy. Nota il trattino.
Richard Kranendonk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.