Wie kann ich Erinnerungen über die Befehlszeile hinzufügen?

Hin und wieder kann es nützlich sein, Reminders.app einige Erinnerungen über die Befehlszeile hinzuzufügen – insbesondere, weil sie mit iCloud synchronisiert werden. Gibt es eine Möglichkeit, dies zu tun?

Eine Lösung, die nicht auf AppleScript angewiesen ist, wird bevorzugt : a) aus Leistungsgründen (wahrscheinlich albern) und b) AppleScript-Lösungen erscheinen mir oft ungeschickt oder übermäßig ausführlich.

Warum verwenden Sie AppleScript lieber nicht?

Antworten (5)

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

Sie könnten auch einen Automator-Workflow mit nur einer leeren Aktion „Neues Erinnerungselement“ erstellen und ihn dann mit ausführen automator -i title test.workflow.

Siehe auch diesen Beitrag unter Mac OS X Hints .

Vielen Dank für Ihre Antwort. Leider läuft dies weder in einem Shell-Skript noch im Skript-Editor. Was vermisse ich?
Fügen Sie entweder #!/usr/bin/env bashals erste Zeile hinzu und führen Sie sie aus chmod +x /path/to/script, oder führen Sie sie aus bash /path/to/script.sh. Oder entfernen Sie die erste und letzte Zeile und speichern Sie den AppleScript Editor.
Der Automator-Hinweis hat es geschafft! Im Gegensatz zur AppleScript-Lösung muss die Reminders.app nicht gestartet werden, was genau das war, was ich wollte.
Wo finde ich einige Dokumente zu den unterstützten Anwendungen und was kann ich tellihnen bieten?

Hier ist eine andere Version, mit der Sie den Titel, das Enddatum und die Uhrzeit über Befehlszeilenargumente festlegen können.

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

Wenn Sie dieses Skript also "erinnern" nennen und ihm Ausführungsrechte geben (chmod 755 erinnerung), könnten Sie Folgendes tun:

$ ./remind "Go to grocery store" 12/15/2013 10:00:00PM                              
Das funktioniert für mich, aber wie kann ich einen Alarm hinzufügen. Wie kann ich es tatsächlich einblenden lassen und mich an Datum und Uhrzeit der Erinnerung erinnern? So habe ich eine Erinnerung, erhalte aber keine Benachrichtigung.

Hier ist die gleiche Funktionalität wie beim obigen AppleScript; aber in JXA mit 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);
}
Wo finde ich einige Dokumente zu den unterstützten Anwendungen und Methoden?
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}
Hallo danke! Dies funktioniert nur auf Systemen, auf denen Englisch die Sprache der Benutzeroberfläche ist. In anderen Sprachen werden die Listennamen lokalisiert, z. B. wird aus „Erinnerungen“ auf Deutsch „Erinnerungen“.
Dieses Beispiel veranschaulicht tatsächlich die Verwendung des „Erinnerungsdatums“ im Gegensatz zum obigen „Fälligkeitsdatum“. Und das "Datum erinnern" ist genau das, was man verwenden möchte, um den Alarm / die Warnung zu erhalten.

Dieses Github-Projekt funktioniert hervorragend und verwendet kein AppleScript. Es ist eine kompilierte XCode-App.

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