21 votos

¿Cómo puedo añadir recordatorios a través de la línea de comandos?

De vez en cuando puede ser útil añadir algunos recordatorios a Reminders.app desde la línea de comandos, especialmente porque se sincronizan con iCloud. Hay alguna manera de hacerlo?

Una solución que no depende de AppleScript es preferido a) por razones de rendimiento (probablemente una tontería) y b) las soluciones de AppleScript a menudo me parecen torpes o demasiado ampulosas.

2 votos

¿Por qué prefiere no utilizar AppleScript?

17voto

renfredxh Puntos 71

Aquí hay otra versión que permite establecer el título, la fecha de finalización y la hora mediante argumentos de línea de comandos.

#!/usr/bin/env bash                                                                                                               
# Make a new reminder via terminal script                                                                                         
# args: remind <title> <date> <time>                                                                                                                                                                                 

osascript - "$1" "$2" "$3" <<END                                                                                                        
on run argv                                                                                                                       
    set stringedAll to date (item 2 of argv & " " & item 3 of argv)                                                               
    tell application "Reminders"                                                                                                  
        make new reminder with properties {name:item 1 of argv, due date:stringedAll}                                             
    end tell                                                                                                                      
end run                                                                                                                           
END    

Así que si nombras este script "remind" y le das privilegios de ejecución (chmod 755 remind), podrías hacer esto:

$ ./remind "Go to grocery store" 12/15/2013 10:00:00PM

0 votos

Esto me funciona, pero cómo puedo añadir una alarma. Es decir, ¿cómo puedo hacer que aparezca y me recuerde la fecha y la hora del recordatorio? Tal como está, tengo un recordatorio, pero no recibo una notificación.

9voto

Fuzzy Purple Monkey Puntos 702
osascript - title <<END
on run a
tell app "Reminders"
tell list "Reminders" of default account
make new reminder with properties {name:item 1 of a}
end
end
end
END

También puede crear un flujo de trabajo de Automator con una acción vacía de Nuevo elemento de recordatorio y luego ejecutarla con automator -i title test.workflow .

Ver también este post en Mac OS X Hints .

0 votos

Gracias por su respuesta. Lamentablemente, esto no se ejecuta ni en el shell script ni en el editor script. ¿Qué es lo que me falta?

1 votos

O bien añadir #!/usr/bin/env bash como primera línea y ejecutar chmod +x /path/to/script , o ejecutar bash /path/to/script.sh . O elimine la primera y la última línea y guárdelo en el Editor de AppleScript.

1 votos

La sugerencia de Automator ha funcionado. A diferencia de la solución de AppleScript no necesita lanzar la aplicación Reminders.app, que es exactamente lo que quería.

5voto

agarman Puntos 108

Aquí está la misma funcionalidad que el AppleScript anterior; pero en JXA con ES6.

#!/usr/bin/env osascript -l JavaScript

const RemindersApp = Application('Reminders');

function run(argv) {
    [name, date, time] = argv;
    dueDate = new Date(date + " " + time);
    reminder = RemindersApp.Reminder({name: name, dueDate: dueDate});
    RemindersApp.defaultList.reminders.push(reminder);
}

2voto

Kalpesh Gamit Puntos 101
tell application "Reminders"
    activate
    show list "Reminders"
end tell
set stringedDate to "12/11/2015"
set stringedHour to "10:00:00PM"
set stringedAll to date (stringedDate & " " & stringedHour)
tell application "Reminders" to tell list "Reminders" of default account to make new reminder with properties {name:"this is just test remainder", remind me date:stringedAll, due date:stringedAll, priority:1}

1 votos

Hola, ¡gracias! Esto sólo funciona en los sistemas en los que Inglés es el lenguaje de la interfaz de usuario. En otros idiomas, los nombres de las listas se localizan, por ejemplo, "Reminders" se convierte en "Erinnerungen" en alemán

0 votos

Este ejemplo ilustra en realidad el uso del "recuérdame la fecha" en contraposición a la "fecha de vencimiento" anterior. Y la "fecha de recordatorio" es exactamente lo que uno quiere usar para obtener la alarma/alerta.

2voto

NotVonKaiser Puntos 129

Este proyecto de github funciona muy bien, y no utiliza AppleScript. Es una aplicación XCode compilada.

https://github.com/keith/reminders-cli

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