Making daily recurring To Do items in Apple iCal
I just worked out how to use AppleScript to create recurring daily to do items in Apple iCal.
It is the one thing has always prevented my moving over to iCal. I would love to say that it is otherwise, but the fact is, I am terrible at keeping to a rhythm. No matter how firmly I seem to have a simple daily rhythm in grasp I always fall back into my old habits within a few weeks.
To combat this I need a daily checklist. However, this feature is not available in iCal. Disappointed, I looked elsewhere and disliking everything I found, I scrapped my productivity boosting plan entirely and went back to occasionally forgetting my daily list in Omni Outliner.
Yesterday a conversation with a friend pushed me to try this with Automator, which, unfortunately is not suited to the task. Luckily, I recall a long while ago hearing something about an age-old scripting language named "AppleScript".
After taking a half hour to get myself into The Way I finally managed to rustle up a small script that inserted a To Do item into iCal. To my delight it was trivial in iCal to add a recurring 6 am even, which as its alarm, would Run the Script.
Each morning a new daily To Do list item "Fill-in time sheet" is created. This works just as any To Do list item - if I have not completed it by the end of the evening, it will carry on to the following day. I suggest setting 'Hide To Do items _ days after they are complete' to one or two days.
So, without further ado, here's the script:
-- doesn't create duplicates. adds todo's to calendar "Personal" on createTodo(summaryText) set now to current date set midnight to now - (time of now) tell application "iCal" -- don't create an item if it already exists for today! if (count (every todo in calendar "Personal" ¬ whose due date ≥ midnight ¬ and summary = summaryText)) < 1 then make new todo ¬ at end of calendar "Personal" ¬ with properties ¬ ({due date:midnight, summary:summaryText}) end if end tell end createTodo createTodo("Fill in time sheet")