better argument validation and allow sched_tz to be a timezone string