Controlling is entirely volunteer based. While controllers may have an idea of how long they'll be on, things change, and they may not control at all when they were planning on doing so. It's unrealistic to force controllers to sign up for controlling, however many ARTCC's have timetables or calendars that controllers can use to indicate when they will be online. As well, many controllers will include an estimated time in their controller ATIS indicating when they are planning on logging off. Of course, if you fly for an event, controllers will be on for the entire advertised time, and often for another hour or longer later.
As far as controlling local positions, controllers are required to undergo a series of training sessions and exams to move up. You start with GND/DEL, move up to TWR, then APP, and finally CTR. It often takes upwards of a year for a student to go from an Observer to a Center controller. Programs such as VATSpy show the VATSIM ratings (S1, S2, S3, C1, C3, I1, I3, SUP, ADM), although this may not correspond to the controllers certifications within their facility. As an example, I am a visiting controller at New York (ZNY). While I hold an I3 rating (and control at ZNY as a C1, a controller or center rating), I am only certed for approach at one facility and departure at another. This means that the HIGHEST position I can work is NY_ARD_APP (approach for Newark Area), and I cannot contorl anywhere at PHL, not even Ground. A roster, including what positions different controllers are certified for, can be found on ARTCC websites.
Hope this helps clarify things.