Scheduling executions of Tests can be made by creating Test Executions containing the Tests that should be run.
In fact, Test Executions contain Test Runs (i.e. instances of the Tests in the context of that Test Execution, that contain a copy of the Test specification along with the respective result).
Sometimes you're testing against different target systems, different browsers, different devices, different database providers.
In that case, if the Tests are exactly the same but you wish to track the results on those different environments, then you should create different Test Executions for the different environments and assign the proper Test Environment.
More info about Test Environments can be found in Working with Test Environments.
Sometimes you're testing against different target systems, different browsers, different devices, different database providers.
For history reasons, you should create a Test Execution with the Tests that you want to run in that version/revision of the system. That way you'll be able to see the results you obtained in that specific iteration (i.e. in that Test Execution) that ran in some revision of the system under test.
You can also update the same Test Execution but you'll loose the benefit of tracking how your test results evolve through time.