Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

New reminder from any application System 10.8
I like the new reminders app in 10.8, but I was disappointed to find that there is no way to create new reminders from outside the app (like, e.g., OmniFocus, which has a quick entry window that can be summoned with a keyboard shortcut). I created a service in Automator that allows such entry, albeit with limited functionality.

Create a new service in Automator and choose Service receives no input in any application at the top of the window. Next, in the Text library, choose Ask for Text and drag it to the right-hand part of the Automator window. Enter a prompt, such as "Enter a Reminder." Finally, from the Mail library, choose New Reminders Item and drag that below the Ask for Text item.

Save the service, and use the Services tab in the Keyboard preference pane of System Preferences to add a shortcut that will let you launch this from within any application.

This only allows you to set new reminders in a single list, with a single priority, and with no due date (unless you want everything due on the same day), but it's better than nothing. One more caveat: it's slightly unreliable, because some programs interfere with the Services menu or don't accept Services.
    •    
  • Currently 3.00 / 5
  You rated: 1 / 5 (6 votes cast)
 
[7,705 views]  

New reminder from any application | 6 comments | Create New Account
Click here to return to the 'New reminder from any application' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
New reminder from any application
Authored by: Snaro on Aug 15, '12 08:52:20AM
For some strange reasons – most probably backwards compatibility – you can create Reminders through the Calendar app using AppleScript, not through the Reminders app. Here is an example:

tell application "Calendar"
	set newTodo to make new todo with properties {summary:"Test", description:"Testing the test"} at the end of todos of calendar "Work" -- replace Work with the name of the target calendar
end tell
This way, you may also set a due date, completion date, priority and an URL.

[ Reply to This | # ]
New reminder from any application
Authored by: Sesquipedalian on Aug 15, '12 09:29:14AM

Skip the "Ask for Text" action. Instead, just add the "New Reminders Item" action to the workflow, click the Options button at the bottom of the action, and check the box to "Show this action when the workflow runs". Now you can specify all the information as you see fit when you run the service.



[ Reply to This | # ]
New reminder from any application
Authored by: Lri on Aug 15, '12 09:32:43AM

There's several problems with assigning shortcuts to services:

  • There's a bug where the shortcuts don't always work until the services menu has been shown from the menu bar
  • Shortcuts for services don't work when the frontmost application doesn't have a menu bar or a services menu
  • There's a small (0.1 - 0.5 s) delay before services are run

The best way to speed up adding tasks would probably be to add a shortcut for opening Reminders (but not with Automator).



[ Reply to This | # ]
New reminder from any application
Authored by: philostein on Aug 15, '12 03:43:05PM

This is a great hint for quickly making Reminders.

Reminders is also fully AppleScriptable. However, one really useful feature that scripting (or Automator, which I reckon uses the same scripting code), lacks is natural speech recognition.

Type 'Tea tomorrow at 3pm' into a script or service, and you get a literal string with no 'remind me' date. Type it into Reminders, and you get 'Tea', with a remind me date of tomorrow 3pm. A lot faster, but this removes the ability to make a Reminder from anywhere.

As a compromise, Create a new service, drag the 'Run AppleScript' action into the pane, and paste in this code:

--

try
tell application "Reminders"
activate
show list "Reminders"
end tell

delay 0.1
tell application "System Events" to keystroke "n" using command down

on error a number b
display dialog a
end try

--

Change the "Reminder" list name to your preferred list, and alter the 'delay 0.1' if it's too fast. Save, and assign a key shortcut as described in the hint.

*Speed Bonus* Activate Dictation and say 'Tea tomorrow at 3pm'. Works for me almost every time! :)

Not created anywhere, but started anywhere, and with the bonus of instant confirmation of the created reminder with its remind me date.







[ Reply to This | # ]
New reminder from any application
Authored by: theboyler on Aug 16, '12 06:56:23AM
I have a list called 'shopping' which I enter, well, my shopping. I made a script to creates a text box and adds the result to a list in Reminders.app called 'shopping', and then unless a specific button is clicked to say its the last item, it reopens to add another item. You can set the name of the list to whatever you want by amending the script.
property thetext : ""
property thebutton : ""
set thelist to "shopping" -- amend this to whatever list you wish

getitem()
repeat until thebutton is not "More…"
	getitem()
end repeat

on getitem()
	set thetext to ""
	set thebutton to ""
	set thebox to display dialog "Shopping Item:" default answer "" buttons {"More…", "Last Item", "Cancel"} default button {"More…"} giving up after 60
	set thetext to text returned of thebox
	set thebutton to button returned of thebox
	if thebutton is "Cancel" or thebutton is "" or thetext is "" then return
	tell application "Reminders" to tell list thelist of default account to make new reminder with properties {name:thetext}
	return thebutton
end get item


[ Reply to This | # ]
New reminder from any application
Authored by: hdrapin on Oct 17, '12 04:35:56AM
there is a little issue with the variable "theist" which should be use like this : property thetext : ""
property thebutton : ""
getitem()

repeat until thebutton is not "More…"
getitem()
end repeat

on getitem()
set thelist to "Courses"
set thetext to ""
set thebutton to ""
set thebox to display dialog "Shopping Item:" default answer "" buttons {"More…", "Last Item", "Cancel"} default button {"More…"} giving up after 60
set thetext to text returned of thebox
set thebutton to button returned of thebox
if thebutton is "Cancel" or thebutton is "" or thetext is "" then return
tell application "Reminders" to tell list thelist of default account to make new reminder with properties {name:thetext}
return thebutton
end getitem


[ Reply to This | # ]