Heute wollen wir alle Aufgaben aus OmniFocus, die einen Fälligkeitstermin ("due date") haben, in unser Kalender-System eintragen. So haben wir sie auch außerhalb von OmniFocus besser im Auge. Dazu nutzen wir - wie so oft - AppleScript.
In diesem ersten Teil (von zwei) kümmern wir uns nur um das AppleScript. D.h., für die Übertragung müssen wir dieses zunächst einmal von Hand starten. In Teil 2 sorgen wir dann für eine gewissen Regelmäßigkeit, indem wir den Prozess zu bestimmten Zeiten automatisch starten.
Kalender-Einträge können mit einem Link (URL) versehen werden. Das werden wir uns zunutze machen, um vom Kalendereintrag zurück zur jeweiligen OmniFocus-Aufgabe zu verlinken. Ein Problem ist Dauer des einzutragenden Termins. Hat die betreffende Aufgabe eine geschätzte Dauer (OmniFocus ermöglicht einen entsprechenden Eintrag) übernimmt das Skript diese als Termindauer. Ansonsten verwenden wir eine im AppleScript festzulegende Standarddauer.
Ganz wichtig: Das Skript nutzt einen eigenen Kalender, der für nichts anderes da ist. Dies ist notwendig, da der Kalender für die OmniFocus-Fälligkeiten zu Beginn des Exports komplett geleert wird, um dann ein konsistentes Ergebnis zu erhalten. Schritt 1 ist also die Erstellung eines neuen leeren Kalenders, ich habe ihn bei mir (und als Standardwert im Skript) einfach "OmniFocus" genannt. Wenn ihr hier einen bestehenden Kalender mit anderen Daten verwendet, gehen diese verloren!
Schauen wir uns nun das AppleScript an: