1. A method for scheduling a program for execution, the program requiring a computer hardware resource for execution, the method comprising the steps of: a computer determining and recording historic utilization or availability of the computer hardware resource at a multiplicity of times a day; the computer subsequently receiving a request to schedule the program for execution on the day at a specified time and (a) daily thereafter at the specified time or (b) weekly thereafter on the day of the week at the specified time, or (c) monthly thereafter on the day of the month at the specified time, and in response, the request receiving computer checking the record of the historic utilization or availability of the computer hardware resource for the day at approximately the specified time to determine if there has been historical availability of the resource exceeding a predetermined availability threshold on the day at approximately the specified time to execute the program, and if so, scheduling the program for execution, and executing the program, on the day at the specified time and (i) daily thereafter at the specified time, or (ii) weekly thereafter on the day of the week at the specified time, or (iii) monthly thereafter on the day of the month at the specified time, as requested, and if not, the request receiving computer not scheduling the program for execution on the day at the specified time or (i) daily thereafter at the specified time, or (ii) weekly thereafter on the day of the week at the specified time, or (iii) monthly thereafter on the day of the month at the specified time, as requested; and in response to a determination that there was not historical availability of the resource exceeding the predetermined availability threshold on the day at approximately the specified time, the request receiving computer (i) automatically determining an other time on the day within a predetermined time interval, relative to the specified time, during which there was historical availability of the resource exceeding the predetermined availability threshold in the past to execute the program, wherein the automatically determining the other time comprises determining the other time as being a time of expected maximum availability of the resource within the time interval, (ii) displaying on a computer monitor a notification that the other time on the day is available to execute the program, (iii) scheduling the program for execution at the other time on the day, and (iv) executing the program at the other time on the day.