X-Git-Url: http://git.tpope.net/?p=tpope-extra.git;a=blobdiff_plain;f=perl%2Fschedproc;fp=perl%2Fschedproc;h=5af5954d45dfaff428c70db9cb9c1e26ff120306;hp=ec8d99cc6031b0f6bf2fe09ed66945ab32190e74;hb=35a377d64ffb4806572cbdfe090513d8453e09d1;hpb=27d95d61b2c588a369cfcd880b826789e7db9456 diff --git a/perl/schedproc b/perl/schedproc index ec8d99c..5af5954 100755 --- a/perl/schedproc +++ b/perl/schedproc @@ -445,16 +445,23 @@ END:DAYLIGHT$r END:VTIMEZONE$r EOF ; + my $now = Date::Calc->now(); + $now = sprintf ("%02d%02d%02dT%02d%02d%02dZ", $now->datetime()); my %days = (M => "MO", T => "TU", W => "WE", R => "TH", F => "FR", S => "SA", U => "SU"); my $file = $opts{'out'}; my @schedule = get_schedule(@_); open(STDOUT, ">" . $file) || die $! if(defined($file) && (! -d $file)); open(STDOUT, ">/dev/null") || die $! if(defined($file) && (-d $file)); - print "BEGIN:VCALENDAR$r\nVERSION:2.0$r\n$timezone"; + print "BEGIN:VCALENDAR$r\nVERSION:2.0$r\nMETHOD:PUBLISH$r\n$timezone"; foreach my $row (@schedule) { map { s/\n/-/g; $_} %$row; my @day = (); @day = @{$row->{'off'}} if ($row->{'off'}); + my $day = ""; + if(exists($day[0])) { + $day = join(",", @day); + $day =~ s/\b(\d{8})\b/$1T000000/g; + } my ($starttime, $stoptime)=($row->{'begin'}, $row->{'end'}); my ($startdate, $stopdate)=split(/-/, $row->{'duration'}); $starttime =~ s/://; @@ -463,9 +470,12 @@ EOF if(defined($file) && (-d $file)) { open FH, ">$file/" . $row->{'id'} . ".vcs" or die "$!"; select FH; - print "BEGIN:VCALENDAR$r\nVERSION:2.0$r\n$timezone"; + print "BEGIN:VCALENDAR$r\nVERSION:2.0$r\nMETHOD:PUBLISH$r\n$timezone"; } print "BEGIN:VEVENT$r\n"; + print "ORGANIZER:MAILTO:" . $opts{'email'} . "$r\n" if $opts{'email'}; + print "UID:" . $row->{'id'} . "\@from.sctweb$r\n"; + print "DTSTAMP:$now$r\n"; print "SUMMARY:", $row->{'title'}, "$r\n"; print "DESCRIPTION:", $row->{'id'}, "$r\n"; print "LOCATION:", $row->{'location'}, "$r\n"; @@ -477,11 +487,9 @@ EOF print "DTEND;TZID=\"$tzn\":", $first."T".$stoptime, "00$r\n"; $row->{'days'} =~ s/([MTWRFS])/,$days{$1}/g; $row->{'days'} =~ s/^,//; - $stopdate++; + #$stopdate++; print "RRULE:FREQ=WEEKLY;UNTIL=${stopdate}T000000Z;BYDAY=", $row->{'days'}, "$r\n"; - foreach my $day (@day) { - print("EXDATE;TZID=\"$tzn\":${day}T$starttime$r\n"); - } + print("EXDATE;TZID=\"$tzn\":$day$r\n") if($day); print "ATTENDEE;CN=".$row->{'instructor'}.";RSVP=FALSE;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:" . (get_faculty_email($row->{'instructor'}) || "fake\@ddress"), "$r\n"; print "ATTENDEE;CN=".$opts{'name'}.";RSVP=FALSE;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:" . ($opts{'email'} || "fake\@ddress"), "$r\n" if $opts{'name'}; print "END:VEVENT$r\n";