The best time to schedule shifts is a week before the effective date of the roster. This gives your employees time to process the change in their work schedule. If they have concerns and appeals about the schedule, then you can have more time to change them including day-offs and leaves.