OmniFocus Classes v3.8

Alert • Application • ApplyResult • Array • FolderArray • ProjectArray • SectionArray • Library • TagArray • Tags • TaskArray • Inbox • Calendar • Color • ColorSpace • Console • Data • Database • DatabaseObject • DatedObject • ActiveObject • Folder • Tag • Task • Perspective.Custom • Task.Notification • Project • DateComponents • Decimal • Device • DeviceType • Document • DatabaseDocument • Email • Error • FilePicker • FileSaver • FileWrapper • FileWrapper.Type • Folder.ChildInsertionLocation • Folder.Status • ForecastDay • ForecastDay.Kind • ForecastDay.Status • Form • Form.Field • Form.Field.Checkbox • Form.Field.Date • Form.Field.Option • Form.Field.String • Formatter • Formatter.Date • Formatter.Decimal • Formatter.Duration • Formatter.Date.Style • Function • Image • LigatureStyle • Locale • MenuItem • NamedStyle.List • NamedStylePosition • ObjectIdentifier • Pasteboard • Pasteboard.Item • Perspective • Perspective.BuiltIn • PlugIn • PlugIn.Action • PlugIn.Handler • PlugIn.Library • Project.Status • Promise • Selection • Settings • SharePanel • Style • NamedStyle • Style.Attribute • Tag.ChildInsertionLocation • Tag.Status • Task.ChildInsertionLocation • Task.Notification.Kind • Task.RepetitionMethod • Task.RepetitionRule • Task.Status • Text • Text.FindOption • Text.Position • Text.Range • TextAlignment • TextComponent • TimeZone • Timer • ToolbarItem • Tree • ContentTree • SidebarTree • TreeNode • TypeIdentifier • URL • UnderlineAffinity • UnderlinePattern • UnderlineStyle • Version • Window • DocumentWindow

Alert

An alert interface for displaying information to the user, blocking further interaction until the alert is dismissed.

Constructors

new Alert(title: String, message: String)Alert

Create a new alert panel with the given title and text contents.

Instance Functions

function show(callback: Function or null)Promise

Displays the alert. If no options have yet been added, a default "OK" option is added. Once the user selects an option, the alert is dismissed. If a callback function was supplied, it is invoked with the zero-based index of the selected option as its argument. A Promise is returned as well, which may also be used to collect the result of the Alert.

function addOption(string: String)

Adds an option button to the alert.

Application

Instance Functions

function openDocument(from: Document or null, url: URL, completed: Function)

Attempts to open the specified document and return a reference to it asynchronously. If the document is already open, the reference is passed along. Note that due to platform sandboxing restrictions, opening the document may fail if the application doesn't have currently permission to access the given URL. The document, if any, that is associated with the calling script can be passed along to help grant permission to open the new document. The passed in function will be passed two argument. The first will be either either the Document or an Error. On success, the second argument is a Boolean specifying whether the document was already open.

Instance Properties

var commandKeyDownBoolean read-only

var controlKeyDownBoolean read-only

var nameString read-only

Application name.

var optionKeyDownBoolean read-only

var platformNameString read-only

Returns a string describing the current platform, currently "iOS" or "macOS".

var shiftKeyDownBoolean read-only

var versionString read-only

Application version number.

ApplyResult

Class Properties

var SkipChildrenApplyResult read-only

The descendants of the current item are skipped.

var SkipPeersApplyResult read-only

The unvisited peers of the current item are skipped.

var StopApplyResult read-only

The call to apply terminates with no further items being visited.

var allArray of ApplyResult read-only

An array of all items of this enumeration.

Array

The built-in JavaScript Array constructor.

FolderArray : Array

An Array containing Folder objects.

Instance Functions

function byName(name: String)Folder or null

Returns the first Folder contained directly in this array with the given name.

ProjectArray : Array

An Array containing Project objects.

Instance Functions

function byName(name: String)Project or null

Returns the first Project contained directly in this array with the given name.

SectionArray : Array

An Array containing Project and Folder objects.

Instance Functions

function byName(name: String)Project or Folder or null

Returns the first Project or Folder contained directly in this array with the given name.

Library : SectionArray

An Array of folders and projects at the top level of the database.

Instance Functions

function apply(function: Function)ApplyResult or null

Calls the given function for each Folder and Project in the Library and recursively into any child folders. Note that the tasks in projects are not descended into.

Instance Properties

var beginningFolder.ChildInsertionLocation read-only

Returns a location refering to the beginning of the top-level projects and folders in the database.

var endingFolder.ChildInsertionLocation read-only

Returns a location refering to the ending of the top-level projects and folders in the database.

TagArray : Array

An Array containing Tag objects.

Instance Functions

function byName(name: String)Tag or null

Returns the first Tag contained directly in this array with the given name.

Tags : TagArray

An Array of tags at the top level of the database.

Instance Functions

function apply(function: Function)ApplyResult or null

Calls the given function for each Tag in the Library and recursively into any child tags.

Instance Properties

var beginningTag.ChildInsertionLocation read-only

Returns a location refering to the beginning of the top-level tags in the database.

var endingTag.ChildInsertionLocation read-only

Returns a location refering to the ending of the top-level tags in the database.

TaskArray : Array

An Array containing Task objects.

Instance Functions

function byName(name: String)Task or null

Returns the first Task contained directly in this array with the given name.

Inbox : TaskArray

An Array of tasks that are in the inbox.

Instance Functions

function apply(function: Function)ApplyResult or null

Calls the given function for each Task in the Inbox and recursively into any child tasks.

Instance Properties

var beginningTask.ChildInsertionLocation read-only

A location that can be used when adding, duplicating, or moving tasks.

var endingTask.ChildInsertionLocation read-only

A location that can be used when adding, duplicating, or moving tasks.

Calendar

Class Properties

var buddhistCalendar read-only

var chineseCalendar read-only

var copticCalendar read-only

var currentCalendar read-only

The user's preferred calendar

var ethiopicAmeteAlemCalendar read-only

var ethiopicAmeteMihretCalendar read-only

var gregorianCalendar read-only

The Gregorian calendar.

var hebrewCalendar read-only

var indianCalendar read-only

var islamicCalendar read-only

var islamicCivilCalendar read-only

var islamicTabularCalendar read-only

var islamicUmmAlQuraCalendar read-only

var iso8601Calendar read-only

var japaneseCalendar read-only

var persianCalendar read-only

var republicOfChinaCalendar read-only

Instance Functions

function dateByAddingDateComponents(date: Date, components: DateComponents)Date or null

Returns a new Date by adding the given DateComponents, or null if no date could be calculated.

function dateFromDateComponents(components: DateComponents)Date or null

Returns a new Date from the given DateComponents, or null if no date could be calculated.

function dateComponentsFromDate(date: Date)DateComponents

Returns a new DateComponents for the given Date.

function dateComponentsBetweenDates(start: Date, end: Date)DateComponents

Returns the difference from the start Date to the end Date as a DateComponents.

function startOfDay(date: Date)Date

Returns a Date for the first moment of the day containing the given Date according to this Calendar.

Instance Properties

var identifierString read-only

The ISO identifier for the calendar.

var localeLocale or null read-only

The locale of the calendar.

var timeZoneTimeZone read-only

The time zone of the calendar.

Color

Class Functions

function RGB(r: Number, g: Number, b: Number, a: Number or null)Color

Makes a new color in the RGB colorspace, with the given components. If the alpha component is not given, 1.0 is used.

function HSB(h: Number, s: Number, b: Number, a: Number or null)Color

Makes a new color in the HSB colorspace, with the given components. If the alpha component is not given, 1.0 is used.

function White(w: Number, a: Number or null)Color

Makes a new color in the White colorspace, with the given components. If the alpha component is not given, 1.0 is used.

Class Properties

var blackColor read-only

A color in the White colorspace with white component of 0.0.

var blueColor read-only

A color in the RGB colorspace with components (0, 0, 1, 1).

var brownColor read-only

A color in the RGB colorspace with components (0.6, 0.4, 0.2, 1).

var clearColor read-only

A color in the White colorspace with white component of 0.0 and alpha of 0.0 ("transparent black").

var cyanColor read-only

A color in the RGB colorspace with components (0, 1, 1, 1).

var darkGrayColor read-only

A color in the White colorspace with white component of 0.333.

var grayColor read-only

A color in the White colorspace with white component of 0.5.

var greenColor read-only

A color in the RGB colorspace with components (0, 1, 0, 1).

var lightGrayColor read-only

A color in the White colorspace with white component of 0.667.

var magentaColor read-only

A color in the RGB colorspace with components (1, 0, 1, 1).

var orangeColor read-only

A color in the RGB colorspace with components (1, 0.5, 0, 1).

var purpleColor read-only

A color in the RGB colorspace with components (1, 0, 1, 1).

var redColor read-only

A color in the RGB colorspace with components (1, 0, 0, 1).

var whiteColor read-only

A color in the White colorspace with white component of 1.0.

var yellowColor read-only

A color in the RGB colorspace with components (1, 1, 0, 1).

Instance Functions

function blend(otherColor: Color, fraction: Number)Color or null

