In this article, I will demonstrate how to use Apple Script and Automator to create reminders in Apple Mail and any other application via a shortcut. I have tested the described technique works in OS X 10.9 Mavericks and macOS 11.4 Big Sur and all releases in between.
How to create reminders in Apple Mail
One feature I sorely miss in Apple’s Mail is the ability to flag an email for follow-up quickly and set a reminder or follow-up date. Microsoft Outlook 2011 has that ability, but I prefer to keep my workflows as streamlined as possible and that includes using Apple’s Reminders and Mail.
You can flag emails in Mail, and the flags synchronize via iCloud to iOS, but unfortunately, you can’t set a reminder or follow-up dates, and flagged emails on iOS only show in the “Flagged” mailbox if you leave them in their respective Inbox.
I keep a clean inbox and usually move every email that I have either processed or that requires me to wait for someone else before I can further process it into an archive mailbox.
So none of my flagged emails show in the Flagged mailbox on iOS. That makes flagging alone less useful as it already is due to lack of integration with Reminders.
A manual workaround for me has been to flag emails in Mail and then drag and drop them into one of my Reminders lists. There I can set a reminder date and check it off as complete when I’m done. Dragging an email into Reminders also conveniently adds a link to the email in Mail. This approach has worked well, but it still requires more manual interaction than I like.
Apple Script and Automator
So I was googling for alternatives and finally decided to approach the problem via AppleScript. I did some software development in the past but my programming skills are about on the same level as my handyman skills, and my wife can attest to how bad they are.
Nevertheless, after some research and trial and error, I managed to put together a script that, when triggered (via a keyboard shortcut or click on the service menu) creates an entry in Reminders and sets a remind me date based on user input.
It also flags the email in Mail. When running against an email whose subject matches an existing reminder, it asks if it should mark the reminder as complete and if so, does it and also unflags the email in Mail.
You can download the complete script from here.
Create a service in Automator
To trigger the script conveniently you want to save it as a Service and to do so, open Automator (a utility that ships with macOS) and select Service.
Next, search for AppleScript in the search bar and drag it onto the area on the right side. Select “no input” and “Mail” in the drop-down boxes.
Delete all the code in the AppleScript box on the right and paste the code of my script.
Make sure to change the following lines to reflect your account names in Mail and list names in Reminders. If you have only a single email account and Reminders list, just set both pairs to the same value. For example, iWorkAccountName = PersonalAccountName = iCloud and the same for *RemindersList.
WorkAccountName to "Exchange"
WorkRemindersList to "Work"
PersonalAccountName to "iCloud"
PersonalRemindersList to "Personal"
Additionally, you may want to change the flag color the script uses. I have seven flag colors in Mail, and #6 is Purple. Since the index in AppleScript starts counting at 0 instead of 1, I set FlagIndex to 5 below.
set FlagIndex to 5
If your system language is not set to English, you may also have to change the following line of the code:
#default list name in Reminders
set RemindersList to "Reminders"
Apple translates the term “Reminders” into the system language. For example, on a Dutch system, you would have to change Reminders to Herinneringen. Thanks to Gideon, one of my readers, for this tip!
Then click the “hammer” icon to compile the script and to make sure there are no syntax errors.
Finally, save the service script (Cmd + s) and give it any name you want. I called mine “Create reminder from email.”
How to use the service in Apple Mail
Now you may have to restart Mail to see the service under Mail -> Services -> Create reminder from email.
To test the script select an email and go to Mail -> Services -> Create reminder from email. You should see a dialog appearing like the one in the screenshot before. Once you have selected the preferred follow-up time, a reminder will be created, and the email will be flagged.
If you know AppleScript, you can quickly change the follow-up time choices.
If you run the script again on the same email the following dialog appears and allows you to mark the reminder as complete:
Last but not least you may want to add a keyboard shortcut, so you don’t have to go through Mail -> Services -> Create reminder from email all the time. To do so go to Mail -> Services -> Service Preferences and scroll down to General. Select the service you just created and assign a keyboard shortcut. In my case, I decided to use Cmd + Ctrl + R.
From now on pressing that key combination triggers the script. One thing I have noticed is that running the script in the AppleScript Editor is significantly faster than running it as a service.
Suppress privacy pop up
When you first run the service out of Mail, you may get a pop-up (depending on your version of macOS) asking if you allow Mail access to your Reminders. You have to say yes because otherwise, the script won’t run as indicated by one of my readers (thanks, Christian).
In case you haven’t said yes, or you don’t remember, you can verify if Mail has access to Reminders via System Preferences –> Security & Privacy –> Privacy –> Reminders. Make sure Mail is there and checked. You may have to click on the lock icon in the lower left corner to make changes.
How to create reminders from any application via a global shortcut
Let’s apply what we have learned above to develop a simple script that allows us to create a reminder via a global keyboard shortcut from any application.
The advantage of a global shortcut
As a global shortcut, as the name implies, can be invoked from anywhere, no matter what application you are in.
You can download the complete script from here.
Step by Step Instructions
Adding a Service using Automator and assigning it a global keyboard shortcut is simple. Here are the steps involved:
- Launch Automator
- Create a New Document
- Select Service
- Search for AppleScript and drag it over to the right side as an action
- Delete the sample code and paste in my script
- Make sure to select “Service receives: no input.”
- Compile it to make sure there are no syntax errors
- Save the Service. For example “Create Reminder”
- Close Automator
- Open System Preferences and go into Keyboard settings
- Go to Shortcut tabs and select Services
- Scroll down until you see your Service
- Click on “add shortcut” and press your key combination of choice
- I use Control+Option+Command+r
- Close System Preferences
To see if your new Service and keyboard shortcuts works press the key combination you have chosen, and you should see a dialog like the one in the screenshot below.
You have two options:
- Enter the subject name of the reminder only, such as “Buy milk” or
- Enter a prefix indicating the due date in hours, followed by a: and the subject. For example 2:Buy milk, which will add a due date of two hours in the future
If you do not enter a due date, the script will default to 2 hours. Of course, you can change that default value in the script to suit your needs.
Permissions Issue
Depending on the version of macOS you have, you may get the following dialog, asking if System Preferences can get access to your Reminders. Just click OK. You can double-check if the permissions were granted via the Privacy Settings.
Issues in macOS 10.14 Mojave (Beta)
Apple has made some changes on how macOS protects access to application data, and as a result, if you use the above scripts you will likely see an error message like in the screenshot below: The action “Run AppleScript” encountered an error: “Not authorized to send Apple events to Mail.”
I’m not aware of any workaround of this, but I expect Apple to fix the problem or give users a choice to allow access to Mail from the “Run Apple Script” event framework.
Shortcut to create reminders in Apple Mail and other applications
I hope you find my scripts useful and if you do, I’d appreciate if you left me some feedback. The code is released as-is, and you can use it where ever you want to.

