This article documents the changes made over time to the AppleScript support in OmniFocus that you should be aware of as you update your OmniFocus scripts. We try to maintain backward compatibility as much as we can, but sometimes it simply isn’t possible, like with changes made in OmniFocus 2 to support sandboxing.
OmniFocus 3.8
-
Added the
evaluate javascript
command to invoke Omni Automation code from AppleScript. -
Added
effectiveDeferDate
andeffectiveDueDate
as read-only properties on tasks.
OmniFocus 3.6
- Added
should use floating time zone
property.
OmniFocus 3.4
-
To resolve a terminology conflict, value strings for the
status
property on projects (active/on hold/completed/dropped) are now appended with “status”, e.g. “active” becomes “active status”. -
Added
effectively completed
as a read-only property on tasks. -
Added the
mark dropped
verb to drop tasks and projects, and added properties fordropped
,effectively dropped
, anddrop date
, which function the same as their “completed” counterparts.
OmniFocus 3.0
-
Added
tag
andprimary tag
properties. Where you would previously look up acontext
by name, id, or index, you can now use the termtag
. Where you would previously get or set thecontext
property of a task, you can now useprimary tag
. You may also use theadd
,remove
, andmove
commands to manage multiple ordered tags on a task now. -
Added a
deprecated context
property to support backward compatibility with scripts using the oldcontext
property.
OmniFocus 2.12
-
The
completed
property is now read-only. In order to mark a task or project complete or incomplete, new verbs formark complete
andmark incomplete
should be used. -
The
date completed
property can now only be changed for already completed tasks. -
Added
next defer date
andnext due date
as read-only properties on tasks.
OmniFocus 2.0
-
Our rich text class is now called
rich text
instead oftext
, matching other applications on the system. Compiled scripts should continue to work. The AE code is now'OSrt'
with an synonym ofctxt
. Other apps do other things, for example:App Class Code Apple Event Code Xcode.app rich text
'ricT'
AppleScriptKit.framework rich text
'ricT'
iChat rich text
'rtfx'
Mail rich text
'ctxt'
Aperture rich text
'ctxt'
TextEdit text
'ctxt'
Script Debugger.app rich text
'ricT'
FastScripts.app rich text
'ctxt'
Scrivener rich text
'ctxt'
PDFpen rich text
'ctxt'
VoodooPad rich text
'rtfx'
Adium rich text
'ricT'
Acorn rich text
'ctxt'
-
In order to work with application sandboxing,
file
orPOSIX file
must be used for saving and opening instead of passing strings as file paths. -
When making a new document with AppleScript (a fairly rare operation, except for our testing scripts), a
file
property must be specified. -
The
name
ofdocument
is now the display name instead of the last path component (including the path extension). This means that name based lookups need to not include the path extension. Additionally, name based lookups are case- and diacritical-insensitive. -
The
file name
property of thefile attachment
must be afile
orPOSIX file
due to sandboxing. -
The
autosave interval
property ondocument
has been removed. -
The
value
property on theattribute
class now returns ageneric color
record for color-typed attributes. This is a record with specific components, including alpha (with numeric components ranging from 0 to 1). -
The
regexp
argument of thereplace
command has been namedregular expression
and given a new type code so that old scripts using that form will neither compile or execute. The format of this regular expression is now based off the ICU syntax used by Apple’s frameworks. -
The
select
command has been removed. Instead theadd
,remove
, andset
commands can be used to update theselected trees
element. -
Added the
pbcopy
,pbpaste
andpbsave
commands to copy items to and from the pasteboard. -
The
library
andinbox
properties have been removed from thesidebar tree
class. -
The
document window
class now has aselected sidebar tab
property. -
The
selected view mode identifier
property ondocument window
is gone, replaced by theselected sidebar tab
property. Theavailable view mode identifiers
property is also gone as the available list of tabs is described by the type of theselected sidebar tab
property. -
The
available smart group identifiers
andselected smart group identifier
properties onsidebar tree
don’t map directly to the view settings set up by the interface and are deprecated (marked hidden, but still in the suite). If you need scripting access to the view settings, please let us know what we are trying to accomplish so we can add appropriate access. -
The
import
command has been replaced by theimport into
command, which specifies the destination document explicitly. Additionally, this now takes afile
typed parameter for thefrom
argument. -
The
parse tasks
command has been replaced by theparse tasks into
command, which specifies the destination document explicitly. -
The code for
default value
on the style attribute class has changed from'OSdv'
to'OFdv'
. Scripts using this terminology may need to be recompiled.