ICal2Remind OSX HOWTO
From 43FoldersWiki
[edit] iCal2Remind.pl OSX HOWTO
I was asked by a Mac user how to get ical2rem.pl working on her Mac. I'm a Linux and (choke) Windoze guy, but luckily I had bought a Mac mini for my wife. So this is what I did to get ical2rem.pl working on the Mac mini. YMMV
(This is OSX 10.3 on a Mac mini)
UPDATE: ical2rem.pl has been updated, and now works slightly differently. Specifically, it now expects it's ICS input from STDIN. See ICal2Rem for more details.
- Install remind. I used the installer at http://www.voit-rifkin.com/software/remind
- Add entries to your PATH. To do this:
- Open a terminal window
- type
$ echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin
$ cat >> .bash_profile
PATH=${PATH}:/usr/local/bin:local/bin
export PATH
<CTRL-D>
$ source .bash_profile
$ echo $PATH
/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:local/bin
The first line shows your current path. If /usr/local/bin is already in your path, this is unecessary. The second line appends whatever you type until you type Ctrl-d to the file .bash_profile, creating it if it does not exist. Be sure to use the >>, not >, otherwise you'll wipe out the file if it exists. .bash_profile will be run whenever you open a terminal. The 'source' command just loads taht file, as if you had just logged in. Now when you type 'remind -h', you get:
$ remind -v REMIND 03.00.24 (English version) Copyright 1992-1998 David F. Skoll Copyright 1999-2005 Roaring Penguin Software Inc. Usage: remind [options] filename [date] [time] [*rep]
etc...
now, if it doesn't already exist, create local/bin. If you do the Unix 3-step (./configure, make, make install) but don't have permission to write to /usr/local/bin, you can do$ ./configure --prefix=localinstead and the binaries will be installed into your personal bin directory, which is now in your path.
mkdir -p local/bin
Now copy the ical2rem.pl to local/bin/ical2rem.pl. There are many ways to do this, I copied the entire text at http://jalcorn.net/ical2rem.pl.txt to the clipboard and then
$ cat > local/bin/ical2rem.pl
Then I pasted the text and hit Ctrl-d.
You won't be able to execute it until you turn on the execute permissions:
$ chmod a+x local/bin/ical2rem.pl
Now when you try to execute ical2rem.pl, you may get something like the following:
$ ical2rem.pl Can't locate iCal/Parser.pm in @INC (@INC contains: /System/Library/Perl/5.8.1/darwin-thread-multi-2level /System/Library/Perl/5.8.1 /Library/Perl/5.8.1/darwin-thread-multi-2level /Library/Perl/5.8.1 /Library/Perl /Network/Library/Perl/5.8.1/darwin-thread-multi-2level /Network/Library/Perl/5.8.1 /Network/Library/Perl .) at ./local/bin/ical2rem.pl line 38. BEGIN failed--compilation aborted at ./local/bin/ical2rem.pl line 38.
If so, the libraries 'use'd at the top of ical2rem.pl:
use iCal::Parser; use Data::Dumper; use Time::Local; use DateTime;
are not installed. If not, you'll need to become root. Either:
$ su - Password:
Or open Pseudo, and drop the Terminal app on the Pseudo window.
Now your prompt should be # instead of $.
VERY IMPORTANT:
I didn't have the developer tools installed. I put in the disc that came with the Mac mini, Chose "XCode Tools" and clicked on "xcodetools.mpkg". It install all the relevant developer tools. DO THIS BEFORE RUNNING CPAN. Otherwise you will experience the -- NOT OK pain. I ended up having to edit the CPAN Config.pm file to explicitly tell it where 'make' was, because it didn't exist when I first ran CPAN.
# FTP_PASSIVE=1 perl -MCPAN -e shell
The FTP_PASSIVE=1 is only necessary if you are behind a firewall that doesn't allow active FTP. It's safe to use regardless.
If you have never run CPAN, it will ask a LOT of configuration questions, which are beyond the scope of this article. MOST you can take the defaults or obvious answers. When it asks for which servers to use, pick 2 that look like they might be close to you. THe only tricky bit is if you have to use a proxy.
If it tells you to "install Bundle::CPAN", do so.
Now for what we wanted in the first place. Note that these will also install many prerequisite packages:
# FTP_PASSIVE=1 perl -MCPAN -e shell cpan> install iCal::Parser cpan> install Data::Dumper cpan> install Time::Local cpan> install DateTime
I edited the program to change the value of $cal_dir to "Library/Calendars" and then:
$ ical2rem.pl MSG Calendar ToDos:%"%"% REM MSG %"%"% MSG Calendar Events:%"%"% REM Sep 9 2006 +3 AT 14:15 MSG %a %2 %"test%"% $ ical2rem.pl > .remical $ echo "include .remical" >> .reminders $ rem Reminders for Saturday, 9th September, 2006 (today): Calendar ToDos: Calendar Events: today at 2:15pm test
Now use crontab -e to add a crontab entry to update your remical file as often as you want.

