iCal Repeat Todos
October 2, 2007 9:00 AM Subscribe
How do I set iCal todo items to repeat on a regular interval? That way if I check off to mow the lawn, it will auto-create a new todo item for next week so I see it on my schedule. My Palm pilot used to do this. Is there an AppleScript?
He's asking about a to-do, not an event. They are different.
posted by clh at 10:53 AM on October 2, 2007
posted by clh at 10:53 AM on October 2, 2007
This is the closest I could get with Applescript. As far as I can tell, there's no to trigger it by the action of marking a todo as completed, so you'll have to run the script manually.
The script checks if a todo called "mow lawn" is marked as complete and then creates another task 7 days out from the date it was marked as completed. In this example, I have the "mow lawn" todo in a calendar called "Chores". Adjust the property as necessary to reflect your setup.
posted by pmbuko at 10:54 AM on October 2, 2007
The script checks if a todo called "mow lawn" is marked as complete and then creates another task 7 days out from the date it was marked as completed. In this example, I have the "mow lawn" todo in a calendar called "Chores". Adjust the property as necessary to reflect your setup.
property todoCalendar: "Chores" tell application "iCal" tell calendar todoCalendar set theTodo to last todo whose summary contains "mow lawn" set doneDate to (completion date) of theTodo try set newDueDate to doneDate + 7 * days make new todo at end with properties {description:"mow lawn", summary:"mow lawn", due date:newDueDate} on error display dialog "The last mow lawn task has not been completed." end try end tell end tell
posted by pmbuko at 10:54 AM on October 2, 2007
iCal's to do module is pretty weak. Lack of repeating items there led me (and many others) to switch to RTM.
posted by olecranon at 12:05 PM on October 2, 2007 [1 favorite]
posted by olecranon at 12:05 PM on October 2, 2007 [1 favorite]
The trick is to set up a recurring event that has an Applescript as an alarm. Here's what I do:
1. Setup a new calendar called "Scripts" (I do this so I can just hide the calendar and not have to see dozens of events that simply trigger a to-do.)
2. Create the Applescript for my to-do and save it somewhere (I have a scripts folder in my documents folder):
It's not particularly simple, but it works. You may have to change a few calculations on the date depending on when you want the script to run. For example, if you run your script on the 1st and your to-do is due on the 15th, you can take of the "+ 1" for theMonth.
Hope this helps.
posted by conigs at 7:25 PM on October 2, 2007
1. Setup a new calendar called "Scripts" (I do this so I can just hide the calendar and not have to see dozens of events that simply trigger a to-do.)
2. Create the Applescript for my to-do and save it somewhere (I have a scripts folder in my documents folder):
--Time Warner Cable bills --Run on the 23rd of each month tell application "iCal" set theDay to 14 --day the bill is due set theSummary to "Pay Time Warner Bill" --summary of todo set theURL to "https://payxpress.timewarnercable.com/" --url (if any) set thePriority to 5 -- medium priority set today to current date set theMonth to (month of today as number) + 1 if (theMonth > 12) then set theMonth to 1 set theYear to (year of today as number) + 1 else set theYear to year of today as number end if set dueDate to today set month of dueDate to theMonth set day of dueDate to theDay set year of dueDate to theYear make new todo at the end of todos of calendar "Bills" with properties {summary:theSummary, due date:dueDate, priority:thePriority, url:theURL} end tell3. Set up recurring event to trigger script to repeat every month, with Alarm:Run Script, (Choose script), the same day, at 8am.
It's not particularly simple, but it works. You may have to change a few calculations on the date depending on when you want the script to run. For example, if you run your script on the 1st and your to-do is due on the 15th, you can take of the "+ 1" for theMonth.
Hope this helps.
posted by conigs at 7:25 PM on October 2, 2007
If you have OmniOutliner, you could setup kGTD and use it to drive iCal updates. It's relatively easy to setup kGTD and it can handle your lawn-mowing reminders with ease. The author of kGTD is working with the OmniGroup on OmniFocous, a standalone GTD client.
Also, just checked, iCal's to-dos don't have any sort of repeat functionality in MacOS X 10.5.
posted by nathan_teske at 9:21 PM on October 2, 2007
Also, just checked, iCal's to-dos don't have any sort of repeat functionality in MacOS X 10.5.
posted by nathan_teske at 9:21 PM on October 2, 2007
check out http://web.mac.com/lypanov/iWeb/Web/Diary/9950DF91-726E-42B2-A639-1967D1DE7545.html
posted by zinf at 3:11 AM on October 3, 2007
posted by zinf at 3:11 AM on October 3, 2007
iGTD (which I have eschewed for OmniFocus) will do this and it's free.
posted by filmgeek at 5:12 AM on October 3, 2007
posted by filmgeek at 5:12 AM on October 3, 2007
« Older What is the cause of this muscle condition? | Playful writing prompts for nervous begins Newer »
This thread is closed to new comments.
There's a 'repeat' choice. Adjust to your liking. Or am I missing something?
posted by filmgeek at 10:48 AM on October 2, 2007