The remind program doesn't actually put reminders into the calendars it renders (for good reason), o had to use part of the MSG. I could have used a SPECIAL ALARM, but then I only get the date.

For example, I use this:

REM Monday 2005 AT 09:00 DURATION 1:00 MSG +90 Weekly meeting

To provide a 90 minute reminder of the event. This meant that my parsing of the output of remind had to get smarter. So I rewrote it in perl:

#!/usr/bin/env perl
use warnings;
use strict;
use Date::Parse;

my $CALENDAR="./calendar";
my $WEEKS=2;

print "BEGIN:VCALENDAR\n";
print "VERSION:1.0\n";

open(CAL, '-|', "remind -s+${WEEKS} -b1 ${CALENDAR}")
    or die "can't start remind: $!";
while (<CAL>) {

    chomp;
    my ($date, $x, $y, $duration, $z, $msg)
        = split( /\s/, $_, 6);
    my @msg=split(/\s/, $msg);
    my ($start,$alarm);

    next if ( $date =~ m/^#/ ) ;

    if ( $duration eq '*' )  { $duration=60 ; }
    if ( $z eq '*' ) {
        $start="00:00";
        $duration=1439;
        $alarm=0;
    } else {
        $start=shift @msg;
        if ( $msg[0] =~ /\+.*/ ) {
            $alarm = shift @msg;
            $alarm =~ s/\+//
        } else {
            $alarm = 0
        }
        $msg=join(" ",@msg);
    }

    my $t=str2time("$date $start");

    die "unable to parse $date $start" if not defined $t;

    my $d=$duration*60;
    my $a=$alarm*60;

    my ($sec,$min,$hour,$mday,$mon,$year) = localtime($t);
    $year += 1900; $mon++;
    my $s_string=sprintf("%04d%02d%02dT%02d%02d%02d",
            $year, $mon, $mday, $hour, $min, $sec);

    ($sec,$min,$hour,$mday,$mon,$year) = localtime($t+$d);
    $year += 1900; $mon++;
    my $e_string=sprintf("%04d%02d%02dT%02d%02d%02d",
            $year, $mon, $mday, $hour, $min, $sec);

    ($sec,$min,$hour,$mday,$mon,$year) = localtime($t-$a);
    $year += 1900; $mon++;
    my $a_string=sprintf("%04d%02d%02dT%02d%02d%02d",
            $year, $mon, $mday, $hour, $min, $sec);

    print "\n";
    print "BEGIN:VEVENT\n";
    print "CATEGORIES:MEETING\n";
    print "SUMMARY:$msg\n";
    print "DTSTART:$s_string\n";
    print "DTEND:$e_string\n";
    print "AALARM:$a_string\n" if ( $alarm != 0 ) ;
    print "END:VEVENT\n";
    print "\n";
}
print "\n";
print "END:VCALENDAR\n";