Public/Invoke-GCWfmScheduleSearch.ps1

<#
.SYNOPSIS
    Searches schedules for a management unit in Genesys Cloud.

.DESCRIPTION
    Posts a search request to the Genesys Cloud API to query schedules
    for a specific management unit using provided search criteria.
    API Endpoint: POST /api/v2/workforcemanagement/managementunits/{managementUnitId}/schedules/search

.PARAMETER ManagementUnitId
    The unique identifier of the management unit whose schedules to search.

.PARAMETER Body
    The search request body containing schedule search criteria such as date ranges
    and user filters. Should conform to the Genesys Cloud schedule search schema.

.EXAMPLE
    $searchBody = @{
        startDate = '2026-01-01T00:00:00Z'
        endDate = '2026-01-31T23:59:59Z'
    }
    Invoke-GCWfmScheduleSearch -ManagementUnitId 'abc123-def456' -Body $searchBody
    Searches for schedules within January 2026 for the specified management unit.

.NOTES
    Genesys Cloud API: POST /api/v2/workforcemanagement/managementunits/{managementUnitId}/schedules/search
#>

function Invoke-GCWfmScheduleSearch {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)]
        [string]$ManagementUnitId,

        [Parameter(Mandatory = $true)]
        [object]$Body
    )

    $endpoint = "workforcemanagement/managementunits/$ManagementUnitId/schedules/search"
    return Invoke-GCApiRequest -Endpoint $endpoint -Method POST -Body $Body
}