Visualización de eventos de calendario como texto, en la terminal

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

Soy consciente de los calendarios de stock que Apple proporciona para cosas como días festivos y demás, /usr/share/calendar/ y el comando 'calendar' para mostrar los eventos enumerados en estos. ¿Hay alguna manera de hacer lo mismo pero enumerar los 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 'calendario'. 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 en una forma legible.
@patrix Así es. Leí la página de manual cuando me enteré de este comando. No sé mucho sobre cómo funcionan los calendarios en OS X moderno, pero creo que los archivos *.ics son entradas de calendario. Lo que mencionaste es lo que estoy buscando, algún otro medio para enumerar los contenidos del calendario en forma de texto.

Respuestas (3)

¿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'
Fist’s Birthday
2014-05-16 05:44:20
Secon’s Birthday
2014-07-26 09:58:49
Third’s Birthday
2014-05-16 05:44:20
...

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

Esto es genial, estoy trabajando en una guía para principiantes de sed en este momento para aprender cómo funciona. Espero aprender lo suficiente para filtrar eventos por fecha. Idealmente, me gustaría poder pasar un comando que muestre eventos para el día actual y quizás dentro de cinco días.
Si recibe un error: xargs: grep: la lista de argumentos es demasiado larga Use: cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics'para la primera parte hasta la de sed.

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

brew install ical-buddy 

de hasseg.org/icalBuddy/

icalBuddy es una utilidad de línea de comandos que se puede usar para obtener listas de eventos y tareas/tareas pendientes de la base de datos del calendario de OS X (la misma que usa iCal).

La versión Homebrew ahora se puede encontrar en: brew install ical-buddy. Tenga en cuenta el guión.
Excelente, necesitaba los títulos de todos mis eventos de mañana, que es este:icalBuddy -eep '*' -nc 'eventsToday+1'

Debería consultar icalbuddy http://hasseg.org/icalBuddy/ . Esto le permite configurar qué días desea generar, por fecha/calendario y todos los campos. De hecho, interactúa muy bien con calendarios de todo tipo (sincronizados o no) y se puede usar en terminales, geektool, etc.

FYI: iCalBuddy es excelente, pero hay un error con OS X 10.11 informado aquí: github.com/ali-rantakari/icalBuddy/issues/14
Parece estar arreglado desde entonces.