Omnifocus vs Apple Reminders

mebstein

Registered
Can't wait!

kelstarrising;105687 said:
We expect to have our GTD & iPhone available in the DAC Store by this Friday. It focuses solely on the built-in applications (no 3rd party) to take advantage of what comes native to the iPhone.

Excited to get my hands on this!
 

Mary Jane Russell

Registered
Outlook sync with Reminders

paulmcdonald;104350 said:
Is anyone syncing Outlook tasks with the reminder app on iPhone?

Paul, I was ... until I inadvertently exported all of my Outlook tasks into OmniFocus while trying out the "reminders capture" in the IPad version. I recovered them all in the deleted items folder of Outlook, fortunately, but now have turned off the sync of Outlook to "reminders" and only allow Outlook to sync with my iPhone/iPad using IMExchange2, because I like how it preserves the categories from Outlook.
 

ratz

Registered
A little automation if using Reminders app

After switching to the reminders app last week it occurred to me that I could save myself some time when process email..

If you are a GTDer and you use Apple Mail instead of Outlook or Entourage. Then it's almost a must that you use the Mail-Act-On software. It's a simple piece of dirt cheap software that allows you to use hotkeys to trigger "mail rules" against the currently selected message(s). Essential for rapid filing, forward+filing, forwarding+deleted, etc. One extra feature it has is that is can trigger an AppleScript against a message.

So here's an applescript that you can place into "~/Library/Application Scripts/com.apple.mail" that allows you to create a reminder in your "Inbox" list that has a link back to the orginal message. I use a rule that moves the message to an email folder called "Reference" and then creates an Action in Inbox for that message and has a link back to in Mail. With Mail-Act-On automating all this; I simply highlight the message and hit "Ctrl-A" and poof the message is filed and a new action is in my reminders inbox waiting to be "actionafied". This script would need to be modified if not triggered by Mail-Act-On. The whole process runs in under 1 sec.

I'm not affiliated with MAO's creator you can google them easy enough.

I will be making a similar solution for Safari web pages soon and will post that.

Code:
	using terms from application "Mail"
		# Set the name of the list where to create the reminder
		set InboxName to "Inbox"

# Set the color of the message (used to mark the message after being linked to Reminders)
		set MessageColor to green

# set the default reminder due date
		set ReminderDueDate to 0

# set the default remind me date
		set ReminderReminderMeDate to 0

# set the prefix to be prepended to the reminders' name
		set ReminderPrefix to ""

# Find the selected mail message
		set selectedMessages to selection
		if (count of selectedMessages) is greater than 0 then

set theMessage to item 1 of selectedMessages

# Get the message properties
			set theSubject to my trimText(subject of theMessage)
			set theSender to sender of theMessage
			set theMessageId to my replaceText("%", "%25", message id of theMessage)
			set theTags to "Mail"

# if we have a message with no ID then we give up, since we can't create a link
			# based on an empty id
			if theMessageId is "" then
				display dialog "Can't link this message to Reminders"
				return
			end if

# build the reminder properties
			set message_url to "message:%3C" & theMessageId & "%3E"
			set todo_name to my replaceText(return, "", ReminderPrefix & theSubject & "(" & theSender & ")")

tell application "System Events" to set frontmost of process "Reminders" to true

tell application "Reminders"

# Search for the proper list where to create the reminder
				repeat with listIndex from 0 to (count of list)

set oneList to list listIndex
					set listId to id of oneList

if (name of oneList) is equal to InboxName then

# create the reminder based on the selected mail
						# set mailReminder to make new reminder with properties {name:todo_name, body:message_url, container:oneList, due date:((current date) + (ReminderDueDate * days))}
						set mailReminder to make new reminder with properties {name:todo_name, body:message_url, container:oneList}

oneList show
					end if

end repeat

end tell

# finally mark the message
			set the background color of theMessage to MessageColor

end if
	end using terms from

# Trims the unnecessary whitespace from someText
	on trimText(someText)
		set theseCharacters to {" ", tab, ASCII character 10, ASCII character 13, ASCII character 0}

repeat until first character of someText is not in theseCharacters
			set someText to text 2 thru -1 of someText
		end repeat

repeat until last character of someText is not in theseCharacters
			set someText to text 1 thru -2 of someText
		end repeat

return someText
	end trimText

on replaceText(find, replace, subject)
		set previousDelimiters to text item delimiters of AppleScript
		set text item delimiters of AppleScript to find
		set subject to text items of subject

set text item delimiters of AppleScript to replace
		set subject to "" & subject
		set text item delimiters of AppleScript to previousDelimiters

return subject
	end replaceText
 

robertedwards

Registered
ratz;105799 said:
After switching to the reminders app last week it occurred to me that I could save myself some time when process email..
You can also drag-and-drop the email onto Reminders.

-- Robert.
 

ratz

Registered
robertedwards;105806 said:
You can also drag-and-drop the email onto Reminders.

-- Robert.

Definitely true, that was worth mentioning. However I found that was not working well for me. I always seem to grab the entire message thread and then it does not work. Also I still have to return the mail program and file the message. I am too lazy for that I want the computer to do it fast and save me the work.
 

