All Projects → brandonpittman → Omnifocus

brandonpittman / Omnifocus

Scripts for OmniFocus

Programming Languages

javascript
184084 projects - #8 most used programming language
applescript
352 projects

Projects that are alternatives of or similar to Omnifocus

Leasot
Parse and output TODOs and FIXMEs from comments in your files
Stars: ✭ 729 (+130.7%)
Mutual labels:  productivity, parse
Graph Viz D3 Js
Graphviz web D3.js renderer
Stars: ✭ 297 (-6.01%)
Mutual labels:  parse
Httparse
A push parser for the HTTP 1.x protocol in Rust.
Stars: ✭ 271 (-14.24%)
Mutual labels:  parse
Projectsoundtracks
🎧 List of best Soundtracks to boost your Productivity and Focus
Stars: ✭ 289 (-8.54%)
Mutual labels:  productivity
Pydoro
🍅 pydoro - Terminal Pomodoro Timer
Stars: ✭ 277 (-12.34%)
Mutual labels:  productivity
Demoinfocs Golang
High performance CS:GO demo parser for Go (demoinfo)
Stars: ✭ 288 (-8.86%)
Mutual labels:  parse
Fw
workspace productivity booster
Stars: ✭ 269 (-14.87%)
Mutual labels:  productivity
Resh
Rich Enhanced Shell History - Contextual shell history for zsh and bash
Stars: ✭ 310 (-1.9%)
Mutual labels:  productivity
Flow.launcher
Launch apps with greater control, search files effortlessly and extend features with community plugins. Fast and fluid productivity tool of choice that helps your workflow.
Stars: ✭ 288 (-8.86%)
Mutual labels:  productivity
Babel Plugin Import Graphql
Enables import syntax for .graphql and .gql files
Stars: ✭ 284 (-10.13%)
Mutual labels:  parse
Isolate
Lightweight image browser
Stars: ✭ 284 (-10.13%)
Mutual labels:  productivity
Pubmed parser
📋 A Python Parser for PubMed Open-Access XML Subset and MEDLINE XML Dataset
Stars: ✭ 274 (-13.29%)
Mutual labels:  parse
Daily
Building the homepage every developer deserves 👩🏽‍💻 👨‍💻
Stars: ✭ 4,632 (+1365.82%)
Mutual labels:  productivity
Personal Kanban
📌 Personal Kanban Board is an agile project management tool that helps you visualise your work, limit your work-in-progress (WIP) and to craft & optimise your work flow to get the maximum output. To achieve this, it makes use of columns and cards. Personal Kanban offers visual clue, columns, WIP limits, start point and end point to set you up for success.
Stars: ✭ 268 (-15.19%)
Mutual labels:  productivity
Brewlet
The missing menulet for brew.sh: keeping your packages up-to-date, and your system secure.
Stars: ✭ 298 (-5.7%)
Mutual labels:  productivity
Swiftpascalinterpreter
Simple Swift interpreter for the Pascal language inspired by the Let’s Build A Simple Interpreter article series.
Stars: ✭ 270 (-14.56%)
Mutual labels:  parse
Crawlertutorial
爬蟲極簡教學(fetch, parse, search, multiprocessing, API)- PTT 為例
Stars: ✭ 282 (-10.76%)
Mutual labels:  parse
Themer
Themer is a colorscheme generator and manager for your desktop.
Stars: ✭ 289 (-8.54%)
Mutual labels:  parse
Eureka
💡 CLI tool to input and store your ideas without leaving the terminal
Stars: ✭ 316 (+0%)
Mutual labels:  productivity
Nb
CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script.
Stars: ✭ 3,846 (+1117.09%)
Mutual labels:  productivity

OmniFocus Library

Notices

  • It's possible that some of these scripts may not work correctly with OmniFocus 3 (as they were all written before OF3 was released). Feel free to let me know if you find anything not working. Pull requests are welcomed.
  • Probably any script in this repo will require the library. Assume you need it.

Why is there a new OmniFocus library?

I had previously written an OmniFocus library using JavaScript for Automation, but it's got issues that vanilla AppleScript does not. Also, I realized that I didn't really need the fancy regex abilities from JavaScript that I thought I needed, so I went back to standard AppleScript. It works just as well, and the source code is a lot more readable. I hope you find this new library useful.

Basic Usage

Put omnifocus.scpt in ~/Library/Script Libraries, or else AppleScript won't know where to find it!

use application "OmniFocus"
use O : script "omnifocus"

tell O
   set sel to selectedItems()
   deferDaily(sel)  # this will set all the selected tasks to start again after completion daily
   setDefer(sel, current date)

   set theTask to findTask("Log food") # find the first task whose name is "Log food"
   set theProject to findProject("Groceries")
   set theContext to findContext("Home")
   set theFolder to findFolder("Routine")

   # Parse using transport text (see below for details)
   parse("Do something! @home ::misc #5pm #tomorrow //This is a note")
end

Transport Text

For those who don't know about transport text, it's a format that OmniFocus uses to parse task information like so:

Do something! @home ::misc #5pm #tomorrow //This is a note

The ! makes Do something a flagged task. @home sets the context to "home". :: is used for matching a project. Both @ and :: will fuzzy match existing contexts and projects. The first # is used for a defer date, while the second # is for a due date. Both support natural language parsing like the inspector in OmniFocus. Word of caution though, if only one # is present, OmniFocus assumes it's a due date. Lastly, // starts the note for a task. While more involved ways of creating OmniFocus tasks exist in the library, you'll find using of.parse as your primary means of creating tasks.

Functions

- selectedItems()
- parse(transportText)
- findContext(contextName)
- findProject(projectName)
- findFolder(folderName)
- findTask(taskName)
- allTasks()
- allProjects()
- allContexts()
- setDue(input, dueDate)
- setDefer(input, deferDate)
- setProject(input, projectName)
- setContext(input, contextName)
- namePrepend(input, prependString)
- nameAppend(input, appendString)
- inboxTasks()
- setComplete(input, booleanFlag)
- setSequential(input, booleanFlag)
- openPerspective(perspectiveName)
- inboxCount()
- errandsCount()
- landAndSeaCount()
- routineCount()
- computerName()
- setRepeat(input, repetitionRule)
- deferDaily(input)
- deferWeekly(input)
- deferMonthly(input)
- repeatDaily(input)
- repeatWeekly(input)
- repeatMonthly(input)
- clearRepeat(input)
- clearDefer(input)
- clearContainer(input) *Only works on inbox tasks.*
- clearContext(input)
- setOnHold(input)
- setActive(input)
- showAbout()
- toggleColon(input)
- setColon(input)
- clearColon(input)
- setPrefix(input, prefix)
- clearPrefix(input, prefix)
- clearPrefixAll(input)
- setConsider(input)
- clearConsider(input)
- toggleConsider(input)
- kindOf(input) *This will be a task, project, context or folder.*
- isProject(input)
- isContext(input)
- isTask(input)
- isFolder(input)

Buy Me A Coffee

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].