When using response groups, business days and hours can be configured. This way a different action (than attending the call) can be configured when in out of business hours (disconnect the call, forward to another response group or contact…)

Lync Response Group business hours

Those actions should be also configured on special days or data ranges that the business is closed. For example, public holidays. This is the way to configure them:

Create Holiday Set

The holiday dates can be set when creating a new HolidaySet (New-CsRgsHolidaySet)

$DAY1 = New-CsRgsHoliday -StartDate "1/1/2017 12:00 AM" -EndDate "2/1/2017 12:00 AM" -Name "2017 - New Year's Day"
$DAY2 = New-CsRgsHoliday -StartDate "2/1/2017 12:00 AM" -EndDate "3/1/2017 12:00 AM" -Name "2017 - New Year's Day Holiday"
$DAY3 = New-CsRgsHoliday -StartDate "16/1/2017 12:00 AM" -EndDate "17/1/2017 12:00 AM" -Name "2017 - Martin Luther King Jr. Birthday"
$DAY4 = New-CsRgsHoliday -StartDate "29/5/2017 12:00 AM" -EndDate "30/5/2017 12:00 AM" -Name "2017 - Memorial Day"
$DAY5 = New-CsRgsHoliday -StartDate "4/7/2017 12:00 AM" -EndDate "5/7/2017 12:00 AM" -Name "2017 - Independence Day"
$DAY6 = New-CsRgsHoliday -StartDate "4/9/2017 12:00 AM" -EndDate "5/9/2017 12:00 AM" -Name "2017 - Labor Day"
$DAY7 = New-CsRgsHoliday -StartDate "10/11/2017 12:00 AM" -EndDate "11/11/2017 12:00 AM" -Name "2017 - Veterans' Day Holiday"
$DAY8 = New-CsRgsHoliday -StartDate "23/11/2017 12:00 AM" -EndDate "24/11/2017 12:00 AM" -Name "2017 - Thanksgiving Day"
$DAY9 = New-CsRgsHoliday -StartDate "25/12/2017 12:00 AM" -EndDate "26/12/2017 12:00 AM" -Name "2017 - Christmas Day"
$RANGE1 = New-CsRgsHoliday -StartDate "01/08/2017 12:00 AM" -EndDate "01/09/2017 12:00 AM" -Name "Business closed in August"
New-CsRgsHolidaySet -Parent "ApplicationServer:mylync.domain.com" -Name "Public Holidays" -HolidayList ($DAY1, $DAY2, $DAY3, $DAY4, $DAY5, $DAY6, $DAY7, $DAY8, $DAY9, $RANGE1)

Identity    : service:ApplicationServer:mylync.domain.com/a3246c57-68d9-4348-918b-16b2f5aea0b3
HolidayList : {
             Name=2017 - New Year's Day
             StartDate=01/01/2017 0:00:00
             EndDate=02/01/2017 0:00:00
             ,
             Name=2017 - New Year's Day Holiday
             StartDate=02/01/2017 0:00:00
             EndDate=03/01/2017 0:00:00
             ,
             Name=2017 - Martin Luther King Jr. Birthday
             StartDate=16/01/2017 0:00:00
             EndDate=17/01/2017 0:00:00
             ,
             Name=2017 - Memorial Day
             StartDate=29/05/2017 0:00:00
             EndDate=30/05/2017 0:00:00
             ...}
Name        : Public Holidays

List Days and Data Ranges of a Holiday Set

This commands shows all the dates composing the HolidaySet

Get-CsRgsHolidaySet | where { $_.Name -eq "Public Holidays" } | select-object -ExpandProperty HolidayList

Name      : 2017 - New Year's Day
StartDate : 01/01/2017 0:00:00
EndDate   : 02/01/2017 0:00:00

Name      : 2017 - New Year's Day Holiday
StartDate : 02/01/2017 0:00:00
EndDate   : 03/01/2017 0:00:00

Name      : 2017 - Martin Luther King Jr. Birthday
StartDate : 16/01/2017 0:00:00
EndDate   : 17/01/2017 0:00:00

Name      : 2017 - Memorial Day
StartDate : 29/05/2017 0:00:00
EndDate   : 30/05/2017 0:00:00

Name      : 2017 - Independence Day
StartDate : 04/07/2017 0:00:00
EndDate   : 05/07/2017 0:00:00

Name      : 2017 - Labor Day
StartDate : 04/09/2017 0:00:00
EndDate   : 05/09/2017 0:00:00

Name      : 2017 - Veterans' Day Holiday
StartDate : 10/11/2017 0:00:00
EndDate   : 11/11/2017 0:00:00

Name      : 2017 - Thanksgiving Day
StartDate : 23/11/2017 0:00:00
EndDate   : 24/11/2017 0:00:00

Name      : 2017 - Christmas Day
StartDate : 25/12/2017 0:00:00
EndDate   : 26/12/2017 0:00:00

Name      : Business closed in August
StartDate : 01/08/2017 0:00:00
EndDate   : 01/09/2017 0:00:00

Add days/data ranges to a Holiday Set

Commands to add new days/ranges on a precreated HolidaySet

$DAY1 = New-CsRgsHoliday -StartDate "10/12/2016 12:00 AM" -EndDate "11/12/2016 12:00 AM" -Name "Fake Day 1"
$DAY2 = New-CsRgsHoliday -StartDate "12/12/2016 12:00 AM" -EndDate "13/12/2016 12:00 AM" -Name "Fake Day 2"
$HS = Get-CsRgsHolidaySet | where { $_.Name -eq "Public Holidays" }
$HS.HolidayList.Add($DAY1)
$HS.HolidayList.Add($DAY2)
Set-CsRgsHolidaySet -Instance $HS

Remove days/data ranges from a Holiday Set

Commands to remove new days/ranges from a HolidaySet

$HS=Get-CsRgsHolidaySet | where { $_.Name -eq "Public Holidays" }
$DAY_REMOVE_1=$HS.HolidayList | Where-Object {$_.Name -eq "Fake Day 1"}
$DAY_REMOVE_2=$HS.HolidayList | Where-Object {$_.Name -eq "Fake Day 2"}
$HS.HolidayList.Remove($DAY_REMOVE_1)
True
$HS.HolidayList.Remove($DAY_REMOVE_2)
True
Set-CsRgsHolidaySet -Instance $HS

Apply Holiday Set to a Response Group

After creating the Holiday Set, it appears an option to check it in the “Specify Your Holidays” section of the Response Group configuration.
Simply check it and configure the action to perform

Lync Response Group holidays