Support
phone +1 206-523-4152 or 800-315-OMNI mastodon @OmniGroup

AppleScript changes in OmniFocus

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 and effectiveDueDate 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 for dropped, effectively dropped, and drop date, which function the same as their “completed” counterparts.


OmniFocus 3.0

  • Added tag and primary tag properties. Where you would previously look up a context by name, id, or index, you can now use the term tag. Where you would previously get or set the context property of a task, you can now use primary tag. You may also use the add, remove, and move commands to manage multiple ordered tags on a task now.

  • Added a deprecated context property to support backward compatibility with scripts using the old context property.


OmniFocus 2.12

  • The completed property is now read-only. In order to mark a task or project complete or incomplete, new verbs for mark complete and mark incomplete should be used.

  • The date completed property can now only be changed for already completed tasks.

  • Added next defer date and next due date as read-only properties on tasks.


OmniFocus 2.0

  • Our rich text class is now called rich text instead of text, matching other applications on the system. Compiled scripts should continue to work. The AE code is now 'OSrt' with an synonym of ctxt. 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 or POSIX 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 of document 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 the file attachment must be a file or POSIX file due to sandboxing.

  • The autosave interval property on document has been removed.

  • The value property on the attribute class now returns a generic 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 the replace command has been named regular 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 the add, remove, and set commands can be used to update the selected trees element.

  • Added the pbcopy, pbpaste and pbsave commands to copy items to and from the pasteboard.

  • The library and inbox properties have been removed from the sidebar tree class.

  • The document window class now has a selected sidebar tab property.

  • The selected view mode identifier property on document window is gone, replaced by the selected sidebar tab property. The available view mode identifiers property is also gone as the available list of tabs is described by the type of the selected sidebar tab property.

  • The available smart group identifiers and selected smart group identifier properties on sidebar 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 the import into command, which specifies the destination document explicitly. Additionally, this now takes a file typed parameter for the from argument.

  • The parse tasks command has been replaced by the parse 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.

Last Modified: Jun 27, 2024

Still need help?

support@omnigroup.com
+1 206-523-4152 or 800-315-OMNI

Was this article helpful?