I’m a healthy living and technology enthusiast.
On this blog, I share in-depth product reviews, actionable information and solutions to complex problems in plain and easy-to-understand language.
Hi Michael,
Thank you for this. I don’t think it works with current OS versions though – any chance you might update it?
Zak
Hey Zak,
I might if I get a chance but I haven’t used my script in ages.
Hi Michael,
Thanks for this – saved me writing my own!
I tested it on Big Sur and it works perfectly with 1 change:
set theUrl to {“message://%3C” & my replaceText(theOrigMessageId, “%”, “%25”) & “%3E”}
ie I needed to add the ‘//’ after ‘message:’ otherwise the URL would not be clickable.
Thanks again.
Oops I see Andreas beat me to it..
*Clickable URL in Catalina*
I had to enhance my URL part with two “slashes” to work again:
set theUrl to {“message://%3C” & my replaceText(theOrigMessageId, “%”, “%25”) & “%3E”}
It works now, Thsnks
Hi, doesn’t work for me on Catalina (first time I am trying to add the reminder to Automator).
Does Any one success yo make it work on Catalina?
Running it: I Got the error as running: script doesn’t understand “WorkAccountName”
Thanks for sharing your experience
ReGards
Sylvian
If you use this in Mac OS Mojave, and the Reminder list is in a group the script will error “Cant get list”
Hello Micheal. Do you know how we can adapt this script now to work with macOS Catalina, since the reminders work with emails differently now. Thank you.
Hi Rabih,
Since I expect Apple to make further changes to Catalina, I’ll wait until the GM before doing any extensive testing. Last year macOS Beta didn’t work but the final release did. So I’d just wait a little…
Hi Michael, I have lunched your script with macOS Catalina but it works very slowly, do you have any idea why?
Hi Sebastian,
I’ve seen that issue before when the script is launched via a service. I have no clue why that is!
Cheers,
Michael
I have the same issue that others have mentioned that there is a delay on activation prior to the dialogue asking for the delay interval. The dialogue come up immediately when run within Automator or Script Editor.
Running a huge amount of tasks/research/brainstorming snippets through Reminders (macOS and iOS) into Omnifocus, Omnioutliner and MindNode on iOS. Your Quickentry Reminders Script (minus reminder time) is proving invaluable in that workflow. I’m so appreciative. A thousand thanks! You Rock!
Running Mojave latest. Seems to take about 10 seconds to run script. Anyone else have this issue? Thanks!
Thanks for this script Michael. I’ve been using iPad and iPhone for years, but had kept on using Office/Outlook until recently when I ditched windows and went Mac. I was sorely missing the ability to set reminders on emails and went hunting for a solution. Yours was very quick to set up and works like a dream. It’s also given me a look into automation which I’m sure I’ll be tinkering with myself in the future :-) Thanks again.
Late to the party, but THIS IS AWESOME, thank you!!
MK for President ? Tank you sooooo much.
The Mojave bug seems fixed in the latest beta
Hi Michael, Is there a way to create reminder from outlook email in mac?
Hi Dave!
I haven’t checked it Outlook supports Apple Script, but I guess if you have Reminders enabled for your mail account, any mail flagged in Outlook would automatically pop up as a reminder in the Reminders app. At least, that was the case when I last used Outlook with Exchange a few months ago.
Hi,
great script.
How can i make a Reminder without a remindMeDate?
This doesn’t work: set remindMeDate to ” “.
Thanks a lot!
Hi Wolfgang,
Simply omit the whole “remind me date:reminder_time,” parameter. So your statement would look like this:
set reminder_id to make new reminder with properties {name:reminder_name} –create reminder
Hi, I was just wondering about the fix finder column width action, is that written about anywhere? I can’t tell you how many times I adjust that every day, that could be an amazing time saver.
Have you seen this script? https://macscripter.net/viewtopic.php?id=40078
I have not had a chance to try it yet, but it seems to be doing what you are looking for.
This was just what I needed! Thanks for taking the time to write this out!
Mike,
Thank you for replying. I have “Mail” in that box. It’s weird. Sigh. I can send you a screen shot if you’d like. Just tell me where to go with it.
AWESOME script – but I think I am having a PICNIC problem (Problem in Chair, Not in Computer).
It works fine when I test run it through the Automator interface. It seems to save fine (and I can find it in my User/Library/Services, but it doesn’t show up under Mail services (have restarted Mail) or in the keyboard shortcut or in the Automator library. I did the whole thing again, saved and it asked if I wanted to replace the existing, so I am pretty sure it is there and works.
Any hints on what I am doing wrong?
Thank you so much!
Hmm…Honestly, no idea why the service wouldn’t show up after restarting Mail. What have you selected under “Service received”…”in”?
Wonderful article! Thanks to the author!
This is an excellent tutorial and a very useful script!
Thank you so much for it!
Send you a warm thank you,
Sebastian
Hey Michael, excellent script!
Would it be possible to manually specify the date of the reminder notification? That would be great!
Hi Franco,
Yes, you can do that by simply replacing the “choose from list” statement with a “display dialog” statement. See this link for more information on how to use it: https://alvinalexander.com/blog/post/mac-os-x/applescript-add-textfield-dialog
Script doesn’t work in Sierra – it compiles fine and sets the flag but the reminder is never created. Any ideas?
Hi Kimberly,
Did you double check your account and reminder list names. If they don’t match 100%, the reminder won’t get created.
Even I never work with Mac automator before it still works perfectly! Thanks a lot for the script!!
Hey, All
Love the script, and wanted to know as a newcomer. Is there an easy way to mod this so that I can use it for another app other than ‘Reminder’ i.e. GoodTask?
Hi Stephen,
That depends if the app in question supports Apple Script or not. If it does, you can certainly mod the script.
Is there a way to create reminders from mail on an iPhone
Hi Deval,
I believe you can use Siri for that. Just open an email in the iOS Mail.app, launch Siri and say “Remind me about this”. I am on an airplane right now and can’t try it, but I will confirm it later.
This is great, but how can I add more than 2 email accounts? I have 3 work accounts. Thank you!!
Hi Ash!
Simply add another variable, for example:
set WorkAccountName2 to “Exchange2” and then duplicate each line where it is used and change the name. If you cannot get it to work let me know and I’ll send you an updated script!
Hello Michael,
When I click: Mail > Services > Reminder I get the following message:
The action “Run AppleScript” encountered an error
Still it gives a purple flag. What is going wrong?
Could it be in this part?:
# Set this according to your email account names and Reminder’s lists
set WorkAccountName to “[email protected]”
set WorkRemindersList to “Work”
set PersonalAccountName to “[email protected]”
set PersonalRemindersList to “Google”
# On my machine 5 is the Purple flag, which is the color I would like to use for mails flagged as Reminder
set FlagIndex to 5
Hi Gideon,
Try to run the script directly from the Apple Script Editor to see where it stops. I don’t recall, but it could also be that the FlagIndex starts counting at 0. So your 5th flag may indeed be at index 4.
Hi Michael,
I dit try to change that but still it gives the same error.
The Flags turns Yellow (thats good because in want that). But it is n’t giving any reminder when I test.
When I run Apple Script Editor it stuggs at the lign:
make new reminder with properties {name:theSubject, remind me date:remindMeDate, body:theUrl}
It says: error “Reminders kreeg een fout: list “Reminders” kan niet worden opgevraagd. ” number -1728 from list “Reminders”
It is Dutch so it means something like:
There is an error: “Reminders received an error: list ” Reminders “can not be retrieved.” Number -1728 from list “Reminders”
It looks like the script is defaulting to the list named “Reminders”, which may not exist in your case.
So your problem is in this part of the script:
# determine correct Reminder’s list based on account the email/message is in
if name of account of mailbox of theMessage is WorkAccountName then
set RemindersList to WorkRemindersList
else if name of account of mailbox of theMessage is PersonalAccountName then
set RemindersList to PersonalRemindersList
else
#default list name in Reminders
set RemindersList to “Reminders”
end if
end tell
tell application “Reminders”
tell list RemindersList
As you can see if the Mailbox can’t be matched, it defaults to “Reminders” and that’s what happening.
Thanks that was helpful.
It is Language Dependent. “Reminders” is “Herinneringen” in Dutch. Maybe a little correction in the post for people like me?
So it is Solved. Thanks!
Hi Gideon!
I will update the article with new screenshots from Sierra and a note on the language! Thanks for the feedback!
This is great – thanks Michael!
I’m trying to add options to set a reminder for 1 or 2 hours from the current time and running into trouble with setting the reminder date:
else if selectedDate = “1 Hour” then
set remindMeDate to (current date)
set time of remindMeDate to (current date) + 60 * minutes
It returns an error:
Syntax Error
Can’t make date “Friday, June 16, 2017 at 12:45:31 AM” into type integer.
Can you enlighten me as to what’s wrong here?
Thanks,
Scott
Try the following:
else if selectedDate = “1 Hour” then
set remindMeDate to (current date)
set time of remindMeDate to (current date) + 60 * minutes
In other words, omit the “time of” statement.
Michael, this link does not work.
https://michaelkummer.com/wp-contents/uploads/automator_script_create_reminder.txt
It brings me to a 404-page.
Sorry about that – had a typo in the link – try this: https://michaelkummer.com/wp-content/uploads/automator_script_create_reminder.txt – Post has been updated too.
Dear Michael,
Great script and it works perfectly in Sierra.
It would be great to have a dialogue box for typing a Subject/Title before choosing the follow-up date.
Any idea how to do this?
Hi Ruud!
If you look at the second half of my post, under “How to create reminders from any application via a global shortcut” – you will see a dialog statement to ask for a title. You can reuse that code.
Cheers
Michael
Thank you!
Hi Michael – this is still a stable script, thank you!
Two questions that can’t see answered
– when reminder is complete, can this unflag the original email in mail?
– any way to automatically move email to a subfolder once script runs ?
OK thank you !
Hi Brayner,
My script can mark reminders as complete when you execute it on an email that’s already in Reminders. That’s the easiest way of doing it. Alternatively, you could certainly write a script that cycles through all completed reminders and finds related/linked emails and unflags them. Or you write a script that executes only on selected reminders and finds the corresponding email to unflag. There may be other ways, but those pop into my head.
To move an email message, you can use the “move [mail id] [location]” command.
Did you ever solve the issue of why it is slower as a service than when run from within automator?
Hi Mom!
I have since started using OmniFocus for my task management, instead of the native Reminders app. I could never figure out what caused the delay, to be honest.
Cheers
Michael
Hey, great script, this is going to save me a ton of time.
One challenge I’m having is with the archiving feature. The email gets archived as expected, but then it unexpectedly shows again in my inbox a few minutes later.
My email accounts are Google accounts so here’s the text I used to set the archive target mailbox
set Work1Archive to “[Gmail]/All Mail”
Anyone else seeing this?
Brilliant! Thanks!
Mike, I fix it all by my self ) I understood logic of you script, was hard, but its done. Works great! Theres any possibility to postpone for hours? 1 hour; 2 hours; 3 hours?
Thank you very much!
Mike, I fix the previous issues, and in service menu appear “Mail Reminder” but when I choose mail message and try to add reminder, pop up window with message:
Now I can’t add time The action “Run AppleScript” encountered an error.
Ali,
Can you paste the complete script please? You have a syntax error somewhere…
As well after this message inside script text automator highlighted this text:
make new reminder with properties {name:theSubject, remind me date:remindMeDate, body:theUrl}
May be I have to make some changes?
Thanks!
Hi Mike, well I have a message “Reminder got an error: Cant get list [email protected]
Hello Mike,
Thank you for script! But it does not work in Sierra 10.12.2, do you have any idea about?
Hi Ali! Since I have started using OmniFocus, I haven’t used my own scripts under 10.12.2. What is the error message you are getting?
Great script Mike!
Your wife can be proud of you this time ;-)
No problems or speed issues in El Capitan 10.11.16, Macbook Pro Mid 2014
A fantastic piece of code, really great thanks :-)
If you can solve the speed issue then that would be great.
Hello Michael!
Thanks a lot for your help. Sorry but i need more help =(
When i execute the script automator says: “Syntax Error: Reminder has found an error ..” and link me this line of code: ” make new reminder with properties {name:theSubject, remind me date:remindMeDate, body:theUrl} “. Can u explain me how can i solve this problem?
Thanks a lot in advance
Hi Alexandro!
Can you send me a screenshot of the error, including the Automator window? You can send it to mike at michaelkummer.com.
Thanks
Michael
Thanks a lot, i send u a mail
Sorry, i have problem to send you mail. Can u contact me? Alexandro.sollai at gmail.com
Hello Michael!
Could you please advise how to make your great script work with several WorkAccountName’s?
that’s simple – just add two new variables and name them for example:
set WorkAccountName2 to “Exchange2”
set WorkRemindersList2 to “Work2”
and then add another ELSE IF statement down below:
# determine correct Reminder’s list based on account the email/message is in
if name of account of mailbox of theMessage is WorkAccountName then
set RemindersList to WorkRemindersList
else if name of account of mailbox of theMessage is PersonalAccountName then
set RemindersList to PersonalRemindersList
else if name of account of mailbox of theMessage is WorkAccountName2
set RemindersList to WorkRemindersList2
else
#default list name in Reminders
set RemindersList to “Reminders”
end if
Hope that helps!
Outstanding! Thank you!
Michael, this is a beautiful script and is going to save so much time in my workflow. Thank you!
One thing that I’ve done is to set up a rule that anything with a green flag (the color I’ve chosen) is automatically added to a follow-up folder, and this script will run automatically as a result.
Given my general lack of knowledge around scripts, my question now is: can you write a script for Reminders that removes the flag from the associated email once the task is checked off?
Hi Chance,
you probably could by running a script from within Reminders that marks the selected reminder as complete and then looks for the corresponding email based on the subject.
Hi Michael,
Thanks for this – I wish Apple would address this need.
I am also on El Capitan but rather than using Automator to create a service I prefer to access my scripts from the menu bar, so I saved the script as a file in the ~/Library/Scripts/Applications/Mail folder. When I was testing the script in Script Editor it does work immediately – no delay.
Only issue I came across was my test message does not have an id (?!) so the link in the Reminder failed. Finally I tried another message and the link worked.
Hi Patrick!
Interesting idea! How do you trigger the script? Via keyboard shortcut?
Cheers
Michael
When Mail is active, I click on the Script icon in the menu bar [the one which is controlled via an option in Script Editor preferences], and the script appears in the list. I don’t think I need a keyboard shortcut.
Thanks so much Michael. I just followed your instructions and it works 100% on El Cap (10.11.1). I don’t see the slowdowns that others have noticed.
-j
Michael,
This is such an awesome script. I am using an iOS app named Handle for consolidating all my email + tasks + calendar and this script is a life saver for me (Note: I don’t work at Handle nor am I promoting them)
It might be such a great idea to build a mail add on that can convert emails into tasks & calendar items. Lots of people on mac love to use existing scripting rather than new apps to be installed.
Thanks
Ram,
unfortunately Handle appears to be working with Google accounts only for Email…I’m on an iCloud/Exchange combination.
Cheers
Michael
I’ve just stumbled upon your post through a Google search – you are awesome, this is exactly what I needed. And thanks to your many comments in the script, it’s easy to add other options to the dropdown menu for choice of reminder times for us automator newbs, so thank you!
Hi Michael,
first of all I would like to express that this exactly what I have looked for since ages – THANK YOU VERY MUCH !!!!
As I have no idea actually about writing scripts or changing some logs, I am positive surprised about myself that this worked out, I would like to ask if you can help to share a slightly amended version of the script that we can have the following additional choices e.g.:
next Monday
next Tuesday
next Wednesday
next Thursday
next Friday
next Saturday
next Sunday
is this possible?
I mean that we would have an option which we can chose at any day and the reminder will pop ups on the following days like mentioned above? e.g. I have something which I receive today but I would like to follow it on Tuesday again, is there anything like this available?
Cheers,
Nico
Nico,
you can use the following lines of code – just overwrite the existing stuff:
# present user with a list of follow-up times (in minutes)
(choose from list {“Monday”, “Tueday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”} default items “Monday” OK button name “Create” with prompt “Set follow-up time” with title “Create Reminder from E-Mail”)
set reminderDate to result as rich text
# Exit if user clicks Cancel
if reminderDate is “false” then return
set curWeekDay to weekday of (current date) as string
if curWeekDay = “Monday” then
set remindMeDate to (current date) + 7 * days
else if curWeekDay = “Tuesday” then
set remindMeDate to (current date) + 6 * days
else if curWeekDay = “Wednesday” then
set remindMeDate to (current date) + 5 * days
else if curWeekDay = “Thursday” then
set remindMeDate to (current date) + 4 * days
else if curWeekDay = “Friday” then
set remindMeDate to (current date) + 3 * days
else if curWeekDay = “Saturday” then
set remindMeDate to (current date) + 2 * days
else if curWeekDay = “Sunday” then
set remindMeDate to (current date) + 1 * days
end if
# Flag selected email/message in Mail
set flag index of theMessage to FlagIndex
This is a really great idea, but I’m finding on El Capitan (OS X 10.11.1) it’s taking more than 20 seconds from the time you choose the service off the services menu until the dialog appears to select the reminder time. I’ve got no idea what it’s doing in those 20 seconds, but it makes the service pretty difficult to use on a daily basis.
Have you seen anything like this?
The other thing I’ve found is that the service only appears if you actually select some text in the email message you want to be reminded about. Even though the script doesn’t use the selected text for anything, I cannot get it to appear in the services menu just by having an email message itself selected in Mail’s message list. That’s not a show-stopper feature, but it seems like ‘selection’ isn’t set in the Applescript unless there’s actually a text selection somewhere.
Hi Matt,
I have seen the same delay with El Capitan but haven’t yet figured out what causes the delay. I’ll try to find out what’s going on and post an update. For me the workaround is to invoke the service (via a global keyboard shortcut) and then continue with other work until the dialog pops up.
Regarding the “text selection” – did you select “No Input” in the “Service receives” dropdown? I’m guessing you have “text” selected, which would explain the behavior.
I’m glad it’s not just me seeing the delays on El Cap. If I figure out anything about what’s slow I’ll post here again.
I’ve tried all combinations of Receives text and Receives No input, and making the service available in Mail or in All Applications. In every case, I have to have some text selected in the mail message for any services at all to appear under the Services menu.
I wonder if it has anything to do with using conversation view in the message list window. I should try changing the view options to see if this makes any difference.
I’m using Conversation View as well without any issues.
Michael,
I have 2 questions:
1.) Do you see that the reminders are created even when the email is flagged on your iPhone or iPad? I ask because I use my iPhone and iPad when I’m out working on the road and I flag emails on those devices, and I would like to use your script but I am curious to see if I flag the emails on my iPhone and iPad if the script with still trigger when I open Apple Mail on my MacBook Pro at the end of the day.
2.) Since Apple Mail uses different color flags (numbers in your script above, as automator sees them by number), can you set a importance level based on the number of flag? IE: Flag 0 = High Importance, Flag 1 = Medium Importance, Flag 2 = Low Importance, Flag 3 = None…
I look forward to your input on my questions.
Thank you,
Brody
Hi Brody,
1) Reminders aren’t created because of a flagged email – they are created because the service/script is invoked via keyboard shortcut or menu. Flagging is just done as part of the process. If you were to create a script that scanned all emails for flags and then create reminders based on it – then yes – it would work also when the email is flagged on an iPad since flags are synched via iCloud to OS X.
2) Absolutely – when creating the reminder: make new reminder with properties {name:theSubject, remind me date:remindMeDate, body:theUrl}
you can add a priority: (integer) flag like so: make new reminder with properties {name:theSubject, remind me date:remindMeDate, body:theUrl, priority: 1}
You just have to add an IF statement before checking the flag and assigning a corresponding priority.
Cheers
Michael
Michael,
Where in the script do I tell the service to look in a specific folder? Or will it automatically check the “smart box” titled Flagged that already exists in Apple Mail?
Brody
Hi Brody,
the script executes on the currently selected message/mail. It doesn’t go through any pre-defined mailbox. That being said, you could certainly change it to loop through a specific mailbox but I found it more usable to simply create a reminder from the message I have currently selected.
Cheers
Michael
Better to use an Blackberry instead of trying all these kind of stuffs. Blackberry always has solutions for professionals stuffs.
Are you for real? What has Blackberry got to do with a desktop OS like OS X?
Hi!
Thanks for a great script.
What do i do if i want to ad a default text in the Remindername before the subject?
Guess I add something to this, but how?
“make new reminder with properties {name:theSubject, remind me date:remindMeDate, body:theUrl}”
Thanks for your help
//magnus
Hi Magnus,
you can use the following code to add “ABC:” in front of the subject:
make new reminder with properties {name:”ABC:” & theSubject, remind me date:remindMeDate, body:theUrl}
hi
its really great,but i m very new comer and don’t know much about scripting.the steps i have taken :
open Scripteditor
Copy paste the script and chnaged the WorkAccountName to “[email protected]” name of my account and than saved the script in documents.
but after opening Automator ,selecting service i could not search the saved script from my system.rest nothing can be done.could u please help there .
Hi Vikas,
You don’t have to open any script editor – open Automator, Select Service and Run Apple Script as action. Then paste the script and save it.
You talk about doing this on IOS the flick to Mac and AppleScript. Kinda useless then.
Not sure I understand what you are trying to say :)
Hallo Michael, very nice script for just playing a little trial and error with code snipplets… Seriously, I am impressed. That is exactly what I wanted. Not another application or cloud service. Just relying on the built-in stuff. Reminder is for sure not the best application from Apple, same goes for Mail. But you did combine it very well. I tried myself with built in automator functions, but I have to admit, I got lost in the details. Thank you very much for your time and effort.
Best regards, Wolfgang
Hi Wolfgang!
You’re most welcome!
Liebe Grüße aus Atlanta
Michael
Hi, thanks very much for sharing this script, it’s fantastic! I’m not familiar with AppleScript or coding, which is why I wanted to ask: Is it possible to show just the sender’s name or the subject line in the “body” part of the reminder, instead of the link to the email?
I haven’t looked at the object definitions in a while but I think it’s possible. You can bring up the help and look at what attributes are available for each object (I.e. Reminder or mail message).
Hi Michael,
great script, worked straight after changing it to my account and list names under OSX 10.10.2. But I would need similar as well to create an calendar entry. I tried to modify the script, but I’m not familiar with the calendar script terms. Could you please help me?
What I would need:
Select Mail message -> message pop up, calendar entry date, today or tomorrow, similar what you have in your current script, start time .. current time is fine end time 30 min from start time, I would manually modify to my needs, either a link to the mail, or copy the mail text in the calendar entry.
Perfect would be to choose in the beginning which calendar to use, I’ve two on my exchange calendar, one “Kalendar” for events and “Aufgaben” for tasks, as I don’t use reminders, I need to see my tasks in my calendar ;-)
You would really do me a huge favour!
Thanks & best regards,
Beatrice
Hi,
I am new in Apple world … cannot figure out the following:
I know my AccountName,
I cannot understand what is behind set WorkRemindersList, PersonalAccountName, PersonalRemindersList
For insider no problem, for me as novice difficult to understand:
Make sure to change the following lines to reflect your account names in Mail and list names in Reminders. If you have only a single mail account and Reminders list, just set both pairs to the same value (i.e. WorkAccountName = PersonalAccountName = iCloud and the same for *RemindersList)
set WorkAccountName to “Exchange”
set WorkRemindersList to “Work”
set PersonalAccountName to “iCloud”
set PersonalRemindersList to “Personal”
Looking forward to hear from you
Regards
Harald
Hi Harald,
WorkAccoundName = the name of your work email account in Apple Mail
WorkReminderList = the name of the list that should contain your work-related reminders in the Reminders app
Same goes for Personal. So if you have only one account, just set both to the same values.
Makes sense?
Stopped working in Yosemite when run as service (working when run from Automator).
This line seems to cause it but I wasn’t able to fix it:
set theNeedlesName to (name of reminders whose name is theSubject and completed is false)
Hi Christian!
after re-installing Yosemite I didn’t restore my script but just now did and after making sure the section below “# Set this according to your email account names and Reminder’s lists” was configured correctly I tested it on both the Exchange and iCloud account and everything worked as it was supposed to. I’m running OS X 10.10.1 (Beta) which may or may not make a difference. Did you allow access when prompted at the first run of the script. I clicked it away so quick but I guess it asked if I wanted to allow access to Reminders. You can double check in System Preferences –> Security & Privacy –> Privacy –> Reminders. Mail should be there and checked.
Cheers
Mike
Hi Michael. That solved the issue, thanks for the quick reply. Strangely, I’m quite sure there was no popup but I may be wrong. You may want to add the required access granting to the main tutorial. Thanks again.
good point, will do, thanks!
Thank you very much! I was dragging the emails over to Reminders but this is much easier.
Michael,
This is a really great script, and something I have been seeking for a while now. But — I have stumbled upon a problem I can’t get around.
If the message I want to set a reminder for has been processed into a folder (Mailbox is the term Mail uses), and isn’t in the Inbox of the named account, then the script fails. Example below:
SYNTAX ERROR: Mail got an error: Can’t get account of mailbox of message id 132169 of mailbox “GAPS”.
Have you figured out a way around this – or is there one?
Thank you!
Hi there!
I use the script mostly on mails stored in my Sent or Archive mailboxes and it always works. You may want to debug the script line by line using the Script editor to see where exactly it fails.
Hello,
When I run the service, I get a syntax error: Reminders got an error: Can’t get list “XXX” where XXX is my Reminders Task List Name. I have OSX 10.9.4.
Thanks,
Manish
Awesome script/automation! Thanks a lot!
I was wondering if maybe you could help me or maybe add functionality to this script or to the automator?
The thing is that I don’t always need the full email as notes, but just a selection of text from the email.
Would it be possible to somehow check if I have selected text, and then add the selected text as notes as well as the link to the full email at the end of the notes section?
Again, thanks! :)
Hi Christian,
I haven’t tried that yet, but maybe this link will help: http://hintsforums.macworld.com/archive/index.php/t-22098.html
Thanks a lot – this was very thorough and just what I needed. Still got stuck after the popupwindow passed. Seems like its caused by my OS is in swedish. Said something like :SYNTAX. Reminders got an errorl: Could not get the list “Reminders”. The highlighted syntax is the following:
make new reminder with properties {name:theSubject, remind me date:remindMeDate, body:theUrl}
I changed the default name of the list in
#default list name in Reminders
set RemindersList to "MYDEFAULTLISTNAMEINMYLANGUAGE"
end if
Thanks for your feedback! So by changing the value of RemindersList you got it working? Am I understanding you correctly?
Hello Michael: Is there a way to convert an email to a reminder in iOS on an iphone? Your trick works fantastic on the mac!! but i want to be able to do this on the phone so that all followup items can be managed across iphone and mac
Hi Dave!
Yes, you can use Siri for that – see my reply to the previous comment! I just tried it out in iOS 11 and it works as I said.