コマンドラインからリマインダーを追加するにはどうすればよいですか?


18

コマンドラインからReminders.appにリマインダーを追加すると便利な場合があります-特にiCloudに同期されているためです。そうする方法はありますか?

AppleScriptに依存しないソリューションが推奨されます。a )パフォーマンス上の理由(おそらくばかげていること)およびb)AppleScriptソリューションは、私にとって不器用または過度に冗長であると感じることがよくあります。


2
AppleScriptを使用したくないのはなぜですか?
ダニエル

回答:


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

また、空の[新しいアラームアイテム]アクションのみでAutomatorワークフローを作成し、で実行することもできますautomator -i title test.workflow

Mac OS Xヒントのこの投稿も参照してください。


ご回答ありがとうございます。残念ながら、これはシェルスクリプトでもスクリプトエディターでも実行されません。私は何が欠けていますか?
myhd

1
#!/usr/bin/env bash最初の行として追加して実行するchmod +x /path/to/scriptか、実行しbash /path/to/script.shます。または、最初と最後の行を削除して、AppleScript Editorを保存します。
Lri

1
Automatorヒントがトリックを行いました!AppleScriptソリューションとは対照的に、Reminders.appを起動する必要はありません。これはまさに私が望んでいたものです。
myhd

14

コマンドライン引数を使用してタイトル、終了日時を設定できる別のバージョンがあります。

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

したがって、このスクリプトに「リマインド」という名前を付けて実行権限を付与する場合(chmod 755リマインド)、次のようにできます。

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

これでうまくいきますが、どうすればアラームを追加できますか。それはどのようにして実際にポップアップさせ、リマインダーの日付と時間に私に思い出させることができますか?現状では、リマインダーはありますが、通知は受け取りません。
-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
ありがとね!これは、英語がユーザーインターフェイス言語であるシステムでのみ機能します。他の言語では、リスト名はローカライズされています。たとえば、「Reminders」はドイツ語で「Erinnerungen」になります
-myhd

この例は、上記の「期日」ではなく「日付を思い出させる」の使用を実際に示しています。また、「日付を通知する」は、まさにアラーム/アラートを取得するために使用したいものです。
-Grrrr

2

上記のAppleScriptと同じ機能があります。ただし、ESXを使用するJXAでは。

#!/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);
}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.