14 votos

Mostrar los eventos del calendario como texto, en el terminal

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

Conozco los calendarios de stock que apple proporciona para cosas como vacaciones y cosas así, /usr/share/calendar/ y el comando 'calendar' para mostrar los eventos listados en ellos. ¿Hay alguna forma de hacer lo mismo pero mostrando los eventos de mis propios calendarios?

He descubierto que los calendarios personales se almacenan en ~/Library/Calendars pero todo lo que he encontrado 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.

0 votos

calendar no funciona con archivos *.ics, véase man calendar para el formato de archivo compatible. Pero tengo curiosidad por saber si existen otros medios para listar el contenido de su calendario de forma legible.

0 votos

@patrix Así es. Leí la página man cuando me enteré de la existencia 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 mencionas es lo que estoy buscando, algún otro medio para listar el contenido del calendario en forma de texto.

14voto

Kelly Puntos 31

Me gusta utilizar Elaboración casera 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 utilizar para obtener listas de eventos y tareas pendientes de la base de datos de calendarios de OS X (la misma que utiliza iCal). iCal utiliza).

1 votos

La versión homebrew puede encontrarse ahora en: brew install ical-buddy . Fíjate en el guión.

1 votos

Excelente, necesitaba los títulos de todos mis eventos de mañana, que es este: icalBuddy -eep '*' -nc 'eventsToday+1'

10voto

Clayton C. Puntos 11

Deberías echar un vistazo a icalbuddy http://hasseg.org/icalBuddy/ . Te permite configurar qué días quieres que salgan, por fecha/calendario y todos los campos. En realidad interactúa muy bien con los calendarios de todo tipo (sincronizados y no) y se puede utilizar en el terminal, geektool, etc.

0 votos

Para tu información, iCalBuddy es estupendo, pero existe un error con OS X 10.11 del que se informa aquí: github.com/ali-rantakari/icalBuddy/issues/14

1 votos

Parece que se ha arreglado desde entonces.

9voto

jherran Puntos 6511

¿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 mostrará todos los eventos de todos sus calendarios (incluidos los suscritos).

1 votos

Esto es genial, estoy trabajando a través de una guía para principiantes sed ahora mismo para aprender cómo funciona esto. Espero aprender lo suficiente como para filtrar eventos por fecha. Idealmente, me gustaría ser capaz de pasar un comando que muestra los eventos para el día actual y tal vez cinco días.

0 votos

Si recibe un error: xargs: grep: Lista de argumentos demasiado larga Úsalo: cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics' para la primera parte hasta la de Sed.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X