The event calculus is a logical language for representing and reasoning about events and their effects first presented by Robert Kowalski and Marek Sergot in 1986. It was extended by Murray Shanahan and Rob Miller in the 1990s. Similar to other languages for reasoning about change, the event calculus represents the effects of actions on fluents. However, events can also be external to the system. In the event calculus, one can specify the value of fluents at some given time points, the events that take place at given time points, and their effects.
In the event calculus, fluents are reified. This means that they are not formalized by means of predicates but by means of functions. A separate predicate is used to tell which fluents hold at a given time point. For example, means that the box is on the table at time ; in this formula, is a predicate while is a function.