AppleScript ist eine in macOS eingebaute Programmiersprache, die es dem Nutzer ermöglicht, Dinge in macOS zu automatisieren. Ihr merkt schon, dieser Artikel richtet sich an etwas fortgeschrittenere Benutzer. OmniFocus hat in der Professional-Version eine Unterstützung für AppleScript. Was können wir damit machen? Nun, wie der Titel schon verraten hat, z.B. Aufgaben automatisiert, d.h. in Abläufen außerhalb von OmniFocus, erstellen. Das ist natürlich ein weites Feld. Ich möchte mich daher heute wirklich auf die Erstellung von Aufgaben beschränken.
Die folgenden Beispiele könnt ihr mit dem Skript-Editor, ein Dienstprogramm von macOS, ausprobieren. Mit dem Hammer-Icon in dessen Toolbar könnt ihr prüfen, ob euer Skript syntaktisch korrekt ist. Mit dem Play-Button könnt ihr es ausführen und dann in OmniFocus schauen, was passiert ist.
Einfaches Beispiel
Fangen wir mal ganz einfach an und erzeugen eine Aufgabe in der Inbox:
tell front document of application "OmniFocus"
set theTask to make new inbox task with properties {name:"Nykøbing-Ausflug vorbereiten", note:"Packliste in OmniOutliner beachten"}
end tell

Nach Betätigung des Play-Buttons sieht die Inbox in OmniFocus dann tatsächlich so aus:

Erweiterungen
Das „set theTask to“ benötigen wir nur, wenn wir noch etwas mit der Aufgabe machen möchten, z.B. sie zu einem Projekt zu schieben oder Tags zuzuweisen.
So schieben wir die Aufgabe in ein bestehendes Projekt:
set theProject to flattened project named "[Erholung/Freizeit]"
move theTask to end of tasks of theProject
Diese beiden Zeilen müssen natürlich wieder innerhalb eines tell-Blocks stehen. Selbstverständlich können wir auch ein neues Projekt anlegen:
set theProject to make new project with properties {name:"Ausflüge"}
Hier eine erweiterte Version des Skripts mit Tag- und Projektzuweisung:
tell front document of application "OmniFocus"
set theTag to flattened tag named "Fokus"
set theTask to make new inbox task with properties {name:"Nykøbing-Ausflug vorbereiten", note:"Packliste in OmniOutliner beachten", primary tag:theTag}
set theProject to flattened project named "[Erholung/Freizeit]"
move theTask to end of tasks of theProject
end tell
Dieses AppleScript für sich allein macht natürlich noch nicht wirklich Sinn. Aber als Teil eines längeren Programms können so Aufgaben oder ganze Projekte automatisch erzeugt werden. Auch das von mir vor langer Zeit vorgestellte „Hazel“ kann ja AppleScript-Arbeitsschritte beinhalten. Wer auf dem Mac Abläufe Automatisieren möchte, findet in AppleScript ein mächtiges Werkzeug hierfür.