---
title: "PowerShell Cmdlets for Trigger Schedules"
slug: "powershell-cmdlets-for-trigger-schedules"
updated: 2025-07-03T12:04:16Z
published: 2025-07-03T12:04:16Z
canonical: "support.controlup.com/powershell-cmdlets-for-trigger-schedules"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.controlup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PowerShell Cmdlets for Trigger Schedules

From ControlUp version 9.0.5 and higher, you can run the following [PowerShell cmdlets](/v1/docs/powershell-cmdlets-for-triggers) to configure trigger [schedules](/v1/docs/setting-up-triggers#what-causes-a-trigger-to-activate) on a machine with a ControlUp Monitor installed:

- [Add-CUTriggerSchedule](/v1/docs/powershell-cmdlets-for-trigger-schedules#addcutriggerschedule). Adds a new trigger schedule.
- [Update-CUTriggerSchedule](/v1/docs/powershell-cmdlets-for-trigger-schedules#updatecutriggerschedule). Updates an existing trigger schedule.
- [Remove-CUTriggerSchedule](/v1/docs/powershell-cmdlets-for-trigger-schedules#removecutriggerschedule). Deletes an existing trigger schedule.
- [Get-CUTriggerSchedules](/v1/docs/powershell-cmdlets-for-trigger-schedules#getcutriggerschedules). Lists all schedules configured for triggers in your organization.

#### Add-CUTriggerSchedule

Adds a new schedule to the schedule repository. Doesn't add a schedule to a trigger.

**Syntax**

```powershell
Add-CUTriggerSchedule [-Name] <string> [-WeekDays] <DayHours[]>
```

Add one day with selected hours trigger schedule example:

```powershell
$newDayHours = New-Object ControlUp.PowerShell.Common.Contract.Triggers.Schedules.Data.DayHours
$newDayHours.Day = "Wednesday"
$newDayHours.SelectedHours = @("Nine","Ten", "Eleven") 

Add-CUTriggerSchedule -Name "My New Schedule" -WeekDays $newDayHours
```

Add two days with different selected hours trigger schedule example:

```powershell
$sundayHours = New-Object ControlUp.PowerShell.Common.Contract.Triggers.Schedules.Data.DayHours
$mondayHours = New-Object ControlUp.PowerShell.Common.Contract.Triggers.Schedules.Data.DayHours

$sundayHours.Day = [System.DayOfWeek]::Sunday
$sundayHours.SelectedHours = [ControlUp.Common.Enums.IncidentScheduleHour]::Nine -bor [ControlUp.Common.Enums.IncidentScheduleHour]::Ten -bor [ControlUp.Common.Enums.IncidentScheduleHour]::Eleven

$mondayHours.Day = [System.DayOfWeek]::Monday
$mondayHours.SelectedHours = [ControlUp.Common.Enums.IncidentScheduleHour]::Fifteen -bor [ControlUp.Common.Enums.IncidentScheduleHour]::Sixteen -bor [ControlUp.Common.Enums.IncidentScheduleHour]::Seventeen

$weekDays = @($sundayHours, $mondayHours)

Add-CUTriggerSchedule -Name "MyNewSchedule" -WeekDays $weekDays
```

| Parameters | Description | Required |
| --- | --- | --- |
| -Name | Name of the trigger schedule | Yes |
| -WeekDays | Configuration of the weekdays to schedule the trigger to run. | Yes |
| -Day | Each specific day of the week to schedule the trigger to run. You can enter each day only once. | No |
| -SelectedHours | Specific hours of each day to schedule the trigger to run. If empty, the specific day won't be added to the trigger schedule. | No |

#### Update-CUTriggerSchedule

Updates an existing trigger schedule name and/or weekdays settings.

**Syntax**

```powershell
Update-CUTriggerSchedule [-ScheduleId] <string> [[-Name] <string>] [[-WeekDays] <DayHours[]>]
```

Rename trigger schedule + update hours example:

```powershell
Update-CUTriggerSchedule -ScheduleId $scheduleId -Name "Custom Schedule Renamed" -WeekDays @(
@{ Day = [System.DayOfWeek]::Monday; SelectedHours = [ControlUp.Common.Enums.IncidentScheduleHour]::Zero + [ControlUp.Common.Enums.IncidentScheduleHour]::One + [ControlUp.Common.Enums.IncidentScheduleHour]::Two + [ControlUp.Common.Enums.IncidentScheduleHour]::Three + [ControlUp.Common.Enums.IncidentScheduleHour]::Four },
@{ Day = [System.DayOfWeek]::Tuesday; SelectedHours = [ControlUp.Common.Enums.IncidentScheduleHour]::Zero + [ControlUp.Common.Enums.IncidentScheduleHour]::One + [ControlUp.Common.Enums.IncidentScheduleHour]::Two + [ControlUp.Common.Enums.IncidentScheduleHour]::Three },
@{ Day = [System.DayOfWeek]::Wednesday; SelectedHours = [ControlUp.Common.Enums.IncidentScheduleHour]::Zero + [ControlUp.Common.Enums.IncidentScheduleHour]::One + [ControlUp.Common.Enums.IncidentScheduleHour]::Two },
@{ Day = [System.DayOfWeek]::Thursday; SelectedHours = [ControlUp.Common.Enums.IncidentScheduleHour]::Zero + [ControlUp.Common.Enums.IncidentScheduleHour]::One },
@{ Day = [System.DayOfWeek]::Friday; SelectedHours = [ControlUp.Common.Enums.IncidentScheduleHour]::Zero }
)
```

Update trigger schedule hours to Sunday (hours 9:00-11:00) example:

```powershell
Get-CUTriggerSchedules | Where-Object { $_.Id -eq "bb064f8e-a347-4ce9-bdbd-4b245ac748f2" } | Format-List

$newDayHours = New-Object ControlUp.PowerShell.Common.Contract.Triggers.Schedules.Data.DayHours
$newDayHours.Day = "Sunday"
$newDayHours.SelectedHours = @("Nine","Ten")

Update-CUTriggerSchedule -ScheduleId bb064f8e-a347-4ce9-bdbd-4b245ac748f2 -WeekDays $newDayHours
```

Add new day to existing trigger schedule:

```powershell
Update-CUTriggerSchedule -ScheduleId aeb0b292-f519-401b-9da2-49f001b96184 -WeekDays $weekDays
```

| Parameters | Description | Required |
| --- | --- | --- |
| -ScheduleId | ID of the trigger schedule | Yes |
| -Name | Name of the trigger schedule | No |
| -WeekDays | Configuration of the weekdays to schedule the trigger to run. | No |
| -Day | Each specific day of the week to schedule the trigger to run. You can enter each day only once. | No |
| -SelectedHours | Specific hours of each day to schedule the trigger to run. If empty, the specific day won't be added to the trigger schedule. | No |

#### Add-CUTriggerSchedule and Update-CUTriggerSchedule Results

Writes single result object to PowerShell with the following properties:

- Error. In case of failure, the reason will be displayed.
- Success. In case of success, all schedule data (Id, Name, WeekDays) will be displayed.

#### Remove-CUTriggerSchedule

Deletes an existing trigger schedule. Note that you can't delete a trigger schedule currently in use.

**Syntax**

```powershell
Remove-CUTriggerSchedule
-[ScheduleId] <string>
```

Example:

```powershell
Remove-CUTriggerSchedule
-[ScheduleId] "1e233ec2-af9b-4453-bd29-1fb20e29e514"
```

| Parameter | Description | Required |
| --- | --- | --- |
| -ScheduleId | ID of the trigger schedule | Yes |

#### Remove-CUTriggerSchedule Results

Writes single result object to PowerShell with the following properties:

- Error. In case of failure, the reason will be displayed.
- Success. In case of success, the trigger is removed and the following message will be displayed: "Schedule '<ScheduleName>' - <ScheduleId> was deleted successfully."

#### Get-CUTriggerSchedules

Lists all built-in and custom schedules configured for triggers in your environment. No parameters are required. Note that built-in schedules don't have a GUID, but a string constant, e.g “All days”, “Weekdays”, etc.

**Syntax**

```powershell
Get-CUTriggerSchedules
```

#### Get-CUTriggerSchedules Results

Writes multiple result objects to PowerShell with the following properties:

- Error. In case of failure, the reason will be displayed.
- Success. In case of success, returns list of all schedules you can configure to use for triggers with the following properties:

PowerShellPowerShell 

```powershell
-Id <string>
-Name <string>
-WeekDays <DayHours[]> { -Day <DayOfWeek>; -SelectedHours <IncidentScheduleHour> }
```

Results example:![Powershell window displaying Get-CUTriggerSchedules cmdlet output results](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/Get-CUSchedules.png)
