There are two ways:
1) A Software Delivery Policy (pull technology) can be setup to run on a certain schedule. You could set the compliance check (when it checks the machine to see if it needs the software and when the download will start if it does) to happen whenever you want and the remediation (when it installs) to happen during the maintence window. You can assign different maintennace windows to different groups of machines.
2) A Task (push technology) is much closer to what you had with DS 6.9. The server actually pushes the job to the client and executes it at the time you specify. Gotchas for using this method include the need for the machine to be powered on and connected to the network when the task runs. Also, ensure the timeout you set on the task is enough time for the machine to download and complete execution of the install or the process could get cancelled mid-stream.
I generally use method one for any type of software deployments because it does not require the machines to be on like the push method does and the actual download of the package to cache can happen prior to the execution time. If a machine is off when a policy execution time arrives, it can just install it at the next maintence window without you needing to remember to try pushing it again the next night. If you are certain all machines will be on, this may not be an issue for you.