Returns a new color that is a linear combination of the receiver and fraction of the other color (so, a fraction of 1.0 would just return the otherColor. If the colors cannot be blended (for example, if they cannot be converted to the same colorspace), then null is returned.

Instance Properties

var alphaNumber read-only

Returns the alpha component of the color.

var blueNumber read-only

Returns the blue component of the color, after converting to a RGB colorspace.

var brightnessNumber read-only

Returns the brightness component of the color, after converting to a HSB colorspace.

var colorSpaceColorSpace read-only

Returns the colorspace of the instance.

var greenNumber read-only

Returns the green component of the color, after converting to a RGB colorspace.

var hueNumber read-only

Returns the hue component of the color, after converting to a HSB colorspace.

var redNumber read-only

Returns the red component of the color, after converting to a RGB colorspace.

var saturationNumber read-only

Returns the saturation component of the color, after converting to a HSB colorspace.

var whiteNumber read-only

Returns the white component of the color, after converting to a White colorspace.

ColorSpace

Class Properties

var CMYKColorSpace read-only

A colorspace with cyan, magenta, yellow, black, and alpha components.

var HSBColorSpace read-only

A colorspace with hue, saturation, and value (or brightness) components.

var NamedColorSpace read-only

A space for named colors, like system defined colors, or specific color palette spaces.

var PatternColorSpace read-only

A colorspace that wraps a pattern image.

var RGBColorSpace read-only

The sRGB colorspace with red, green, blue, and alpha components.

var WhiteColorSpace read-only

A colorspace with white and alpha components.

var allArray of ColorSpace read-only

An array of all items of this enumeration.

Console

The Console allows scripts to log debugging, warning, or error information where it can be viewed in the system console or in the console output area. A single instance of Console is available to scripts as the console global variable.

Instance Functions

function log(message: Object, additional: Array of Object or null)

Appends a line to the application console formed by concatenating the given message (after converting it to a String), any additional arguments separated by spaces, and finally a newline.

function error(message: Object, additional: Array of Object or null)

function info(message: Object, additional: Array of Object or null)

function warn(message: Object, additional: Array of Object or null)

Just calls Console.log, currently.

function clear()

Clears the console in the user-visible window.

Data

A generic bag of bytes. Mainly useful to be interpreted / converted to some other type.

Class Functions

function fromString(string: String)Data

Convert from a String to the UTF8 encoding of that string as Data

function fromBase64(string: String)Data

Instance Functions

function toString()String

Convert to a String, assuming that this Data is encoded as UTF8.

function toBase64()String

Convert to a Base-64 encoded string.

Instance Properties

var lengthNumber read-only

Number of bytes in this data.

var toObjectObject or null read-only

Database

Instance Functions

function tagNamed(name: String)Tag or null

Returns the first top-level Tag with the given name, or null.

function folderNamed(name: String)Folder or null

Returns the first top-level Folder with the given name, or null.

function projectNamed(name: String)Project or null

Returns the first top-level Project with the given name, or null.

function projectsMatching(search: String)Array of Project

Returns each existing Project that Smart Matches the given search. The result will be in the same order and have the same projects as would be found when searching this string in the Quick Open window.

function foldersMatching(search: String)Array of Folder

Returns each existing Folder that Smart Matches the given search. The result will be in the same order and have the same folders as would be found when searching this string in the Quick Open window.

function tagsMatching(search: String)Array of Tag

Returns each existing Tag that Smart Matches the search. The result will be in the same order and have the same tags as would be found when searching this string in the Quick Open window.

function taskNamed(name: String)Task or null

Returns the first top-level Task in the inbox with the given name, or null.

function save()

Saves any unsaved changes to disk. If sync is enabled and there were unsaved changes, this also triggers a sync request.

function moveTasks(tasks: Array of Task, position: Project, Task, or Task.ChildInsertionLocation)

function duplicateTasks(tasks: Array of Task, position: Project, Task, or Task.ChildInsertionLocation)TaskArray

Makes copies of the tasks and returns the new copies. The order of the inputs is not considered and the copies are returned in library order of the originals.

function moveSections(sections: Array of Project or Folder, position: Folder or Folder.ChildInsertionLocation)

function duplicateSections(sections: Array of Project or Folder, position: Folder or Folder.ChildInsertionLocation)SectionArray

Makes copies of the sections and returns the new copies. The order of the inputs is not considered and the copies are returned in library order of the originals.

function moveTags(tags: Array of Tag, position: Tag or Tag.ChildInsertionLocation)

function duplicateTags(tags: Array of Tag, position: Tag or Tag.ChildInsertionLocation)TagArray

Makes copies of the tags and returns the new copies. The order of the inputs is not considered and the copies are returned in library order of the originals.

function cleanUp()

Processes inbox items that have the required information to move into their proposed containers, performs any delayed filtering, and deletes empty items.

function undo()

Undoes the last undoable action, or throws an error if there are no undoable actions.

function redo()

Redoes the next redoable action, or throws an error if there are no redoable actions.

function deleteObject(object: DatabaseObject)

Removes the object from the Database.

function copyTasksToPasteboard(tasks: Array of Task, pasteboard: Pasteboard)

Copies the given tasks to the pasteboard in a variety of formats.

function canPasteTasks(pasteboard: Pasteboard)Boolean

Returns true if the pasteboard contains a type that can be imported as tasks.

function pasteTasksFromPasteboard(pasteboard: Pasteboard)Array of Task

Reads the most relevant pasteboard type and imports them as tasks. The tasks should then be moved to the desired destination.

Instance Properties

var canRedoBoolean read-only

Returns true if there are redoable actions.

var canUndoBoolean read-only

Returns true if there are undoable actions.

var documentDatabaseDocument or null read-only

var flattenedFoldersFolderArray read-only

Returns a flat array of all folders in the database, sorted by their order in the database.

var flattenedProjectsProjectArray read-only

Returns a flat array of all projects in the database, sorted by their order in the database.

var flattenedSectionsSectionArray read-only

Returns a flat array of all folders and project in the database, sorted by their order in the database.

var flattenedTagsTagArray read-only

Returns a flat array of all tags in the database, sorted by their order in the database.

var flattenedTasksTaskArray read-only

Returns a flat array of all tasks in the database, including inbox items, root tasks for projects, task groups and individual tasks. Tasks are sorted by their order in the database, with the inbox preceeding the library.

var foldersFolderArray read-only

Returns the top-level folders in the database.

var inboxInbox read-only

Returns a copy of the Tasks currently in the inbox.

var libraryLibrary read-only

Returns the top-level folders and projects in the database.

var projectsProjectArray read-only

Returns the top-level folders in the database.

var settingsSettings read-only

var tagsTags read-only

Returns the top-level tags in the database.

DatabaseObject

Instance Properties

var idObjectIdentifier read-only

Returns the identifier for this object.

DatedObject : DatabaseObject

Instance Properties

var addedDate or null

Returns the date the object was first saved. If the object is newly inserted, this will be null. For newly inserted objects, the added property may be set (but once an object is saved for the first time, the property is read-only).

var modifiedDate or null

Returns the date the object was most recently modified. If the object is newly inserted, this will be null. For newly inserted objects, the modified property may be set (but once an object is saved for the first time, the property is read-only).

ActiveObject : DatedObject

Instance Properties

var activeBoolean

If true, then this object is considered active, otherwise the object is considered dropped.

var effectiveActiveBoolean read-only

Returns true if this object and all its containers are active.

Folder : ActiveObject

Class Functions

function byIdentifier(identifier: String)Folder or null

Returns the Folder with the specified identifier, or null if no such folder exists.

Constructors

new Folder(name: String, position: Folder or Folder.ChildInsertionLocation or null)Folder

Instance Functions

function folderNamed(name: String)Folder or null

Returns the first child Folder with the given name that is contained directly in this folder, or null.

function projectNamed(name: String)Project or null

Returns the first child Project of this folder with the given name, or null.

function sectionNamed(name: String)Project or Folder or null

Returns the first child Folder or Project in this folder with the given name, or null.

function childNamed(name: String)Project or Folder or null

An alias for sectionNamed.

function apply(function: Function)ApplyResult or null

Calls the given function for this Folder and recursively into any child folders and projects. The tasks within any projects are not descended into.

Instance Properties

var afterFolder.ChildInsertionLocation read-only

Returns a location refering to position just after this folder.

var beforeFolder.ChildInsertionLocation read-only

Returns a location refering to position just before this folder.

var beginningFolder.ChildInsertionLocation read-only

Returns a location refering to the beginning of the contained projects and folders in this folder.

var childrenSectionArray read-only

An alias for sections.

var endingFolder.ChildInsertionLocation read-only

Returns a location refering to the ending of the contained projects and folders in this folder.

var flattenedChildrenSectionArray read-only

An alias for flattenedSections.

var flattenedFoldersFolderArray read-only

Returns a flat array of all folders in this folder, sorted by their order in the database.

var flattenedProjectsProjectArray read-only

Returns a flat array of all projects in this folder, sorted by their order in the database.

var flattenedSectionsSectionArray read-only

Returns a flat array of all folders and project in this folder, sorted by their order in the database.

var foldersFolderArray read-only

Returns the folders contained directly as children of this folder.

var nameString

The name of the folder.

var projectsProjectArray read-only

Returns the projects contained directly as children of this folder.

var sectionsSectionArray read-only

Returns a sorted list of the folders and projects contained directly within this folder.

var statusFolder.Status

The folder's status.

Tag : ActiveObject

Class Functions

function byIdentifier(identifier: String)Tag or null

Returns the Tag with the specified identifier, or null if no such tag exists.

Class Properties

var forecastTagTag or null read-only

The Forecast Tag, if it is set.

Constructors

new Tag(name: String, position: Tag or Tag.ChildInsertionLocation or null)Tag

Instance Functions

function tagNamed(name: String)Tag or null

Returns the first child Tag with the given name that is contained directly in this tag, or null.

function childNamed(name: String)Tag or null

An alias for tagNamed.

function apply(function: Function)ApplyResult or null

Calls the given function for this Tag and recursively into any child tags.

Instance Properties

var afterTag.ChildInsertionLocation read-only

Returns a location refering to position just after this tag.

var allowsNextActionBoolean

If set and the tag is active, tasks with this tag applied cannot be the next task of a project.

var availableTasksTaskArray read-only

Returns a sorted list of the tasks associated with this tag that are currently available. Recent changes may not be reflected until a cleanUp is performed on the database.

var beforeTag.ChildInsertionLocation read-only

Returns a location refering to position just before this tag.

var beginningTag.ChildInsertionLocation read-only

Returns a location refering to the beginning of the contained tags in this tag.

var childrenTagArray read-only

An alias for tags.

var endingTag.ChildInsertionLocation read-only

Returns a location refering to the ending of the contained tags in this tag.

var flattenedChildrenTagArray read-only

An alias for flattenedTags.

var flattenedTagsTagArray read-only

Returns a flat array of all tasks contained within this task. Tasks are sorted by their order in the database.

var nameString

var projectsProjectArray read-only

A convenience property that returns only Projects for the root tasks associated with this Tag.

var remainingTasksTaskArray read-only

Returns a sorted list of the tasks associated with this tag that remaing to be completed. Recent changes may not be reflected until a cleanUp is performed on the database.

var statusTag.Status

The current status of the tag as a whole, which is derived from allowsNextAction and active.

var tagsTagArray read-only

Returns a sorted list of the tags contained directly within this tag, sorted by their library order.

var tasksTaskArray read-only

Returns a sorted list of the tasks associated with this tag.

Task : ActiveObject

Class Functions

function byParsingTransportText(text: String, singleTask: Boolean or null)Array of Task

Returns an array of tasks by parsing the transport text formatted input. Optionally, only the first task can be requested (but will still be returned in an array).

function byIdentifier(identifier: String)Task or null

Returns the Task with the specified identifier, or null if no such task exists.

Constructors

new Task(name: String, position: Project, Task, or Task.ChildInsertionLocation or null)Task

Returns a new Task at the given location. If a project or task is given as a location, the new task is placed at the end of the children of that parent. If no location is specified, then the task is created at the end of the inbox.

Instance Functions

function taskNamed(name: String)Task or null

Returns the first child Task with the given name that is contained directly in this task, or null.

function childNamed(name: String)Task or null

An alias for taskNamed.

function addLinkedFileURL(url: URL)

Links a file URL to this task. In order to be considered a file URL, url must have the file scheme. That is, url must be of the form file://path-to-file. The file at url will not be added to database, rather a bookmark leading to it will be added. In order to add files to a task, use the addAttachment function. Linking files is especially useful for large files, as including large files in the database can degrade app performance.

function removeLinkedFileWithURL(url: URL)

Removes the first link to a file with the given url. This removes the bookmark that leads to the file at url. If the file itself is present in the database, use the removeAttachmentAtIndex function instead.

function addAttachment(attachment: FileWrapper)

Adds attachment as an attachment to the task. If the attachment is large, consider using the addLinkedFileURL function instead. Including large attachments in the database can degrade app performance.

function removeAttachmentAtIndex(index: Number)

Removes the attachment at index from this task's attachments array.

function addTag(tag: Tag)

Adds a Tag to this task, appending it to the end of the list of associated tags. If the tag is already present, no change is made. The Database function moveTags can be used to control the ordering of tags within the task.

function addTags(tags: Array of Tag)

Adds multiple Tags to this task, appending them to the end of the list of associated tags. For any tags already associated with the Task, no change is made. The Database function moveTags can be used to control the ordering of tags within the task.

function removeTag(tag: Tag)

Removes a Tag from this task. If the tag is not associated with this task, no change is made.

function removeTags(tags: Array of Tag)

Removes multiple Tags from this task. If a tag is not associated with this task, no change is made.

function clearTags()

Removes multiple Tags from this task. If a tag is not associated with this task, no change is made.

function markComplete(date: Date or null)Task

If the task is not completed, marks it as complete with the given completion date (or the current date if no date is specified). For repeating tasks, this makes a clone of the task and marks that clone as completed. In either case, the task that has been marked completed is returned.

function markIncomplete()

If the task is completed, marks it as incomplete.

function drop(allOccurrences: Boolean)

Drops this Task. If true is passed in for allOccurrences then this task will not repeat, even if it has a repititionRule set on it. If false is passed in for allOccurrences, this task will repeat as normal.

function apply(function: Function)ApplyResult or null

Calls the given function for this Task and recursively into any child task.

function addNotification(info: Number or Date)Task.Notification

Add a notification from the specification in info. Supplying a Date creates an absolute notification that will fire at that date. Supplying a Double will create a due-relative notification. Specifying a due relative notification when this task's effectiveDueDate is not set will result in an error.

function removeNotification(notification: Task.Notification)

Remove an active notification for this task. Supplying a notification that is not in this task's notifications array, or a notification that has task to something other than this task results in an error.

Instance Properties

var afterTask.ChildInsertionLocation read-only

The location after this task within its parent task's children. If this task has no parent task, then this is the position adjacent to it in its container.

var assignedContainerProject, Task, or Inbox or null

For tasks in the inbox, the tentatively assigned project or parent task, which will be applied on cleanup.

var attachmentsArray of FileWrapper

An array of FileWrapper objects representing the attachments associated with the task.

var beforeTask.ChildInsertionLocation read-only

The location before this task within its parent task's children. If this task has no parent task, then this is the position adjacent to it in its container.

var beginningTask.ChildInsertionLocation read-only

The location at the beginning of this task's children.

var childrenTaskArray read-only

An alias for tasks.

var completedBoolean read-only

True if the task has been marked completed. Note that a task may be effectively considered completed if a containing task is marked completed.

var completedByChildrenBoolean

If set, the Task will be automatically marked completed when its last child Task is marked completed.

var completionDateDate or null read-only

If set, the Task is completed.

var containingProjectProject or null read-only

The Project that this Task is contained in, either as the root of the project or indirectly from a parent task. If this task is in the inbox, then this will be null.

var deferDateDate or null

If set, the Task is not actionable until this date.

var dropDateDate or null read-only

If set, the Task is dropped.

var dueDateDate or null

If set, the Task should be completed by this date.

var effectiveCompletedDateDate or null read-only

Returns the computed effective completion date for the Task, based on its local completionDate and those of its containers.

var effectiveDeferDateDate or null read-only

Returns the computed effective defer date for the Task, based on its local deferDate and those of its containers.

var effectiveDropDateDate or null read-only

Returns the computed effective drop date for the Task, based on its local dropDate and those of its containers.

var effectiveDueDateDate or null read-only

Returns the computed effective due date for the Task, based on its local dateDue and those of its containers.

var effectiveFlaggedBoolean read-only

Returns the computed effective flagged status for the Task, based on its local flagged and those of its containers.

var endingTask.ChildInsertionLocation read-only

The location at the end of this task's children.

var estimatedMinutesNumber or null

The estimated number of minutes this task will take to finish, or null if no estimate has been made.

var flaggedBoolean

The flagged status of the task.

var flattenedChildrenTaskArray read-only

An alias for flattenedTasks.

var flattenedTasksTaskArray read-only

Returns a flat array of all tasks contained within this task. Tasks are sorted by their order in the database.

var hasChildrenBoolean read-only

Returns true if this task has children, more efficiently than checking if children is empty.

var inInboxBoolean read-only

True if the task is a direct child of the inbox, but not if the task is contained by another task that is in the inbox.

var linkedFileURLsArray of URL read-only

The list of file URLs linked to this task. The files at these URLs are not present in the database, rather the database holds bookmarks leading to these files. These links can be read on iOS, but not written to.

var nameString

The title of the task.

var noteString

The tasks's note.

var notificationsArray of Task.Notification read-only

An array of the notifications that are active for this task.

var projectProject or null read-only

The Project that this Task is the root task of, or null if this task is in the inbox or contained by another task.

var repetitionRuleTask.RepetitionRule or null

The object holding the repetition properties for this task, or null if it is not repeating.

var sequentialBoolean

If true, then children of this task form a dependency chain. For example, the first task blocks the second one until the first is completed.

var shouldUseFloatingTimeZoneBoolean

When set, the dueDate and deferDate properties will use floating time zones. (Note: if a Task has no due or defer dates assigned, this property will revert to the database's default setting.)

var tagsTagArray read-only

Returns the Tags associated with this Task.

var taskStatusTask.Status read-only

Returns the current status of the task.

var tasksTaskArray read-only

Returns all the tasks contained directly in this task, sorted by their library order.

Perspective.Custom : DatedObject

Class Functions

function byName(name: String)Perspective.Custom or null

A custom perspective with the given name, if one exists. If there are multiple perspectives with the same name, it is not defined which will be returned.

function byIdentifier(identifier: String)Perspective.Custom or null

Returns the custom perspective with the specified identifier, or null if no such perspective exists.

Class Properties

var allArray of Perspective.Custom read-only

Returns all the custom perspectives.

Instance Properties

var identifierString read-only

The unique identifier of the custom perspective.

var nameString read-only

The name of the custom perspective.

Task.Notification : DatedObject

Instance Properties

var absoluteFireDateDate

The absolute date at which this notification will fire, if its kind is absolute. Getting or setting this property throws an error if this notification's kind is not absolute.

var initialFireDateDate read-only

The time at which this notification will fire. For due or defer-relative notifications, this date will change with its task object's due and defer dates.

var isSnoozedBoolean read-only

Whether or not this notification has been snoozed.

var kindTask.Notification.Kind read-only

This notification's kind. A kind of unknown indicates that the notification is in an invalid state.

var nextFireDateDate or null read-only

The next time at which this notification will fire. This will only have a value if the initialFireDate is not yet reached, or this notification's repeatInterval is greater than 0.

var relativeFireOffsetNumber

The relative offset in minutes at which this notification will fire from the specified date on its task. Getting or setting this property throws an error if this notification's kind is not either dueRelative or deferRelative.

var repeatIntervalNumber

How often in seconds this notification will fire once its initialFireDate is reached. Setting this to 0 or any negative number will cease repetition of this notification.

var taskTask or null read-only

The Task object this notification will fire for.

var usesFloatingTimeZoneBoolean read-only

Whether or not the notification's fire date uses floating time zones. This can only return true if the notification's kind is absolute. This can be changed by setting shouldUseFloatingTimeZoneon this notification'stask`

Project : DatabaseObject

Class Functions

function byIdentifier(identifier: String)Project or null

Returns the Project with the specified identifier, or null if no such project exists.

Constructors

new Project(name: String, position: Folder or Folder.ChildInsertionLocation or null)Project

Instance Functions

function taskNamed(name: String)Task or null

Returns the first top-level Task in this project the given name, or null.

function addAttachment(attachment: FileWrapper)

Adds attachment as an attachment to the Project's root Task. If the attachment is large, consider using the addLinkedFileURL function instead. Including large attachments in the database can degrade app performance.

function removeAttachmentAtIndex(index: Number)

Removes the attachment at index from this Project's root Task's attachments array.

function markComplete(date: Date or null)Task

If the project is not completed, marks it as complete with the given completion date (or the current date if no date is specified). For repeating project, this makes a clone of the project and marks that clone as completed. In either case, the project that has been marked completed is returned.

function markIncomplete()

If the project is completed, marks it as incomplete.

function addNotification(info: Number or Date)Task.Notification

Add a notification to the project from the specification in info. Supplying a Date creates an absolute notification that will fire at that date. Supplying a Double will create a due-relative notification. Specifying a due-relative notification when this project's task's effectiveDueDate is not set will result in an error.

function removeNotification(notification: Task.Notification)

Remove an active notification for this project. Supplying a notification that is not in this task's notifications array, or a notification that has task to something other than this project's task results in an error.

function addTag(tag: Tag)

Adds a Tag to this project, appending it to the end of the list of associated tags. If the tag is already present, no change is made. The Database function moveTags can be used to control the ordering of tags within the task.

function addTags(tags: Array of Tag)

Adds multiple Tags to this project, appending them to the end of the list of associated tags. For any tags already associated with the Task, no change is made. The Database function moveTags can be used to control the ordering of tags within the task.

function removeTag(tag: Tag)

Removes a Tag from this project. If the tag is not associated with this project, no change is made.

function removeTags(tags: Array of Tag)

Removes multiple Tags from this project. If a tag is not associated with this project, no change is made.

function clearTags()

Removes multiple Tags from this project. If a tag is not associated with this project, no change is made.

function addLinkedFileURL(url: URL)

Links a file URL to this task. In order to be considered a file URL, url must have the file scheme. That is, url must be of the form file://path-to-file. The file at url will not be added to database, rather a bookmark leading to it will be added. In order to add files to a task, use the addAttachment function. Linking files is especially useful for large files, as including large files in the database can degrade app performance. This function throws an error if invoked on iOS.

function removeLinkedFileWithURL(url: URL)

Removes the first link to a file with the given url. This removes the bookmark that leads to the file at url. If the file itself is present in the database, use the removeAttachmentAtIndex function instead.

Instance Properties

var afterFolder.ChildInsertionLocation read-only

Returns a location refering to the position just after this project within its containing Folder or Database.

var attachmentsArray of FileWrapper

An array of FileWrapper objects representing the attachments associated with the Project's root Task.

var beforeFolder.ChildInsertionLocation read-only

Returns a location refering to the position just before this project within its containing Folder or Database.

var beginningTask.ChildInsertionLocation read-only

Returns a location referring to the position after the last Task directly contained in the root task of this project.

var childrenTaskArray read-only

An alias for tasks.

var completedBoolean read-only

True if the project has been marked completed. Note that a project may be effectively considered completed if a containing project is marked completed.

var completedByChildrenBoolean

If set, the project will be automatically marked completed when its last child Task is marked completed.

var completionDateDate or null

If set, the project is completed.

var containsSingletonActionsBoolean

If set to true, the project contains single tasks, and has no next task.

var defaultSingletonActionHolderBoolean

If set to true, this is the Project that inbox tasks that have enough information specified (as selected by the user's preferences) will be filed into upon a clean-up.

var deferDateDate or null

If set, the project is not actionable until this date.

var dropDateDate or null

If set, the project is dropped.

var dueDateDate or null

If set, the project should be completed by this date.

var effectiveCompletedDateDate or null read-only

Returns the computed effective completion date for the Project, based on its local completionDate and those of its containers.

var effectiveDeferDateDate or null read-only

Returns the computed effective defer date for the Project, based on its local deferDate and those of its containers.

var effectiveDropDateDate or null read-only

Returns the computed effective drop date for the Project, based on its local dropDate and those of its containers.

var effectiveDueDateDate or null read-only

Returns the computed effective due date for the Project, based on its local dateDue and those of its containers.

var effectiveFlaggedBoolean read-only

Returns the computed effective flagged status for the Project, based on its local flagged and those of its containers.

var endingTask.ChildInsertionLocation read-only

Returns a location referring to the position before the first Task directly contained in the root task of this project.

var estimatedMinutesNumber or null

The estimated number of minutes this Project will take to finish, or null if no estimate has been made.

var flaggedBoolean

The flagged status of the project.

var flattenedChildrenTaskArray read-only

An alias for flattenedTasks.

var flattenedTasksTaskArray read-only

Returns a flat array of all tasks contained within this Project's root Task. Tasks are sorted by their order in the database.

var hasChildrenBoolean read-only

Returns true if this Project's root Task has children, more efficiently than checking if children is empty.

var lastReviewDateDate or null

var linkedFileURLsArray of URL read-only

The list of file URLs linked to this project's root task. The files at these URLs are not present in the database, rather the database holds bookmarks leading to these files. These links can be read on iOS, but not written to.

var nameString

The name of the Projects root task.

var nextReviewDateDate or null

var nextTaskTask or null read-only

Returns the very next task that can be completed in the project, or null if there is none or the project contains singleton actions.

var noteString

The Project's root Task's note.

var notificationsArray of Task.Notification read-only

An array of the notifications that are active for this project.

var repetitionRuleTask.RepetitionRule or null

The object holding the repetition properties for this project, or null if it is not repeating.

var sequentialBoolean

If true, then children of this project form a dependency chain. For example, the first task blocks the second one until the first is completed.

var shouldUseFloatingTimeZoneBoolean

When set, the dueDate and deferDate properties will use floating time zones. (Note: if a Project has no due or defer dates assigned, this property will revert to the database's default setting.)

var statusProject.Status

The current status of the project as a whole. This does not reflect the status of individual tasks within the project root task -- a project may be marked with the Done status and its individual tasks will be left with the completion state they had, in case the status is changed again to Active.

var tagsTagArray read-only

Returns the Tags associated with this Project.

var taskTask read-only

Returns the root task of the project, which holds the bulk of the project information, as well as being the container for tasks within the project. If you wish to copy the project or move it to a location that requires tasks, you would use this task as the object to be copied or moved.

var taskStatusTask.Status read-only

Returns the current status of the project.

var tasksTaskArray read-only

Returns all the tasks contained directly in this Project's root Task, sorted by their library order.

DateComponents

Constructors

new DateComponents()DateComponents

Instance Properties

var dateDate or null read-only

var dayNumber or null

var eraNumber or null

var hourNumber or null

var minuteNumber or null

var monthNumber or null

var nanosecondNumber or null

var secondNumber or null

var timeZoneTimeZone or null

var yearNumber or null

Decimal

The Decimal class provides support for operating on base-10 numbers, which may not be exactly representable by types like the built-in JavaScript Number class. Note that Decimal does not use the built-in arithmetic operations; for example, to add two Decimal instances, you must use the add() function.

Class Functions

function fromString(string: String)Decimal

Parses the given string into a Decimal. If the string cannot be parsed, notANumber is returned.

Class Properties

var maximumDecimal read-only

Returns the maximum representable Decimal value.

var minimumDecimal read-only

Returns the minimum representable Decimal value.

var notANumberDecimal read-only

Returns a Decimal that represents a non-number value. Any arithmetic operations involving non-number values will return notANumber.

var oneDecimal read-only

Returns a Decimal representing one.

var zeroDecimal read-only

Returns a Decimal representing zero.

Instance Functions

function toString()String

Converts the Decimal to a String representation.

function add(number: Decimal)Decimal

Generates a new Decimal by adding the argument and the receiver.

function subtract(number: Decimal)Decimal

Generates a new Decimal by subtracting the argument from the receiver.

function multiply(number: Decimal)Decimal

Generates a new Decimal by multiplying the argument and the receiver.

function divide(number: Decimal)Decimal

Generates a new Decimal by dividing the receiver by the argument.

function compare(number: Decimal)Number

Compares the receiver and argument. If the receiver is less than the argument, -1 is returned. If the receiver is greater than the argument, 1 is returned. Otherwise, 0 is returned. notANumber is considered less than any valid number, and equal to itself.

function equals(number: Decimal)Boolean

Returns true if the receiver and argument represent the same number (or both are notANumber), and false otherwise.

Device

Class Properties

var currentDevice read-only

The device the current application is running on.

Instance Properties

var iOSBoolean read-only

A convenience that returns true on iPhone and iPad devices

var iPadBoolean read-only

A convenience that returns true only on iPad devices, but not on iPhone devices.

var macBoolean read-only

A convenience that returns true only on Mac devices.

var operatingSystemVersionVersion read-only

The current operation system version running on the device

var typeDeviceType or null read-only

The general type of the current device

DeviceType

Class Properties

var allArray of DeviceType read-only

An array of all items of this enumeration.

var iPadDeviceType read-only

An iPad

var iPhoneDeviceType read-only

An iPhone

var macDeviceType read-only

A Mac device

Document

Class Functions

function makeNew(resultFunction: Function or null)Promise

Create a new document, which can be populated with data and then presented. On iOS, if the document is not presented by the time the resultFunction returns, it will be closed. On macOS, the document will be left around and accessible to the running script. resultFunction is executed before any functions tethered to the result Promise are executed. Returns a Promise that will yield the new document or an error.

function makeNewAndShow(resultFunction: Function or null)Promise

Create a new document and presents it. Returns a Promise that will yield the new document or an error.

Instance Functions

function close(didCancel: Function or null)

Close this document. If for some reason the document cannot be closed, the didCancel function may be called at some point in the future, with the original document as the single argument. For example, on the Mac the user may review unsaved changes and may cancel the close operation. If the document is closed, the didCancel function will not be called at all.

function save()

Save this document.

function fileWrapper(type: String or null)FileWrapper

Deprecated: Please use makeFileWrapper() instead. Returns a new FileWrapper representing the contents of the document formatted as the specified type, or its current fileType if a null is passed for the type.

function makeFileWrapper(baseName: String, type: String or null)Promise

Generates a FileWrapper representing the contents of the document formatted as the specified type, or its current fileType if a null is passed for the type. Returns a Promise that will yield the file wrapper or an error. The returned file wrapper will have a name based off the given baseName and the default path extension for the requested file type.

function undo()

Undo the last done action.

function redo()

Redo the last undone action.

function show(resultFunction: Function or null)

Presents the document, ordering the window forward on macOS, and possibly closing the existing document and opening the new on on iOS.

Instance Properties

var canRedoBoolean read-only

Whether there are currently any actions that can be redone.

var canUndoBoolean read-only

Whether there are currently any actions that can be undone.

var fileTypeString or null read-only

The file type identifier the document uses when saving, if set.

var nameString or null read-only

Document name.

var writableTypesArray of String read-only

A list of all of the file types that this document can be written as.

DatabaseDocument : Document

Instance Functions

function newWindow()Promise

Returns a Promise that will yield either a newly created and displayed Window or an error. On macOS, this method respects the System Preference governing new window behavior (tab vs. window). That preference is accessible at System Preferences > Dock > Prefer tabs when opening documents.

function newTabOnWindow(window: DocumentWindow)Promise

Returns a Promise that will yield either a new tab adjacent to window or an error. This is not available on iOS.

Instance Properties

var windowsArray of DocumentWindow read-only

Email

A set of parameters for generating an email.

Constructors

new Email()Email

Instance Functions

function generate()

Presents the generated email to the user for them to send (or discard). On iOS, any included attachment FileWrappers that are directories will be converted to Zip files.

Instance Properties

var blindCarbonCopyString or null

var bodyString or null

var carbonCopyString or null

var fileWrappersArray of FileWrapper

var receiverString or null

var subjectString or null

Error

The built-in JavaScript Error constructor.

FilePicker

A FilePicker allows the user to select URLs for files via the system-supplied file picking interface.

Constructors

new FilePicker()FilePicker

Returns a new FilePicker with default settings.

Instance Functions

function show()Promise

Presents the system file selection interface to the user, allowing them to choose one or more files of the given types. The returned Promise will yield the chosen URLs on success. If the user cancels chosing, the Promise will be rejected. Note that even when picking a single file or folder, the result will be an array of URLs.

Instance Properties

var foldersBoolean

If true, then folders may be selected, but not files. In this case, types is ignored. Defaults to false.

var messageString

A message to display describing what files are being picked. This is currently only supported on macOS.

var multipleBoolean

If true, then multiple files may be selected. Defaults to false.

var typesArray of TypeIdentifier or null

The file types that will be allowed. If null, all file types will be allowed. Defaults to null.

FileSaver

A FileSaver allows the user to save a FileWrapper to a URLs via the system-supplied file picking interface.

Constructors

new FileSaver()FileSaver

Returns a new FileSaver with default settings.

Instance Functions

function show(fileWrapper: FileWrapper)Promise

Presents the system file saving interface to the user, allowing them to choose a location and file name to save the file wrapper. The returned Promise will yield the chosen URL on success. If the user cancels chosing, the Promise will be rejected.

Instance Properties

var messageString

A message to display describing what file is being saved. This is currently only supported on macOS.

var nameLabelString

The label shown next to the user-editable file name field. This is currently only supported on macOS.

var promptString

The prompt shown on the the save button. This is currently only supported on macOS.

var typesArray of TypeIdentifier or null

The file types that will be allowed. If null, all file types will be allowed. Defaults to null.

FileWrapper

Class Functions

function withContents(name: String or null, contents: Data)FileWrapper

Returns a new FileWrapper that represents a flat file containing the given data.

function withChildren(name: String or null, children: Array of FileWrapper)FileWrapper

Returns a new FileWrapper that represents a directory with the given child file wrappers. Each child file wrapper must have a unique name specified.

Instance Functions

function filenameForChild(child: FileWrapper)String or null

Returns the unique file name that will be used for the given child FileWrapper, or null if this file wrapper is not a child of the receiver.

Instance Properties

var childrenArray of FileWrapper read-only

Returns an Array of child FileWrappers, if this represents a directory. Otherwise, an empty array is returned.

var contentsData or null read-only

Returns the regular file contents of the wrapper, if this represents a regular file. Otherwise, null is returned.

var destinationURL or null read-only

Returns the destination if this represents a symbolic link. Otherwise, null is returned.

var filenameString or null

Returns the actual file name that was last read for this file wrapper. Depending on the names of other sibling wrappers, this may not be what file name will be written.

var preferredFilenameString or null

Returns the preferred file name that should be used when writing the file wrapper if no other file in the same parent directory wrapper is in use.

var typeFileWrapper.Type read-only

Returns the type of this FileWrapper.

FileWrapper.Type

Class Properties

var DirectoryFileWrapper.Type read-only

A FileWrapper that represents a directory with zero or more child wrappers.

var FileFileWrapper.Type read-only

A FileWrapper that represents a regular file with data contents.

var LinkFileWrapper.Type read-only

A FileWrapper that represents a symbolic link to another location.

var allArray of FileWrapper.Type read-only

An array of all items of this enumeration.

Folder.ChildInsertionLocation

A location specified relative to an existing Folder, Project, or Database. These cannot be instantiated directly, rather they are returned from properties like Folder.beginning, Project.before, or Database.ending.

Folder.Status

Class Properties

var ActiveFolder.Status read-only

The folder is active.

var DroppedFolder.Status read-only

The folder has been dropped.

var allArray of Folder.Status read-only

An array of all items of this enumeration.

ForecastDay

An object representing one of the selectable days in the forecast perspective.

Class Properties

var badgeCountsIncludeDeferredItemsBoolean

Determines whether or not badges on Forecast days include items that are not yet available.

Instance Functions

function badgeKind()ForecastDay.Status

The status of the badge on this forecast day.

Instance Properties

var badgeCountNumber read-only

The number of available tasks on this forecast day.

var dateDate read-only

The date this forecast day represents. If this day's kind is Past or DistantFuture the date returned will be years from the current time.

var deferredCountNumber read-only

The number of remaining deferred tasks on this forecast day.

var kindForecastDay.Kind read-only

var nameString read-only

ForecastDay.Kind

Class Properties

var DayForecastDay.Kind read-only

The node represents a specific day in the Forecast week or month grid.

var DistantFutureForecastDay.Kind read-only

The node represents all days more than a year from now.

var FutureMonthForecastDay.Kind read-only

The node represents a month within the next year.

var PastForecastDay.Kind read-only

The node represents all days in the past.

var TodayForecastDay.Kind read-only

The node represents today.

var allArray of ForecastDay.Kind read-only

An array of all items of this enumeration.

ForecastDay.Status

Class Properties

var AvailableForecastDay.Status read-only

There is at least one available task on the node's day, but no task is due soon or overdue. The node's badgeCount is the number of available tasks.

var DueSoonForecastDay.Status read-only

There is at least one available task on the node's day, and at least one task due that day is due soon, but no tasks due that day are overdue. The node's badgeCount is the number of available tasks.

var NoneAvailableForecastDay.Status read-only

There are no available tasks on the node's day. The node's badgeCount is guaranteed to be zero.

var OverdueForecastDay.Status read-only

There is at least one available task on the node's day, and at least one task due that day is overdue. The node's badgeCount is the number of available tasks.

var allArray of ForecastDay.Status read-only

An array of all items of this enumeration.

Form

Form provides a mechanism to collect input from the user. Each form contains one or more instances of subclasses of Field, which are given a key. As the form is filled out, values object is populated with the values from the user interface.

Constructors

new Form()Form

Instance Functions

function addField(field: Form.Field, index: Number or null)

Adds the new Field to the Form, at the indicated position, or at the end if no position is specified. If the field has a default value, it will be added to the values result object immediately.

function removeField(field: Form.Field)

Removes the Field from the Form. Any entry in the values` for this field will be removed as well.

function show(title: String, confirmTitle: String)Promise

Present the Form to the user, and return a Promise to be fullfilled or rejected when the user commits or cancels the form.

Instance Properties

var fieldsArray of Form.Field read-only

The current Field instances in the form, which will be visible to the user entering input.

var validateFunction or null

A function to check whether the entered values are acceptable. The form to validate is passed as the argument and the function is expected to return a boolean result or null to perform default validation. If an Error is thrown, it's message will be displayed in the form as the reason for validation failure. Note that the validation function may add or remove fields and update entries in the values object (which will cause the interface to be updated). This is called any time the user edits values, or a field is added or removed. If no validate function is specified or it returns null, some per-field default validation will be performed (see Form.Field.Option. If the validate function returns a boolean result, no default validation will be performed.

var valuesObject read-only

An object with the collected values for each field, stored under the key for that field.

Form.Field

A single entry for a user input value in a Form. Each field can only be added to a single Form. This class cannot be constructed directly.

Instance Properties

var displayNameString or null read-only

Human readable string used as the label for this field.

var keyString read-only

Key to use when storing the value for this field in the containing form's values object.

Form.Field.Checkbox : Form.Field

Constructors

new Form.Field.Checkbox(key: String, displayName: String or null, value: Boolean or null)Form.Field.Checkbox

Returns a new Checkbox field, optionally with an initial value (which will be false if no value is specified).

Form.Field.Date : Form.Field

Constructors

new Form.Field.Date(key: String, displayName: String or null, value: Date or null, formatter: Formatter.Date or null)Form.Field.Date

Returns a new Date field, optionally with an initial value, and optionally a date formatter. If no formatter is specified, a default one will be created that follows the user's date formatting preferences to display and determine component ordering when parsing dates. Relative dates like "1d", "tomorrow", "now" can also be entered.

Form.Field.Option : Form.Field

Constructors

new Form.Field.Option(key: String, displayName: String or null, options: Array of Object, names: Array of String or null, selected: Object or null, nullOptionTitle: String or null)Form.Field.Option

Returns a new Option field, allowing the user to pick from a list of option objects. A list of names may also be given, which must have the same length as the options array if so. If no names are given, the objects are converted to strings for display. An initially selected object (which must be a member of the options array) may also be given. If the field is not configured to allow a null value and no initially selected value is specified, the user must select a value before the field is considered valid under the default form validation.

Instance Properties

var allowsNullBoolean

If set to true, an option will be added to allow selecting null.

var nullOptionTitleString or null

If null is allowed, this will be used for the title of that option. Otherwise a default title will be used.

Form.Field.String : Form.Field

A field for text-based input, optionally using a Formatter to convert the string value into a different type.

Constructors

new Form.Field.String(key: String, displayName: String or null, value: Object or null, formatter: Formatter or null)Form.Field.String

Returns a new String field, optionally with an initial value and formatter. If a formatter is specified, the value should be of the output type from the formatter or null. If no formatter is specified, the value should be a string or null.

Formatter

Formatter.Date : Formatter

Class Functions

function withStyle(dateStyle: Formatter.Date.Style, timeStyle: Formatter.Date.Style or null)Formatter.Date

A formatter that will display dates according to the specified date and time formats selected in system settings.

function withFormat(format: String)Formatter.Date

Returns a formatter with a specific ICU date format and the user's current locale, calendar, and timeZone. See http://userguide.icu-project.org/formatparse/datetime/ for details on date format strings.

Class Properties

var iso8601Formatter.Date read-only

Return a date formatter that produces ISO-8601 formatted dates, using the Gregorian calendar and the UTC time zone.

Instance Functions

function stringFromDate(date: Date)String

function dateFromString(string: String)Date or null

Instance Properties

var calendarCalendar

var dateFormatString read-only

var localeLocale

var timeZoneTimeZone

Formatter.Decimal : Formatter

This formatter class formats and parses Decimal-valued strings (note, not Number values).

Class Functions

function currency(code: String or null)Formatter.Decimal

Returns a new formatter that will display the value as a currency value. An ISO currency code may be specified to pick a specific currency, or null may be passed to use the default currency for the user's locale. If the argument is not a valid currency code, an error will be thrown.

Class Properties

var currencyCodesArray of String read-only

Deprecated: Please use the currencyCode property on Locale instead. Returns the list of known ISO currency codes

var customFormatter.Decimal read-only

Returns a new formatter that can be configured with custom settings.

var decimalFormatter.Decimal read-only

Returns a new number formatter that will use both a decimal separator.

var percentFormatter.Decimal read-only

Returns a new number formatter that will display the value as a percentage.

var percentWithDecimalFormatter.Decimal read-only

Returns a new number formatter that will display the value as a percentage with a decimal separator.

var plainFormatter.Decimal read-only

Returns a new number formatter that will not use any separators.

var thousandsAndDecimalFormatter.Decimal read-only

Returns a new number formatter that will use both a thousands and decimal separator.

Instance Functions

function stringFromDecimal(number: Decimal)String or null

Format a Decimal as a string, based on the rules set on the formatter.

function decimalFromString(string: String)Decimal or null

Parses a Decimal from a string, based on the rules set on the formatter. Returns null if the value was not recognized.

Instance Properties

var decimalSeparatorString

The string to display between the whole portion of a number and the decimal portion.

var negativeFormatString

A format string to use for negative values.

var positiveFormatString

A format string to use for positive values.

var thousandsSeparatorString or null

The string to display between groups of digits representing powers of a thousand.

var zeroSymbolString or null

The string to use when displaying a zero value. If this is null, the positiveFormat is used.

Formatter.Duration : Formatter

Constructors

new Formatter.Duration()Formatter.Duration

Instance Functions

function stringFromDecimal(number: Decimal)String or null

function decimalFromString(string: String)Decimal or null

Instance Properties

var hoursPerDayNumber

var hoursPerWeekNumber

var useVerboseFormatBoolean

Formatter.Date.Style

Class Properties

var FullFormatter.Date.Style read-only

Use the user's "full" format as selected in system settings.

var LongFormatter.Date.Style read-only

Use the user's "long" format as selected in system settings.

var MediumFormatter.Date.Style read-only

Use the user's "medium" format as selected in system settings.

var ShortFormatter.Date.Style read-only

Use the user's "short" format as selected in system settings.

var allArray of Formatter.Date.Style read-only

An array of all items of this enumeration.

Function

The built-in JavaScript Function constructor.

Image

LigatureStyle

Class Properties

var AllLigatureStyle read-only

Use all of the available ligatures.

var EssentialLigatureStyle read-only

Use ligatures that are required for proper rendering of text.

var StandardLigatureStyle read-only

Use the default ligatures for the given script.

var allArray of LigatureStyle read-only

An array of all items of this enumeration.

Locale

Class Properties

var identifiersArray of String read-only

The list of known ISO locale identifiers.

Constructors

new Locale(identifier: String)Locale

Instance Properties

var calendarCalendar read-only

The calendar for the locale.

var currencyCodeString or null read-only

The currency code for the locale.

var identifierString read-only

The ISO locale identifier for this object.

MenuItem

Instance Properties

var checkedBoolean

If true, a checkmark is displayed next to the MenuItem's label.

var labelString

The string displayed to describe the MenuItem's action.

NamedStyle.List

Instance Functions

function add(name: String or null)NamedStyle

Makes a new NamedStyle at the end of the NamedStyleList, and optionally assigns it a name.

function byName(name: String)NamedStyle or null

Returns the first named style that has the specified name, or null if none do.

function byIdentifier(identifier: String)NamedStyle or null

Returns the single named style with the specified identifier, or null if no style has that identifier.

function moveStyles(styles: Array of NamedStyle, position: NamedStylePosition)

Reorders the named styles within the NamedStyleList. This cannot be used to move styles between documents.

function duplicateStyles(styles: Array of NamedStyle, position: NamedStylePosition)Array of NamedStyle

Instance Properties

var allArray of NamedStyle read-only

Returns the list of all NamedStyles. Note that the order determine which attribute values are applied if two named styles have conflicting settings.

var beginningNamedStylePosition read-only

Returns a NamedStylePosition that indicates the position before any existing named styles.

var endNamedStylePosition read-only

Returns a NamedStylePosition that indicates the position before after existing named styles.

NamedStylePosition

ObjectIdentifier

A unique identifier referring to a DatabaseObject.

Instance Properties

var objectClassObject or null read-only

Returns the constructor object that would be used for instances of the class for this ObjectIdentifier.

var primaryKeyString read-only

Returns the primary key of the object identifier.

Pasteboard

A pasteboard temporarily holds representations of items of different types for transfer between different applications or different locations in the application.

Class Functions

function makeUnique()Pasteboard

Creates a new unique pasteboard.

Class Properties

var generalPasteboard read-only

The Pasteboard used for user-initiated copy/paste support.

Instance Functions

function availableType(types: Array of TypeIdentifier)TypeIdentifier or null

The first type from the provided list which is available on the pasteboard, or null if none are available.

function addItems(items: Array of Pasteboard.Item)

Appends the new items to the pasteboard.

function clear()

Remove all items from the pasteboard.

function dataForType(type: TypeIdentifier)Data or null

The Data representation for the given type in this pasteboard, or null if none is available.

function setDataForType(data: Data, type: TypeIdentifier)

Set the Data representation for the given type in this pasteboard, replacing any previously set data.

function stringForType(type: TypeIdentifier)String or null

The String representation for the given type in this pasteboard, or null if none is available.

function setStringForType(string: String, type: TypeIdentifier)

Set the String representation for the given type in this pasteboard, replacing any previously set data.

Instance Properties

var URLURL or null

Gets or sets the pasteboard content as a single URL.

var URLsArray of URL or null

Gets or sets the pasteboard content as a list of URLs.

var colorColor or null

Gets or sets the pasteboard content as a single color.

var colorsArray of Color or null

Gets or sets the pasteboard content as a list of colors.

var hasColorsBoolean read-only

Returns true if the pasteboard contains one or more colors.

var hasImagesBoolean read-only

Returns true if the pasteboard contains one or more images.

var hasStringsBoolean read-only

Returns true if the pasteboard contains one or more strings.

var hasURLsBoolean read-only

Returns true if the pasteboard contains one or more URLs.

var imageImage or null

Gets or sets the pasteboard content as a single image.

var imagesArray of Image or null

Gets or sets the pasteboard content as a list of images.

var itemsArray of Pasteboard.Item

The array of individual items on the pasteboard, each potentially with their own set of types.

var stringString or null

Gets or sets the pasteboard content as a single plain-text string.

var stringsArray of String or null

Gets or sets the pasteboard content as a list of plain-text strings.

var typesArray of TypeIdentifier read-only

The list of pasteboard types currently available on the pasteboard.

Pasteboard.Item

Constructors

new Pasteboard.Item()Pasteboard.Item

Make a new empty pasteboard item with no contents.

Instance Functions

function dataForType(type: TypeIdentifier)Data or null

The Data representation for the given type in this pasteboard item, or null if none is available.

function setDataForType(data: Data, type: TypeIdentifier)

Set the Data representation for the given type in this pasteboard item, replacing any previously set data.

function stringForType(type: TypeIdentifier)String or null

The String representation for the given type in this pasteboard item, or null if none is available.

function setStringForType(string: String, type: TypeIdentifier)

Set the String representation for the given type in this pasteboard item, replacing any previously set data.

Instance Properties

var typesArray of TypeIdentifier read-only

The list of types available for this pasteboard item.

Perspective

Class Properties

var allArray of Perspective.BuiltIn or Perspective.Custom read-only

Returns all the built-in and custom perspectives.

Perspective.BuiltIn

Class Properties

var FlaggedPerspective.BuiltIn read-only

The flagged items.

var ForecastPerspective.BuiltIn read-only

The upcoming due items.

var InboxPerspective.BuiltIn read-only

The inbox of tasks.

var NearbyPerspective.BuiltIn read-only

Nearby items on a map (iOS only).

var ProjectsPerspective.BuiltIn read-only

The library of projects.

var ReviewPerspective.BuiltIn read-only

The projects needing review.

var SearchPerspective.BuiltIn read-only

A search of the database. This perspective cannot be set, but might be reported if the user is searching.

var TagsPerspective.BuiltIn read-only

The hierarchy of tags.

var allArray of Perspective.BuiltIn read-only

An array of all items of this enumeration.

Instance Properties

var nameString read-only

The name of the built in perspective.

PlugIn

Class Functions

function find(identifier: String, minimumVersion: Version or null)PlugIn or null

Class Properties

var allArray of PlugIn read-only

Instance Functions

function library(identifier: String)Object or null

Looks for a PlugIn.Library in the receiver and returns it if found.

function action(identifier: String)PlugIn.Action or null

function handler(identifier: String)PlugIn.Handler or null

function resourceNamed(name: String)URL or null

function imageNamed(name: String)Image or null

Instance Properties

var URLURL or null read-only

Returns the original URL from whence this PlugIn came, if known.

var actionsArray of PlugIn.Action read-only

var authorString read-only

Returns the author for the PlugIn.

var descriptionString read-only

Returns the description provided for the PlugIn.

var displayNameString read-only

Returns the localized, human-readable name for the PlugIn.

var handlersArray of PlugIn.Handler read-only

var identifierString read-only

The unique identifier of the PlugIn.

var librariesArray of PlugIn.Library read-only

var versionVersion read-only

Returns the current Version for the PlugIn.

PlugIn.Action

Constructors

new PlugIn.Action(perform: Function)PlugIn.Action

Returns a new PlugIn.Action. Only used within an action JavaScript file embedded within a PlugIn.

Instance Properties

var descriptionString read-only

var labelString read-only

Returns the default label to use for interface controls that invoke the action.

var longLabelString read-only

Returns the label to use for interface controls that invoke the action, when a long amount of space is available.

var mediumLabelString read-only

Returns the label to use for interface controls that invoke the action, when a medium amount of space is available.

var nameString read-only

Returns the name of the PlugIn.Action.

var paletteLabelString read-only

Returns the label to use for interface controls that show a prototype of the action control, such as on a macOS toolbar configuration sheet.

var performFunction read-only

var plugInPlugIn read-only

Returns the PlugIn that contains this object.

var shortLabelString read-only

Returns the label to use for interface controls that invoke the action, when a short amount of space is available.

var validateFunction or null

A function to check whether the action is supported, given the current application state, as determined by the arguments passed (typically including the selection). This optional Function may be configured while the Action is being loaded, but after that the Action will be frozen.

PlugIn.Handler

Constructors

new PlugIn.Handler(invoke: Function)PlugIn.Handler

Returns a new PlugIn.Handler. Only used within an handler JavaScript file embedded within a PlugIn.

Instance Properties

var invokeFunction read-only

The Function that will be executed for each handler registered for an event posted by an application object.

var nameString read-only

Returns the name of the PlugIn.Handler.

var plugInPlugIn read-only

Returns the PlugIn that contains this object.

var willAttachFunction or null

An optional Function that can be set on PlugIn.Handler as it is being loaded (but not after). This function is passed the application object that post events to trigger the handler. The return value should be a state object that is JSON archivable (or undefined if the handler has no state to maintain across invocations).

var willDetachFunction or null

An optional Function that can be set on PlugIn.Handler as it is being loaded (but not after). Called when a previously attached PlugIn.Handler is being detached from an application object. Any return value or thrown error are ignored.

PlugIn.Library

An object that represents a library from a plug-in.

Constructors

new PlugIn.Library(version: Version)PlugIn.Library

Returns a new Library. Typically only used within a library JavaScript file embedded within a PlugIn.

Instance Properties

var nameString read-only

Returns the name of the PlugIn.Library.

var plugInPlugIn read-only

Returns the PlugIn that contains this object.

var versionVersion read-only

Returns the Version of this library, as passed to the constructor.

Project.Status

Class Properties

var ActiveProject.Status read-only

The project is active.

var DoneProject.Status read-only

The project has been marked as completed.

var DroppedProject.Status read-only

The project has been dropped.

var OnHoldProject.Status read-only

The project has been put on-hold.

var allArray of Project.Status read-only

An array of all items of this enumeration.

Promise

The built-in JavaScript Promise constructor.

Selection

An object representing the current selection in a Window.

Instance Properties

var allObjectsArray of Object read-only

Returns all the objects in the selection.

var databaseDatabase or null read-only

Returns the Database object in the selection, if any.

var documentDatabaseDocument or null read-only

The Document containing the selection.

var foldersFolderArray read-only

Returns all the Folder objects in the selection, if any.

var projectsProjectArray read-only

Returns all the Project objects in the selection, if any.

var tagsTagArray read-only

Returns all the Tag objects in the selection, if any.

var tasksTaskArray read-only

Returns all the Task objects in the selection, if any.

var windowDocumentWindow or null read-only

The Window containing the selection.

Settings

Settings represent the database synchronized configuration values. NOTE: editing these should be done with care, as storing invalid values may corrupt your database or produce instability in the various client applications.

Instance Functions

function defaultObjectForKey(key: String)Object or null

function hasNonDefaultObjectForKey(key: String)Boolean

function objectForKey(key: String)Object or null

function setObjectForKey(value: Object or null, key: String)

function boolForKey(key: String)Boolean

function setBoolForKey(value: Boolean, key: String)

function integerForKey(key: String)Number

function setIntegerForKey(value: Number, key: String)

Instance Properties

var keysArray of String read-only

SharePanel

An interface that can display the system share interaction for the given items.

Constructors

new SharePanel(items: Array of URL, String, Image, or FileWrapper)SharePanel

Create a new share panel with the given items.

Instance Functions

function show()

Presents the share panel for its items.

Style

Instance Functions

function set(attribute: Style.Attribute, value: Object or null)Boolean

Sets (or clears) the value for the given style attribute. Styles that cascade from this one will inherit this value, if they don't define their own value or have a closer ancestor style that does. Returns true if a change was actually made, false otherwise. Throws an error if the key does not map to a known attribute, or if the value is of the wrong type for the specified attribute.

function get(attribute: Style.Attribute)Object or null

Looks up the value for the specified style attribute locally, in the cascading and inherited styles, and finally falling back to the default value for the style attribute.

function localValueForAttribute(attribute: Style.Attribute)Object or null

Looks up the value for the specified style attribute locally, returning null if it is not set.

function addNamedStyle(namedStyle: NamedStyle)

Adds the specified NamedStyle to the set of named styles to include in this Style. If the style is already present, or if this would create a loop (adding two NamedStyles to each other's list of named styles), an error will be thrown.

function removeNamedStyle(namedStyle: NamedStyle)

Removes the specified NamedStyle from the set of named styles to include in this Style. If the style is not present, an error will be thrown.

function influencedBy(otherStyle: Style)Boolean

Returns true if the receiver is influenced, directly or indirectly from the passed Style.

function setStyle(style: Style)

Updates all the attributes and inherited styles on the receiver to be the same as the argument Style.

function clear()

Removes all the locally applied style attribute values for this Style.

Instance Properties

var fontFillColorColor

The color used to fill text. Setting the color to null will remove the setting for this style.

var linkURL or null read-only

Returns the URL link for a style, or null if there is no link applied. Note that get(Style.Attribute.Link) on the same style will return the default URL with an empty toString() value when there is no URL applied. If the style represents a file attachment and there is no specific link attribute set, the URL for the file attachment will be returned. If the style represents an file attachment that is embedded in the document, null will be returned.

var locallyDefinedAttributesArray of Style.Attribute read-only

Returns an array of the Style.Attributes defined on this Style.

var namedStylesArray of NamedStyle read-only

Returns the NamedStyles that are directly associated with this Style. If a style attribute lookup doesn't find a value in the local style, then the named styles will be searched.

NamedStyle : Style

Instance Functions

function remove()

Removes the NamedStyle from the document. Any references to it are disconnected as well.

Instance Properties

var afterNamedStylePosition read-only

Returns a NamedStylePosition that indicates the slot after this item.

var beforeNamedStylePosition read-only

Returns a NamedStylePosition that indicates the slot before this item.

var identifierString read-only

A unique identifier for the style, which is suitable for long-lived references.

var nameString

The name of the style that is presented in the interface.

Style.Attribute

Class Properties

var BackgroundColorStyle.Attribute read-only

var BaselineOffsetStyle.Attribute read-only

var BaselineSuperscriptStyle.Attribute read-only

var ExpansionStyle.Attribute read-only

var FontCondensedStyle.Attribute read-only

var FontFamilyStyle.Attribute read-only

var FontFillColorStyle.Attribute read-only

var FontFixedPitchStyle.Attribute read-only

var FontItalicStyle.Attribute read-only

var FontNameStyle.Attribute read-only

var FontNarrowStyle.Attribute read-only

var FontSizeStyle.Attribute read-only

var FontStrokeColorStyle.Attribute read-only

var FontStrokeWidthStyle.Attribute read-only

var FontWeightStyle.Attribute read-only

var KerningAdjustmentStyle.Attribute read-only

var LigatureSelectionStyle.Attribute read-only

var LinkStyle.Attribute read-only

var ObliquenessStyle.Attribute read-only

var ParagraphAlignmentStyle.Attribute read-only

var ParagraphBaseWritingDirectionStyle.Attribute read-only

var ParagraphDefaultTabIntervalStyle.Attribute read-only

var ParagraphFirstLineHeadIndentStyle.Attribute read-only

var ParagraphHeadIndentStyle.Attribute read-only

var ParagraphLineHeightMultipleStyle.Attribute read-only

var ParagraphLineSpacingStyle.Attribute read-only

var ParagraphMaximumLineHeightStyle.Attribute read-only

var ParagraphMinimumLineHeightStyle.Attribute read-only

var ParagraphSpacingStyle.Attribute read-only

var ParagraphSpacingBeforeStyle.Attribute read-only

var ParagraphTabStopsStyle.Attribute read-only

var ParagraphTailIndentStyle.Attribute read-only

var ShadowBlurRadiusStyle.Attribute read-only

var ShadowColorStyle.Attribute read-only

var ShadowOffsetStyle.Attribute read-only

var StrikethroughAffinityStyle.Attribute read-only

var StrikethroughColorStyle.Attribute read-only

var StrikethroughPatternStyle.Attribute read-only

var StrikethroughStyleStyle.Attribute read-only

var UnderlineAffinityStyle.Attribute read-only

var UnderlineColorStyle.Attribute read-only

var UnderlinePatternStyle.Attribute read-only

var UnderlineStyleStyle.Attribute read-only

Instance Properties

var defaultValueObject read-only

Returns the default value that will be used when a style has no local value for this attribute, nor do any of its associated styles.

var keyString read-only

Returns the string used to identify this attribute when calling get or set on a Style instance.

Tag.ChildInsertionLocation

A location specified relative to an existing Tag or Database. These cannot be instantiated directly, rather they are returned from properties like Tag.before or Database.beginning.

Tag.Status

Class Properties

var ActiveTag.Status read-only

The tag is active.

var DroppedTag.Status read-only

The tag has been dropped.

var OnHoldTag.Status read-only

The tag has been put on-hold.

var allArray of Tag.Status read-only

An array of all items of this enumeration.

Task.ChildInsertionLocation

A location specified relative to an existing Task or Database. These cannot be instantiated directly, rather they are returned from properties like Task.before or Database.beginning.

Task.Notification.Kind

Class Properties

var AbsoluteTask.Notification.Kind read-only

This notification fires on a given date, regardless of its task's due and defer dates.

var DueRelativeTask.Notification.Kind read-only

This notification fires at a time relative to its task's due date.

var UnknownTask.Notification.Kind read-only

It is not known what this notification's fire date is relative to.

var allArray of Task.Notification.Kind read-only

An array of all items of this enumeration.

Task.RepetitionMethod

Class Properties

var DeferUntilDateTask.RepetitionMethod read-only

var DueDateTask.RepetitionMethod read-only

var FixedTask.RepetitionMethod read-only

var NoneTask.RepetitionMethod read-only

The task does not repeat.

var allArray of Task.RepetitionMethod read-only

An array of all items of this enumeration.

Task.RepetitionRule

A Task.RepetitionRule describes a pattern of dates using a ICS formatted recurrence string and a Task.RepetitionMethod to describe how those dates are applied to a Task.

Constructors

new Task.RepetitionRule(ruleString: String, method: Task.RepetitionMethod)Task.RepetitionRule

Returns a new Task.RepetitionRule with the specified ICS rule string and repetition method. The the rule string is not valid, or combination with the method is not supported, an error will be thrown.

Instance Functions

function firstDateAfterDate(date: Date)Date

Returns the first date described by the repetition rule that is after the given date.

Instance Properties

var methodTask.RepetitionMethod read-only

The method used to create the repetition rule.

var ruleStringString read-only

The ICS rule string used to create the repetition rule.

Task.Status

Class Properties

var AvailableTask.Status read-only

The task is available to work on.

var BlockedTask.Status read-only

The task is not available to work on currently, due to a future defer date, a preceeding task in a sequential project, or having an on-hold tag associated.

var CompletedTask.Status read-only

The task is already completed.

var DroppedTask.Status read-only

The task will not be worked on.

var DueSoonTask.Status read-only

The task is incomplete and due soon.

var NextTask.Status read-only

The task is the first available task in a project.

var OverdueTask.Status read-only

The task is incomplete overdue.

var allArray of Task.Status read-only

An array of all items of this enumeration.

Text

Class Functions

function makeFileAttachment(fileWrapper: FileWrapper, style: Style)Text

Returns a new Text instance that represents a file attachment. The attachment has a single character string content with a special value.

Constructors

new Text(string: String, style: Style)Text

Returns a new Text instance with the given string contents and Style applied to the entire range of text.

Instance Functions

function textInRange(range: Text.Range)Text

Returns a copy of the text in the specified range.

function styleForRange(range: Text.Range)Style

Returns a Style instance for the given range of the Text.

function ranges(component: TextComponent, useEnclosingRange: Boolean or null)Array of Text.Range

Returns an array of TextRanges for the specified component. If useEnclosingRange is true, than any extra characters that separate follow a component will be included in its range. Any extra characters before the first found component will be included in the first range.

function replace(range: Text.Range, with: Text)

Replaces the sub-range of the receiving Text with a copy of the passed in Text (which remains unchanged).

function append(text: Text)

Appends the given Text to the receiver.

function insert(position: Text.Position, text: Text)

Inserts a copy of the given Text at the specified position in the receiver.

function remove(range: Text.Range)

Removes the indicated sub-range of the receiving Text.

function find(string: String, options: Array of Text.FindOption or null, range: Text.Range or null)Text.Range or null

Finds an occurrence of string within the Text and returns the enclosing Text.Range if there is a match. If range is passed, only that portion of the Text is searched. The supplied options, if any, change how the search is performed based on their definition.

Instance Properties

var attachmentsArray of Text read-only

Returns an array of copies of the blocks of Text in the receiver that represent Attachments. Note that editing these instances will not change the original.

var attributeRunsArray of Text read-only

Returns an array of copies of the contiguous blocks of Text in the receiver that have the same style. Note that editing these instances will not change the original.

var charactersArray of Text read-only

Returns an array of copies of the characters in the Text. Note that editing these instances will not change the original.

var endText.Position read-only

Returns a Text.Position indicating the end of the Text.

var fileWrapperFileWrapper or null read-only

Returns the attached file wrapper for the Text (or rather, the first character of the text), if any.

var paragraphsArray of Text read-only

Returns an array of copies of the paragraphs in the Text. Note that editing these instances will not change the original. Paragraphs, if ended by a newline, will contain the newline character.

var rangeText.Range read-only

Returns a Text.Range that spans the entire Text.

var sentencesArray of Text read-only

Returns an array of copies of the sentences in the Text. Note that editing these instances will not change the original.

var startText.Position read-only

Returns a Text.Position indicating the beginning of the Text.

var stringString

Returns a plain String version of the characters in the Text. Note that since JavaScript represents Strings as Unicode code points, the length of the returned string may be differnt from the number of characters in the Text object.

var styleStyle read-only

Returns a Style instance for this Text object.

var wordsArray of Text read-only

Returns an array of copies of the words in the Text. Note that editing these instances will not change the original.

Text.FindOption

Class Properties

var AnchoredText.FindOption read-only

Matches must be anchored to the beginning (or end if Backwards is include) of the string or search range.

var BackwardsText.FindOption read-only

Search starting from the end of the string or range.

var CaseInsensitiveText.FindOption read-only

Compare upper and lower case characters as equal.

var DiacriticInsensitiveText.FindOption read-only

Ignore diacritics. For example, "ö" is considered the same as "o".

var ForcedOrderingText.FindOption read-only

Force an ordering between strings that aren't strictly equal.

var LiteralText.FindOption read-only

Perform exact character-by-character matching.

var NumericText.FindOption read-only

Order numbers by numeric value, not lexigraphically. Only applies to ordered comparisons, not find operations.

var RegularExpressionText.FindOption read-only

For find operations, the string is treated as an ICU-compatible regular expression. If set, no other options can be used except for CaseInsensitive and Anchored.

var WidthInsensitiveText.FindOption read-only

Ignore width differences. For example, "a" is considered the same as 'FULLWIDTH LATIN SMALL LETTER A' (U+FF41).

var allArray of Text.FindOption read-only

An array of all items of this enumeration.

Text.Position

Text.Range

Constructors

new Text.Range(start: Text.Position, end: Text.Position)Text.Range

Instance Properties

var endText.Position read-only

Returns the Text.Position for the end of the Text.Range

var isEmptyBoolean read-only

Returns true if the Text.Range contains no characters.

var startText.Position read-only

Returns the Text.Position for the beginning of the Text.Range

TextAlignment

Class Properties

var CenterTextAlignment read-only

Visually center aligned.

var JustifiedTextAlignment read-only

Fully-justified.

var LeftTextAlignment read-only

Visually left aligned.

var NaturalTextAlignment read-only

Use the default alignment based on the characters in the text.

var RightTextAlignment read-only

Visually right aligned.

var allArray of TextAlignment read-only

An array of all items of this enumeration.

TextComponent

Class Properties

var AttachmentsTextComponent read-only

The ranges of Text which represent Attachments.

var AttributeRunsTextComponent read-only

The ranges of Text which have the same attributes.

var CharactersTextComponent read-only

The individual characters of the Text. Note that some characters (like emoji) consist of multiple Unicode code points.

var ParagraphsTextComponent read-only

The paragraphs of Text. Unlike other options, the line breaking characters that end the paragraph are included.

var SentencesTextComponent read-only

The sentences of the Text.

var WordsTextComponent read-only

The words in the Text. Whitespace or other word break characters are not included.

var allArray of TextComponent read-only

An array of all items of this enumeration.

TimeZone

Class Properties

var abbreviationsArray of String read-only

The list of known time zone abbreviations.

Constructors

new TimeZone(abbreviation: String)TimeZone or null

Make a new TimeZone with the given abbreviation. Note that the returned TimeZone may have a different abbreviation than the passed argument. For example, if one of "PST" or "PDT" is requested that doens't match the current use of daylight savings time, the one that does match will be returned.

Instance Properties

var abbreviationString or null read-only

The abbreviation for the TimeZone.

var daylightSavingTimeBoolean read-only

Returns true if the TimeZone is currently using daylight savings time.

var secondsFromGMTNumber read-only

The current difference in seconds between this TimeZone and GMT.

Timer

Class Functions

function once(interval: Number, action: Function)Timer

Makes a new Timer that will fire once, after the specified interval (in seconds from the current time). When the Timer fires, the passed in Function is called, passing the Timer as its argument.

function repeating(interval: Number, action: Function)Timer

Makes a new Timer that will fire repeatedly with the specified interval (in seconds, with the first invocation happening that interval after the current time). When the Timer fires, the passed in Function is called, passing the Timer as its argument.

Instance Functions

function cancel()

Instance Properties

var intervalNumber read-only

ToolbarItem

Instance Properties

var imageImage or null

var labelString

var toolTipString or null

Tree

Instance Functions

function nodeForObject(object: Object)TreeNode or null

Returns the TreeNode that represents the object in this Tree, or null if it cannot be found (possibly filtered out).

function nodesForObjects(object: Array of Object)Array of TreeNode

Returns an array of TreeNodes for the objects that are currently in the Tree, according to the same filters as nodeForObject(). The size of the resulting node array may be smaller (even empty) than the passed in objects array.

function reveal(nodes: Array of TreeNode)

Ensures the ancestor nodes of all the specified nodes are expanded.

function select(nodes: Array of TreeNode, extending: Boolean or null)

Selects the specified TreeNodes that are visible (nodes with collapsed ancestors cannot be selected). If extending is true, the existing selection is not cleared.

function copyNodes(nodes: Array of TreeNode, to: Pasteboard)

Writes a serialized version of the nodes to the specified pasteboard.

function paste(from: Pasteboard, parentNode: TreeNode or null, childIndex: Number or null)

Attempts to read a serialized version of nodes from the pasteboard and create new items at the specified location in the receiver. If a parent node is not specified, then the root node of the receiver is assumed. If a childIndex is not specified, any new children are placed at the end of the parent's existing children.

Instance Properties

var rootNodeTreeNode read-only

Returns the rootNode of the Editor.

var selectedNodesArray of TreeNode read-only

Returns the list of selected TreeNodes, in the order they appear in the tree.

ContentTree : Tree

SidebarTree : Tree

TreeNode

Instance Functions

function expand(completely: Boolean or null)

Attempts to expand the TreeNode. If completely is passed, all the child nodes will be expanded as they allow.

function collapse(completely: Boolean or null)

Attempts to collapse the TreeNode. If completely is passed, all the child nodes will be collapse as they allow.

function expandNote(completely: Boolean or null)

Attempts to expand the inline note of the TreeNode. If completely is passed, all the child node notes will be expanded.

function collapseNote(completely: Boolean or null)

Attempts to collapse the inline note of the TreeNode. If completely is passed, all the child node notes will be collapsed.

function reveal()

Expands all the

function apply(function: Function)

Calls the supplied function for each TreeNode in the receiver (including the receiver), passing that node as the single argument.

Instance Properties

var canCollapseBoolean read-only

Returns true if this TreeNode can be collapsed.

var canExpandBoolean read-only

Returns true if this TreeNode can be expanded.

var childrenArray of TreeNode read-only

Returns the array of children that are visible under this node, according to any filtering that is being done, and in the order specified by any sorting rules that have been established.

var indexNumber read-only

Returns the index of this TreeNode among its siblings, or zero for the rootNode.

var isExpandedBoolean read-only

Returns true if this TreeNode is currently expanded.

var isNoteExpandedBoolean read-only

Returns true if the note of this TreeNode is currently expanded.

var isRevealedBoolean read-only

Returns true if the TreeNode is the rootNode or all of its ancestor nodes are expanded.

var isRootNodeBoolean read-only

Returns true if this node is the rootNode of its tree.

var isSelectableBoolean read-only

Returns true if this TreeNode can be selected. The rootNode cannot be selected, nor can nodes that aren't revealed.

var isSelectedBoolean

Set to true if this TreeNode is in the list of selected nodes for its tree. Attempting to set this to true will do nothing if the node is not revealed (or is the root node).

var levelNumber read-only

Returns the nesting level of the TreeNode, relative to the root of the tree. The rootNode of an Outline has level zero, its children have level one, and so on. Note that if only a portion of the model is being shown, this level may not match the level of the underlying object.

var objectObject read-only

The model object which this node wraps.

var parentTreeNode or null read-only

Returns the TreeNode that contains this node, or null if this is the rootNode.

var rootNodeTreeNode read-only

Returns the root TreeNode for the tree that this node belongs to.

TypeIdentifier

Class Properties

var URLTypeIdentifier read-only

The URL type.

var binaryPropertyListTypeIdentifier read-only

The binary property list type.

var csvTypeIdentifier read-only

The comma-separated text type.

var editableTypesArray of TypeIdentifier read-only

The list of TypeIdentifiers that can be read and written natively by documents in this application.

var gifTypeIdentifier read-only

The GIF image type.

var imageTypeIdentifier read-only

A generic type that all image types conform to.

var jpegTypeIdentifier read-only

The JPEG image type.

var jsonTypeIdentifier read-only

The JSON type.

var ofocusTypeIdentifier read-only

The OmniFocus document file type.

var pdfTypeIdentifier read-only

The PDF type.

var plainTextTypeIdentifier read-only

The plain text type.

var pngTypeIdentifier read-only

The PNG image type.

var propertyListTypeIdentifier read-only

The generic property list type.

var readableTypesArray of TypeIdentifier read-only

The list of TypeIdentifiers that can be read by documents in this this application.

var rtfTypeIdentifier read-only

The RTF type.

var rtfdTypeIdentifier read-only

The RTFD type.

var taskPaperTypeIdentifier read-only

The TaskPaper-formatted tasks pasteboard type.

var tasksTypeIdentifier read-only

The pasteboard type identifier for OmniFocus tasks and projects.

var tasksAndFoldersTypeIdentifier read-only

The pasteboard type identifier for OmniFocus tasks, projects, and folders.

var tiffTypeIdentifier read-only

The TIFF image type.

var writableTypesArray of TypeIdentifier read-only

The list of TypeIdentifiers that can be written by documents in this application (though some documents may be exportable only in a subset of these types).

var xmlPropertyListTypeIdentifier read-only

The XML property list type.

Constructors

new TypeIdentifier(identifier: String)TypeIdentifier

Returns a new FileType with the given identifier.

Instance Functions

function conformsTo(other: TypeIdentifier)Boolean

Returns true if the instance is the same as the given argument or a more specific type. For example, TypeIdentifier.png.conformsTo(TypeIdentifier.image) will be true, but TypeIdentifier.png.conformsTo(TypeIdentifier.plainText) will be false.

Instance Properties

var displayNameString read-only

Returns a human-readable description of the type.

var identifierString read-only

Returns a unique string for a type identifier, suitable for archiving or encoding in scripts.

var pathExtensionsArray of String read-only

The list of filesystem path extensions used by this type.

URL

Class Functions

function choose(types: Array of String)URL or null

Deprecated: Please use FilePicker instead.

Allows the user to choose a file URL if possible and returns a new instance, or null otherwise.

function chooseFolder()URL or null

Deprecated: Please use FilePicker instead.

Allows the user to choose a folder URL if possible and returns a new instance, or null otherwise.

function fromString(string: String)URL or null

Parses the string as a URL if possible and returns a new instance, or null otherwise.

function tellScript(app: String, js: String, arg: Object or null)URL or null

Creates a URL to invoke the given JS on the given app (url scheme) appropriate for use with the call function.

function tellFunction(app: String, jsFunction: Function, arg: Object or null)URL or null

Creates a URL to invoke the given JS function on the given app (url scheme) appropriate for use with the call function.

Class Properties

var currentAppSchemeString read-only

Returns the URL scheme for the current app.

Instance Functions

function fetch(success: Function, failure: Function or null)

Get the contents at the destination of this URL.

function call(success: Function, failure: Function or null)

Invoke an x-callback-url API end-point, with the callback functions being invoked when a reply is received. When a reply is received, the parameters of that URL are decoded as JSON, or left as String values if not valid JSON, and stored as properties of a result object. For a successful reply, if the result object has one property, its value is passed as the first argument to the success function. If there are zero or more than one parameters, the full object is passed as the first argument. In both cases, the success function is passed a second argument that is the full object of parameters. The failure callback is always passed the object will all the result parameters, typically errorCode and errorMessage.

function open()

Ask the system to open this URL.

function find(types: Array of TypeIdentifier, recurse: Boolean or null)Promise

Scan a directory URL for files of the given types. If recurse is specified and is false, only the immediate contents of the directory will be considered. If recurse is not specified or is true, the full directory tree will be scanned.

function toString()String

Instance Properties

var stringString read-only

String representation of this URL.

var toObjectObject or null read-only

UnderlineAffinity

Class Properties

var ByWordUnderlineAffinity read-only

Underline only the words, but not the space between them.

var NoneUnderlineAffinity read-only

Underline the entire range.

var allArray of UnderlineAffinity read-only

An array of all items of this enumeration.

UnderlinePattern

Class Properties

var DashUnderlinePattern read-only

Dashed line.

var DashDotUnderlinePattern read-only

Alternating dashes and dots.

var DashDotDotUnderlinePattern read-only

Alternating dashes and pairs of dots.

var DotUnderlinePattern read-only

Dotted line.

var SolidUnderlinePattern read-only

A continuous line.

var allArray of UnderlinePattern read-only

An array of all items of this enumeration.

UnderlineStyle

Class Properties

var DoubleUnderlineStyle read-only

Two lines.

var NoneUnderlineStyle read-only

No underline.

var SingleUnderlineStyle read-only

A single line.

var ThickUnderlineStyle read-only

A single thick line.

var allArray of UnderlineStyle read-only

An array of all items of this enumeration.

Version

Constructors

new Version(versionString: String)Version

Parses a string representation of a Version and returns an instance, or throws an error if the string isn't a valid version.

Instance Functions

function equals(version: Version)Boolean

Returns true if the receiving Version is equal to the argument Version.

function atLeast(version: Version)Boolean

Returns true if the receiving Version is at the same as or newer than the argument Version.

function isAfter(version: Version)Boolean

Returns true if the receiving Version is strictly after the argument Version.

function isBefore(version: Version)Boolean

Returns true if the receiving Version is strictly before the argument Version.

Instance Properties

var versionStringString read-only

Returns as an opaque string representation of the Version, suitable for display or logging. This should never be used in comparisons of any sort.

Window

Instance Functions

function close()

DocumentWindow : Window

Instance Functions

function selectObjects(objects: Array of DatabaseObject)

Clears the current selection and then selects the given objects, if present in the current perspective of this window. On iOS, if objects contains more than one object, this will put the outline view into edit mode to accomodate multiple selection.

function forecastDayForDate(date: Date)ForecastDay

Returns a ForecastDay object that encompasses date. This will throw an error if Forecast is not the current perspective in this window.

function selectForecastDays(days: Array of ForecastDay)

Selects the days in the Forecast picker represented by days. On iOS, only the first day is selected, and the rest are ignored. This will throw an error if Forecast is not the current perspective in this window.

Instance Properties

var contentContentTree or null read-only

The tree of nodes representing the content area of the window.

var focusSectionArray or null

The Folders and Projects that the window is focusing on, limiting the sidebar to show only these items. Focus is only supported on macOS- getting or setting this on iOS results in an error.

var isTabBoolean read-only

Whether or not this window is a tab. This is not available on iOS.

var perspectivePerspective.BuiltIn or Perspective.Custom or null

var selectionSelection read-only

The current selection in the window.

var sidebarSidebarTree or null read-only

The tree of nodes representing the sidebar of the window.

var tabGroupWindowsArray of DocumentWindow read-only

The array of sibling Window objects that are in tabs alongside this Window. If isTab is false, then this will return an array that solely contains this Window. This is not available on iOS.