We present assume-guarantee contracts for continuous-time linear dynamical systems with inputs and outputs. These contracts are used to express specifications on the dynamic behaviour of a system. Contrary to existing approaches, we use simulation to compare the dynamic behaviour of two systems. This has the advantage of being supported by efficient numerical algorithms for verification as well as being related to the rich literature on (bi)simulation based techniques for verification and control, such as those based on (discrete) abstractions. Using simulation, we define contract implementation and a notion of contract refinement. We also define a notion of series composition for contracts, which allows us to reason about the series interconnection of systems on the basis of the contracts on its components. Together, the notions of refinement and composition allow contracts to be used for modular design and analysis of interconnected systems.