A Unix program called Remind is one of the greatest tools for keeping your goals and projects on track. Where calendars like iCal and Google Calendar come up short, Remind fills in the gaps.
For example, iCal alarms can remind you of an event minutes, hours, or days before it occurs, but it won’t count down to a goal with date-based math. Say you’re trying to lose 10 pounds by the first of June. No calendar application that I know of will tell you that you have 49 days to reach 170 pounds. This is where Remind rules.
Here’s how I have my system set up. Remind pulls all of my custom reminders from a few text files. It outputs them to my desktop using Geek Tool. I have a couple scripts that convert my iCal events to Remind format and Remind events to iCal. This way everything is synced up. I get Remind events in iCal and on my iPhone and I get iCal events on my desktop with Geek Tool. Using Spanning Sync, I can publish all of my iCal and Remind events to Google Calendar for sharing with family or colleagues. And if you don’t want to pay for Spanning Sync, you can publish your iCal to .Mac and then subscribe to it with Google Calendar. It’s not two-way syncing, but it works.
The final trick is to use Quicksilver to get reminders into Remind fast. For this, I have a simple Quicksilver action that appends my Remind text file.
I use Remind to help me finish songs, save money, remember birthdays, take the garbage out, and just about everything. Where it shines the most is in events that can benefit from date-based math, like I mentioned above. Everything you need to get started is on my wiki.