Come posso aggiungere promemoria dalla riga di comando?


18

Di tanto in tanto può essere utile aggiungere alcuni promemoria a Reminders.app dalla riga di comando, soprattutto perché sono sincronizzati con iCloud. C'è un modo per farlo?

Una soluzione che non si basa su AppleScript è preferita : a) per motivi di prestazioni (probabilmente stupide) eb) le soluzioni AppleScript spesso mi sembrano goffe o eccessivamente dettagliate.


2
Perché preferisci non usare AppleScript?
Daniel

Risposte:


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

È inoltre possibile creare un flusso di lavoro di Automator con solo un'azione Nuovo elemento promemoria vuota e quindi eseguirlo automator -i title test.workflow.

Vedi anche questo post in Mac OS X Hints .


La ringrazio per la risposta. Sfortunatamente, questo non viene eseguito né in uno script di shell né in Script Editor. Cosa mi sto perdendo?
myhd,

1
Aggiungi #!/usr/bin/env bashcome prima riga ed esegui chmod +x /path/to/scriptoppure esegui bash /path/to/script.sh. Oppure rimuovi la prima e l'ultima riga e salvala AppleScript Editor.
Lri,

1
Il suggerimento di Automator ha funzionato! A differenza della soluzione AppleScript, non è necessario avviare Reminders.app, che è esattamente quello che volevo.
myhd,

14

Ecco un'altra versione che ti consente di impostare il titolo, la data e l'ora di fine tramite argomenti della riga di comando.

#!/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    

Quindi, se dovessi nominare questo script "ricordare" e dargli i privilegi di esecuzione (chmod 755 ricordare), potresti fare questo:

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

Questo funziona per me, ma come posso aggiungere un allarme. Ecco come posso renderlo effettivamente popup e ricordarmi la data e l'ora del promemoria? Così com'è, ho un promemoria, ma non ricevo una notifica.
GrouchyGaijin,

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}

1
Ciao grazie! Questo funziona solo su sistemi in cui l' inglese è la lingua dell'interfaccia utente. In altre lingue, a i nomi dell'elenco sono localizzati, ad esempio "Promemoria" diventa "Erinnerungen" in tedesco
myhd

Questo esempio in realtà illustra l'uso della "data di sollecito" in contrapposizione alla "data di scadenza" sopra. E il "ricordami data" è esattamente ciò che si desidera utilizzare per ottenere l'allarme / avviso.
Grrrr,

2

Ecco le stesse funzionalità del precedente AppleScript; ma in 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);
}

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.