We can use CRON expression to schedule a batch apex to run at particular hour intervals. Do you know that you can use shorter expression instead of specifying the exact hours. Suppose, we have to schedule a batch apex to run every 3 hours MON-FRI starting 12 am from a particular day. Now, it can be scheduled in two ways: /*Specifying each hour value; long syntax TestBatchSchedule tbs = new TestBatchSchedule(); String sch = '0 0 0,3,6,9,12,15,18,21 ? * MON-FRI'; System.schedule('test job', sch, tbs); /*Specifying relative hour value; simple syntax TestBatchSchedule tbs = new TestBatchSchedule(); String sch = '0 0 */3 ? * MON-FRI'; System.schedule('test job', sch, tbs); Note: However, it is not possible to put similar kind of syntax for seconds and minutes. Trying to do so will give error: 'System.StringException: Seconds and minutes must be specified as integers'