use Win32::TaskScheduler;
sub create_schedule($$$$$$$$$$$)

{
my ($mins, $hrs, $mon,$tue,$wed,$thu,$fri,
$sat,$sun,$target_machine,$task_name) = @_;
my $days;
print my $scheduler = Win32::TaskScheduler->New();
my %trig=(
'BeginYear' => 2005,
'BeginMonth' => 03,
'BeginDay' => 20,
'StartHour' => $hrs,
'StartMinute' => $mins,
'TriggerType' => $scheduler ->
TASK_TIME_TRIGGER_MONTHLYDOW,
'Type'=>{
'WhichWeek' =>
$scheduler->TASK_FIRST_WEEK | $scheduler->TASK_SECOND_WEEK
| $scheduler->TASK_THIRD_WEEK | $scheduler->TASK_LAST_WEEK, 'DaysOfTheWeek' =>
$scheduler->TASK_TUESDAY,
'Months' => $scheduler->TASK_JANUARY | $scheduler->TASK_FEBRUARY
|$scheduler->TASK_MARCH |
$scheduler->TASK_APRIL | $scheduler->TASK_MAY |
$scheduler->TASK_JUNE | $scheduler->TASK_JULY |$scheduler->TASK_AUGUST |
$scheduler->TASK_SEPTEMBER |
$scheduler->TASK_OCTOBER | $scheduler->TASK_NOVEMBER |
$scheduler->TASK_DECEMBER
},
);
print $scheduler->SetTargetComputer("\\\\MYHOST");
my $tsk = $task_name;
my $k;
foreach $k (keys %trig)
{
print "$k=" . $trig{$k} . "\n";
} print $scheduler->NewWorkItem($tsk,\%trig);
print $scheduler->SetApplicationName
("timezone.pm");
print $scheduler->Save();
$scheduler = Win32::TaskScheduler->New();
$scheduler->Activate($task_name);
}