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.
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 .
#!/usr/bin/env bash
als 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.tell
ihnen 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
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);
}
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}
Dieses Github-Projekt funktioniert hervorragend und verwendet kein AppleScript. Es ist eine kompilierte XCode-App.
Daniel