Reasoning about event structure is a fundamental research problem in Artificial Intelligence. Event scenarios and procedures are inherently about change of state. To understand them and answer questions about them requires a means of describing, simulating and analyzing the underlying processes, taking into account preconditions and effects, the resources they produce and consume, and their interactions with each other. We propose a novel, comprehensive event schema that covers many of the parameters required and has explicit links to language through FrameNet. Based on the event schema, we have implemented a dynamic model of events capable of simulation and causal inference. We describe the results of applying this event reasoning platform to question answering and system diagnosis, providing responses to questions on justification, temporal projection, ability and "what-if" hypotheticals, as well as complex problems in diagnosis of systems with incomplete knowledge.