Authoring realistic behaviors to populate a large virtual city can be a cumbersome, time-consuming and error-prone task. Believable crowds require the effort of storytellers and programming experts working together for long periods of time. In this work, we present a new framework to allow users to generate populated environments in an easier and faster way, by relying on the use of procedural techniques. Our framework consists of the procedural generation of semantically-augmented virtual cities to drive the procedural generation and simulation of crowds. The main novelty lies in the generation of agendas for each individual inhabitant (alone or as part of a family) by using a rule-based grammar that combines city semantics with the autonomous persons' characteristics. Real-world data can be used to accommodate the generation of a virtual population, thus enabling the recreation of more realistic scenarios. Users can author a new population or city by editing rule files with the flexibility of re-using, combining or extending the rules of previous populations. The results show how logical and consistent behaviors can be easily generated for a large crowd providing a good starting point to bring virtual cities to life.