Public/Get-SportServiceVeenendaalOpeningHour.ps1

function Get-SportServiceVeenendaalOpeningHour
{
    param
    (
    )

    $DutchCulture = Get-Culture 'nl-NL'

    ConvertTo-HtmlDocument -Uri 'https://www.sportserviceveenendaal.nl/rooster'
    | Select-HtmlNode -CssSelector '.planner-table tbody tr' -All
    | ForEach-Object {
        $CurrentRow = $_

        $Th = $_ | Select-HtmlNode -CssSelector 'th' -All
        $Td = $_ | Select-HtmlNode -CssSelector 'td' -All

        switch ($true)
        {
            ([bool]$Th)
            {
                $Date = $Th | ForEach-Object { [DateTime]::ParseExact($_.InnerText.Trim(), 'dddd d MMMM yyyy', $DutchCulture) }
                break
            }

            (($CurrentRow.Attributes.Value -split ' ') -notcontains 'd-md-table-row')
            {
                break;
            }

            ([bool]$Td)
            {
                $Times = $Td | Select-Object -First 1 | ForEach-Object { $_.GetDirectInnerText().Trim() }
                $FromTimeText, $ToTimeText = $Times -split '–' | ForEach-Object { $_.Trim() }

                $FromTime = [TimeSpan]::ParseExact($FromTimeText, 'g', $DutchCulture)
                $ToTime = [TimeSpan]::ParseExact($ToTimeText, 'g', $DutchCulture)

                $From = $Date.Date.Add($FromTime)
                $To = $Date.Date.Add($ToTime)

                $Activity = $Td | Select-Object -Skip 1 | Select-Object -First 1 | Select-HtmlNode -CssSelector 'a' | Get-HtmlNodeText
                $Facility = $Td | Select-Object -Skip 2 | Select-Object -First 1 | Get-HtmlNodeText

                [PSCustomObject]@{
                    From     = $From
                    To       = $To
                    Activity = $Activity
                    Facility = $Facility
                }

                break
            }
        }
    }
}