ratz

Registered
Safari to Action Item Script

Ok here's the Safari script. You will either need to know how to turn on scripting; or use something like the free FastScripts from red sweater software; to trigger it. I use FastScript and assign it to "Control+Shift+A"

This version will ask you if it is and action or a project. You can configure it to have actions go directly to your inbox; or prompt you for which action list to put it on.

-Enjoy

Code:
	tell application "Safari"
		set SafariURL to URL of document 1
		# Set the name of the list where to create the action reminder
		set InboxName to "_Inbox"

# Set the name of the list where to create project reminders
		set ProjectListName to "Projects"

# Turn on or off the prompting for which Action List
		set PlaceActionsInInbox to false

# Set the names of your Actions Lists
		set AvailableLists to {"_Inbox", "@Agendas", "@Afterhours", "@Calls", "@Computer", "@Desk", "@Errands", "@Home", "@WaitingFor"}

# set the default reminder due date
		set ReminderDueDate to 0

# set the default remind me date
		set ReminderReminderMeDate to 0

# set the prefix to be prepended to the reminders' name
		set ReminderPrefix to ""

# Get the Action statement or Project description from user
		set prompt1 to display dialog "Enter Action Statement or Project Description" default answer "" buttons {"Action", "Project", "Cancel"} default button "Action"
		set theSubject to the text returned of prompt1
		if theSubject is not "" then set theSubject to my trimText(the text returned of prompt1)
		set theList to the button returned of prompt1

#react to button pushed
		if theList is equal to "Project" then
			set targetList to ProjectListName
		else if theList is equal to "Action" then
			#Put in Inbox or ask for Action List based on mode
			if PlaceActionsInInbox then
				set targetList to InboxName
			else
				set myChoice to (choose from list AvailableLists with title "Action Lists" with prompt "Put in List")
				set targetList to item 1 of myChoice
			end if
		else
			set targetList to "Cancel"
		end if

if theList is equal to "Cancel" or theSubject is "" then end run

set todo_name to my replaceText(return, "", ReminderPrefix & theSubject)

tell application "System Events" to set frontmost of process "Reminders" to true

tell application "Reminders"

# Search for the proper list where to create the reminder
			repeat with listIndex from 0 to (count of list)

set oneList to list listIndex
				set listId to id of oneList

if (name of oneList) is equal to targetList then

# create the reminder based on the URL
					if ReminderReminderMeDate is equal to 0 then
						set mailReminder to make new reminder with properties {name:todo_name, body:SafariURL, container:oneList}
					else
						set mailReminder to make new reminder with properties {name:todo_name, body:SafariURL, container:oneList, due date:((current date) + (ReminderDueDate * days))}
					end if

oneList show
				end if

end repeat

end tell
	end tell

# Trims the unnecessary whitespace from someText
	on trimText(someText)
		set theseCharacters to {" ", tab, ASCII character 10, ASCII character 13, ASCII character 0}

repeat until first character of someText is not in theseCharacters
			set someText to text 2 thru -1 of someText
		end repeat

repeat until last character of someText is not in theseCharacters
			set someText to text 1 thru -2 of someText
		end repeat

return someText
	end trimText

on replaceText(find, replace, subject)
		set previousDelimiters to text item delimiters of AppleScript
		set text item delimiters of AppleScript to find
		set subject to text items of subject

set text item delimiters of AppleScript to replace
		set subject to "" & subject
		set text item delimiters of AppleScript to previousDelimiters

return subject
	end replaceText
 

ratz

Registered
reliability bug fix to previous contribution.

ratz;105799 said:
So here's an applescript that you can place into "~/Library/Application Scripts/com.apple.mail"

Ok not to turn this into "scripts today" but there was a conflict in Mail-ActOn that messes with the reliability of that script if you try to auto file the message. so here's the "improved one" This one assume you know a little bit more about your mail server. In This version the script does the filing, which is less flexible but more reliable.

To use this version You will need to program the line Set FileBox to point at your reference email folder in your mail account. Notice in the sample code that it's set for a Subfolder of Inbox as "Inbox/@Reference" if yours is in the root folder (common if not on an exchange server) you might just have "Reference" as the folder name. Also change NameOfMailMailAccountInMailAppDisplay to be the DESCRIPTION you gave your mail account in your settings.

The rest of the stuff to configure should be obvious.

This script is for mail act on. If you want to use it with FastScripts instead to save some funds, then change the first line of the code to be:
Code:
tell application "Mail"
and the line that says "end using terms from" to be
Code:
end tell
it's about 1/5 of the way from the end of the code.

Code:
	using terms from application "Mail"
		# Set the name of the list where to create the reminder
		set InboxName to "_Inbox"

# Set the color of the message (used to mark the message after being linked to Reminders)
		set MessageColor to green

# Set the Folder to file the Message in after creating action
		set Filebox to mailbox "Inbox/@Reference" of account "NameOfMailMailAccountInMailAppDisplay"

# Set the name of the list where to create project reminders
		set ProjectListName to "Projects"

