The document describes the event calculus framework for reasoning about events and their effects. It discusses key concepts like events, fluents, states and time in the event calculus. It also covers different types of reasoning supported in the event calculus like deductive, abductive and reactive reasoning. The document further discusses axiomatization of the event calculus in logic programming languages like Prolog and implementations like the cached event calculus. It also provides examples of applications that use the event calculus framework.