OmniFocus
OmniFocus is a professional task manager for organizing projects, actions, tags, and forecast views. Protocol Launcher allows you to generate OmniFocus URL scheme links for adding actions, pasting TaskPaper content, and opening key perspectives.
Usage
There are two ways to use this library:
- On-Demand import from subpaths enables tree-shaking and keeps bundles small.
- Full Import from the root package is convenient but includes all app modules.
Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.
Select Installation Method
On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.
Open OmniFocus
ts
import { open } from 'protocol-launcher/omnifocus'
const url = open()Add Action
Create a new action, optionally assigning project, tag/context, due date, flag, and x-callback-url parameters.
ts
import { add } from 'protocol-launcher/omnifocus'
const url = add({
name: 'Pick up milk',
note: 'You gotta',
})
const url = add({
name: 'Email team',
context: 'Mac',
due: 'jun 25 8am',
estimate: '30m',
flag: true,
project: 'Launch',
revealNewItem: true,
})
const url = add({
name: 'My shiny new task',
autosave: true,
xSuccess: 'omnifocus:///',
})Paste TaskPaper
Paste TaskPaper content into the Inbox, Projects, or another OmniFocus target.
ts
import { paste } from 'protocol-launcher/omnifocus'
const url = paste({
content: '- Pick up milk',
target: 'inbox',
})
const url = paste({
content: 'Launch:\n\t- Draft announcement',
target: 'projects',
index: 0,
})Open Built-In Perspectives
ts
import { openInbox, openForecast, openToday } from 'protocol-launcher/omnifocus'
const inboxUrl = openInbox()
const forecastUrl = openForecast()
const todayUrl = openToday()Open Custom Perspective
ts
import { openPerspective } from 'protocol-launcher/omnifocus'
const url = openPerspective({
name: 'Due Soon',
})Open Task
ts
import { openTask } from 'protocol-launcher/omnifocus'
const url = openTask({
id: 'mbp0SlWkvqq',
})