Sharing my AppleScripts with you guys


I have written some AppleScripts to automate and streamline my workflow. Previously, I have shared these scripts on Reddit but I have realized that I should have shared them here in case someone finds them useful. There is a dedicated README file for each script which goes into a greater amount of detail but I will also give a quick TL;DR here.

This script is meant for those who practise GTD - Getting Things Done. Simply put, this script will create an outline of your projects using OmniFocus and OmniOutliner. There is a smart detection of project status which includes stalled and deferred. Detailed descriptions of each are given in README file. Personally, I use it for weekly reviews as this script gives me a bird’s eye overview of projects without getting bogged down into specific details.

This script creates a simple outline of project deadlines using OmniFocus and OmniOutliner. Instead of showing calendar days, it shows how many days are left. The inclusion/exclusion of start and end dates can be configured. Refer to README file for the specifics.

This script allows deferring OmniFocus dates in a smart way. This is achieved by taking into account interval schedule (including on which days to repeat the task) and whether deferral takes place after 12am. The last condition is useful in case you are working late i.e. after 12am and want to defer to “tomorrow” which is actually today. README file contains more details.

Let me know if you have any questions or concerns here or by submitting an issue on GitHub.

Thank you!



As a novice I am interested to know if the 1st script listed could export to a file in an format such as OPML? I ask as I would love to import my list to a mind map.

Thanks for helping the community

Afaik, OmniOutliner supports OPML out-of-the-box when you do a manual export (source). Currently, my Mac is in repairs and I don’t have access to any other Mac for the moment. Once I get a working Mac, I’ll have a look into automating the export process into OPML. So as a temporary workaround, you could first run the script and then manually export it into OPML.

Seems I was finally able to find some time for this.

Here’s a good starting point:

tell application "OmniOutliner"

    set thePath to (choose folder) as string

    set opmlPath to thePath & "test.opml"

    set posixPath to (POSIX path of opmlPath)

    display dialog posixPath

    export front document to posixPath

end tell

Original source

So what you can do is fork my script and add the aforementioned code before the final end tell.

What will happen is that after you run the script, you will be asked to choose a directory to which a file will be exported named test.opml.

In case you get stuck, here’s the full source code.

Hope this helps!