# Turn on or off the prompting for which Action List
		set PlaceActionsInInbox to false

# Set the names of your Actions Lists in the Reminders App
		set AvailableLists to {"_Inbox", "@Agendas", "@Afterhours", "@Calls", "@Computer", "@Desk", "@Errands", "@Home", "@WaitingFor", "SomeDay/Maybe"}

# set the default reminder due date
		set ReminderDueDate to 0

# Turn Reminder on or off
		set RemindMeOn to 0

# set the prefix to be prepended to the reminders' name
		set ReminderPrefix to ""

#### END of Configuration ####

# Find the selected mail message
		set selectedMessages to selection

if (count of selectedMessages) is greater than 0 then

set theMessage to item 1 of selectedMessages

# Get the message properties
			set theSubject to my trimText(subject of theMessage)
			set theSender to sender of theMessage
			set theMessageId to my replaceText("%", "%25", message id of theMessage)
			set theTags to "Mail"

# if we have a message with no ID then we give up, since we can't create a link
			# based on an empty id
			if theMessageId is "" then
				display dialog "Can't link this message to Reminders"
				return
			end if

# build the reminder properties
			set message_url to "message:%3C" & theMessageId & "%3E"
			set suggestedSubject to my replaceText(return, "", ReminderPrefix & theSubject & "(" & theSender & ")")

display dialog suggestedSubject
			# Get the Action statement or Project description from user
			set prompt1 to display dialog "Enter Action Statement or Project Description" default answer suggestedSubject buttons {"Action", "Project", "Cancel"} default button "Action"
			set finalSubject to the text returned of prompt1
			if finalSubject is not "" then set todo_name to my trimText(the text returned of prompt1)
			set theList to the button returned of prompt1

#react to button pushed
			if theList is equal to "Project" then
				set targetList to ProjectListName
			else if theList is equal to "Action" then
				#Put in Inbox or ask for Action List based on mode
				if PlaceActionsInInbox then
					set targetList to InboxName
				else
					set myChoice to (choose from list AvailableLists with title "Action Lists" with prompt "Put in List")
					set targetList to item 1 of myChoice
				end if
			else
				set targetList to "Cancel"
			end if

if theList is equal to "Cancel" or finalSubject is "" then end run

tell application "System Events" to set frontmost of process "Reminders" to true

tell application "Reminders"

# Search for the proper list where to create the reminder
				repeat with listIndex from 0 to (count of list)

set oneList to list listIndex
					set listId to id of oneList

if (name of oneList) is equal to targetList then

# create the reminder based on the selected mail
						if RemindMeOn is equal to 0 then
							set mailReminder to make new reminder with properties {name:todo_name, body:message_url, container:oneList}
						else
							set mailReminder to make new reminder with properties {name:todo_name, body:message_url, container:oneList, due date:((current date) + (ReminderDueDate * days))}

end if

oneList show
					end if

end repeat

end tell

# finally mark the message
			set the background color of theMessage to MessageColor
			move theMessage to Filebox

end if
	end using terms from

# Trims the unnecessary whitespace from someText
	on trimText(someText)
		set theseCharacters to {" ", tab, ASCII character 10, ASCII character 13, ASCII character 0}

repeat until first character of someText is not in theseCharacters
			set someText to text 2 thru -1 of someText
		end repeat

repeat until last character of someText is not in theseCharacters
			set someText to text 1 thru -2 of someText
		end repeat

return someText
	end trimText

on replaceText(find, replace, subject)
		set previousDelimiters to text item delimiters of AppleScript
		set text item delimiters of AppleScript to find
		set subject to text items of subject

set text item delimiters of AppleScript to replace
		set subject to "" & subject
		set text item delimiters of AppleScript to previousDelimiters

return subject
	end replaceText
 

ratz

Registered
Finalized Version

Ok so after having reasonable success with the scripts. I went back and made them much more universal and easier for non programmers to work with.

Attached is a zip file called "Public Scripts.zip" free for the taking. It contains the final versions of the script. Configure your inbox list name, project list name and icloud account name or mail server account name; and your off and running. The scripts will stay updated as you add and remove action lists.

Attached files image_918.zip (95.4 KB) 
 

rdgeorge

Registered
Of course, you can set up OmniFocus to sweep everything out of iOS Reminders and drop the items into your OF Inbox. Therefore, you can use Siri with OF.

rdgeorge
 

rdgeorge

Registered
Just as Notes can be better-set-up on a Mac before using Notes on iDevices, I recall that it was better/easier to set up multiple color-coded Calendars on a Mac before using them on iDevices.

rdgeorge
 

srfogel

Registered
I find the Apple reminders app too limited. The value of OmniFocus to me is the multi-dimensional view, specifically the ability to take a Context view across all Projects or a Project View across all Context.

There is Siri integration with OmniFocus on iPhone and iPad as well as a need capture tool in the web browser. I use that piece to quickly move items from my inbox to OmniFocus as part of my GTD process.

Here is a post I made in another website with details

http://productivepractice.org/2013/03/15/multi-dimensional-task-focus/
 
Top