Mostrar eventos de calendario como texto, en la terminal


10

Usando Yosemite, ¿hay alguna manera de mostrar eventos de mi calendario en la línea de comando?

Soy consciente de los calendarios de existencias que Apple suministra para cosas como vacaciones y cosas así, / usr / share / calendar / y el comando 'calendar' para mostrar los eventos enumerados en estos. ¿Hay alguna manera de hacer lo mismo pero enumerar eventos de mis propios calendarios?

Descubrí que los calendarios personales se almacenan en ~ / Library / Calendars, pero todo lo que encontré dentro de esa carpeta no funciona con el comando 'calendar'. Hay varias carpetas con nombres ambiguos similares a "D4385-GS57-D352-GA248592.calendar". Y algunas carpetas contienen muchos archivos * .ics, que creo que son eventos de calendario.


calendarno funciona con archivos * .ics, consulte man calendarel formato de archivo compatible. Pero tengo curiosidad por saber si hay otros medios para enumerar el contenido de su calendario de forma legible.
nohillside

@patrix Eso es correcto. Leí la página del manual cuando me enteré de este comando. No sé demasiado sobre cómo funcionan los calendarios en el OS X moderno, pero creo que los archivos * .ics son entradas de calendario. Lo que mencionó es lo que estoy buscando, algún otro medio para enumerar el contenido del calendario en forma de texto.
mindheavy

Respuestas:


8

¿Qué tal algo así?

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

Este comando generará todos los eventos en todos sus calendarios (incluidos los suscritos).


1
Esto es genial, estoy trabajando en una guía de principiantes sed ahora mismo para aprender cómo funciona esto. Espero aprender lo suficiente como para filtrar eventos por fecha. Idealmente, me gustaría poder pasar un comando que muestre eventos para el día actual y tal vez cinco días fuera.
mindheavy

Si obtiene el error: xargs: grep: Lista de argumentos demasiado larga Uso: cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics'para la primera parte hasta sed.
pegasuspect


8

Me gusta usar Homebrew para instalar una versión de icalbuddy que funciona bien con OS X 10.11

brew install ical-buddy 

1
Versión homebrew ahora se puede encontrar en: brew install ical-buddy. Tenga en cuenta el guión.
Richard Kranendonk
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.