Если аргументы могут быть сгенерированы как серии:
select f.*
from generate_series('2019-01-01'::timestamp, '2019-01-31', '1 day') as g(d)
cross join schedule_visit(d::date) as f
в противном случае:
select f.*
from (
values
('2019-01-01'),
('2019-01-03'),
('2019-01-06'),
('2019-01-15')
) as v(d)
cross join schedule_visit(d::date) as f