View Single Post
I found a script to replace all start times from 00:00 to what you want (in this example 06:00).
If in this script you replace "Start" by "Due", il also works for due times (help me not to have an alert at midnight!)
Hope it will help.
Regards,


-- Find and replace start dates
-- Edit properties below (integers in range 0 - 24 for hours, 0 - 60 for minutes)

property pFindHours : 0
property pFindMins : 0

property pReplaceHours : 6 -- Desired start (hours)
property pReplaceMins : 0 -- Desired start (mins)

on run
tell application id "com.omnigroup.omnifocus"
tell default document
set lstTasks to (flattened tasks where start date is not missing value)
set lngChanges to 0
repeat with i from 1 to length of lstTasks
set dteStart to start date of item i of lstTasks
tell dteStart
if (its hours = pFindHours and its minutes = pFindMins) then
set {its hours, its minutes} to {pReplaceHours, pReplaceMins}
set start date of item i of lstTasks to dteStart
set lngChanges to lngChanges + 1
end if
end tell
end repeat
end tell
end tell

display dialog (lngChanges as string) & " start dates changed from " & PadNum(pFindHours, 2) & ":" & PadNum(pFindMins, 2) & ¬
" to " & PadNum(pReplaceHours, 2) & ":" & PadNum(pReplaceMins, 2) with title "Find & Replace Start Time"
end run

on PadNum(lngNum, lngDigits)
set strNum to lngNum as string
set lngGap to (lngDigits - (length of strNum))
repeat while lngGap > 0
set strNum to "0" & strNum
set lngGap to lngGap - 1
end repeat
strNum
end PadNum