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

18

De vez en cuando puede ser útil agregar algunos recordatorios a Reminders.app desde la línea de comandos, especialmente porque están sincronizados con iCloud. ¿Hay alguna manera de hacerlo?

Una solución que no se basa en AppleScript es preferida : a) por motivos de rendimiento (probablemente tontos) yb) las soluciones de AppleScript a menudo me parecen torpes o demasiado detalladas.

    
pregunta myhd 11.10.2012 - 00:21

5 respuestas

9
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 solo una acción vacía del elemento New Reminders y luego ejecutarlo con automator -i title test.workflow .

Consulte también esta publicación en Mac OS X Hints .

    
respondido por el user495470 11.10.2012 - 02:26
13

Aquí hay otra versión que le permite configurar el título, la fecha de finalización y la hora a través de los argumentos de la 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    

Por lo tanto, si tuviera que llamar a este script "recordatorio" y darle privilegios de ejecución (chmod 755 recordatorio), podría hacer esto:

$ ./remind "Go to grocery store" 12/15/2013 10:00:00PM                              
    
respondido por el renfredxh 07.12.2013 - 02:59
2
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}
    
respondido por el Kalpesh Gamit 07.04.2015 - 11:54
2

Esta es 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);
}
    
respondido por el Tony Lotts 04.01.2018 - 16:23
0

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

enlace

    
respondido por el Brad Parks 28.02.2018 - 17:54

Lea otras preguntas en las etiquetas