Abstract A mathematical model for plankton, nutrient (phosphate, ammonia and nitrate) and oxygen dynamics in lakes was developed. It is based on horizontally averaged changes in substance and organism concentrations due to vertical mixing, sedimentation, in- and outflows and biogeochemical conversion processes in the water column and in adjacent sediment layers. The biological part of the model was kept as simple as possible with the three plankton classes Planktothrix Oscillatoria) rubescens (most abundant blue-green algae in the lake), other algae and zooplankton. Due to a strong phosphate limitation of algae growth in summer, the stoichiometry of primary production with respect to phosphorus had to be made variable in order to describe data sets available from Lake Zürich. In addition, a process of phosphate uptake of organic particles sinking through the hypolimnion had to be taken into account. After adjusting some model parameters, the model was able to reproduce the key features of the nutrient and oxygen profiles and of algae–zooplankton interactions over several years. However, it was not able to predict occasionally occurring blooms of specific types of algae. This shows that the model is a good tool for studying the dynamics of the key processes governing plankton and nutrient dynamics in the lake, but that it is not detailed enough for the investigation of rarely occurring phenomena involving specific types of algae and for an accurate representation of zooplankton dynamics.