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

18

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

Eine Lösung, die sich nicht auf AppleScript stützt, wird bevorzugt : a) aus Leistungsgründen (wahrscheinlich albern) und b) AppleScript-Lösungen fühlen sich für mich oft unbeholfen oder übermäßig ausführlich an.

myhd
quelle
2
Warum bevorzugen Sie es, AppleScript nicht zu verwenden?
Daniel

Antworten:

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

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

Siehe auch diesen Beitrag unter Mac OS X Hinweise .

Lri
quelle
Vielen Dank für Ihre Antwort. Leider kann dies weder in einem Shell-Skript noch im Skript-Editor ausgeführt werden. Was vermisse ich?
Myhd
1
Entweder #!/usr/bin/env bashals erste Zeile hinzufügen und ausführen chmod +x /path/to/scriptoder ausführen bash /path/to/script.sh. Oder entfernen Sie die erste und letzte Zeile und speichern Sie den AppleScript-Editor.
Lri
1
Der Automator-Hinweis hat es geschafft! Im Gegensatz zur AppleScript-Lösung muss die Reminders.app nicht gestartet werden, genau das, was ich wollte.
Myhd
14

In der folgenden Version können Sie Titel, Enddatum und Uhrzeit über Befehlszeilenargumente festlegen.

#!/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 "remind" nennen und ihm Ausführungsberechtigungen zuweisen (chmod 755 remind), können Sie dies tun:

$ ./remind "Go to grocery store" 12/15/2013 10:00:00PM                              
renfredxh
quelle
Das funktioniert bei mir, aber wie kann ich einen Alarm hinzufügen. Auf diese Weise kann ich das Popup-Fenster aktivieren und mich an das Datum und die Uhrzeit der Erinnerung erinnern lassen? So wie es ist, habe ich eine Erinnerung, erhalte aber keine Benachrichtigung.
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}
Kalpesh Gamit
quelle
1
Hallo danke! Dies funktioniert nur auf Systemen, bei denen Englisch die Sprache der Benutzeroberfläche ist. In anderen Sprachen werden die Listennamen lokalisiert, z. B. "Erinnerungen" wird zu "Erinnerungen" auf Deutsch
myhd
Dieses Beispiel veranschaulicht die Verwendung des "Erinnerungsdatums" im Gegensatz zum "Fälligkeitsdatum" oben. Und das "Erinnerungsdatum" ist genau das, was man verwenden möchte, um den Alarm / die Warnung zu erhalten.
Grrrr
2

Hier ist die gleiche Funktionalität wie im 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);
}
Tony Lotts
quelle