There are several ways to deal with this question, and without knowing most of the variables, it's hard to point a better way.
If your data comes from a DB witch is the most common scenario (like postgresql) and you have a table with your holidays it's quite easy, you could adapt a query to your needs like this:
SELECT
data_p FROM generate_series('2019-01-01 00:00'::timestamp, '2019-07-01 00:00', '1 day') as data_pWHEREEXTRACT(DOW FROM data_p ) IN (1,2,3,4,5)
Add a holiday table and you got it.
If you have an e-calendar, you could parse an ICS (most of them have it) and that way you could sort all kinds of events (including holidays and days of week).
If you whants to generate a time serie in PDI... most of "time dimension" samples will cut it!
https://assignittous.com/2018/01/18/generating-date-dimension-table-pentaho-data-integration/
https://forums.pentaho.com/threads/52290-Time-Dimension-generator/
http://type-exit.org/adventures-with-open-source-bi/2010/09/building-a-detailed-date-dimension-with-pentaho-kettle/