$vmName = 'MyVM'
$time = Get-Date "23/06/17 18:00"
$si = Get-View ServiceInstance
$scheduledTaskManager = Get-View $si.Content.ScheduledTaskManager
$vm = Get-View -ViewType VirtualMachine -Filter @{"Name"=$vmName}
$spec = New-Object VMware.Vim.ScheduledTaskSpec
$spec.Name = "Shutdown $($vmName)"
$spec.Description = "Shutdown $($vmName)"
$spec.Enabled = $true
$spec.Scheduler = New-Object VMware.Vim.OnceTaskScheduler
$spec.Scheduler.runat = $time
$spec.Action = New-Object VMware.Vim.MethodAction
$spec.Action.Name = "ShutdownGuest"
$scheduledTaskManager.CreateScheduledTask($vm.MoRef, $spec)
$spec = New-Object VMware.Vim.ScheduledTaskSpec
$spec.Name = "Power on $($vmName)"
$spec.Description = "Power on $($vmName)"
$spec.Enabled = $true
$spec.Scheduler = New-Object VMware.Vim.OnceTaskScheduler
$spec.Scheduler.runat = $time.AddMinutes(20)
$spec.Action = New-Object VMware.Vim.MethodAction
$spec.Action.Name = "PowerOnVM_Task"
$scheduledTaskManager.CreateScheduledTask($vm.MoRef, $spec)