Combining monitoring data and reservoir simulations of CO2 storage sites is crucial for improving our understanding of a site, verifying conformance and allowing us to utilise fully all available data. In this way we can include relevant flow physics in our quantitative interpretations of monitoring data and constrain our simulations so they are consistent with physical observations. Here we have developed a flexible modelling framework in the open-source, Matlab Reservoir Simulation Toolbox (MRST), using hybrid vertical equilibrium simulations and adjoint-based optimisation. Our framework allows us to optimise a CO2 storage simulation to any combination of monitoring data, provided we can formulate a suitable objective function which links the information from the monitoring and the parameters from the reservoir simulation in a meaningful way. We have applied our method to the new, layered, Sleipner benchmark model with the aim of calibrating the model to fit plume outlines, gravity monitoring data and CO2 saturations inferred from sequential seismic full waveform and rock physics inversion. We compare results of calibration using a combined objective function containing information about multiple available monitoring datasets with calibration to each type of monitoring data individually. Results when using combined data are promising but further study is needed to investigate the relative weighting of each term in the objective function.