Es gibt Timer start events und Timer intermediate events. Timer start events dienen der Instanziierung von Prozessen und dem Starten von Event subprocesses (nur BPMN 1.x). Sobald ein Timer start event zu Beginn eines Prozesses ausgelöst wird, wird eine Prozessinstanz erzeugt. Sobald ein Timer start event zu Beginn eines Event subprocess ausgelöst wird, wird der Event subprocess gestartet. Sofern es sich um ein Interrupting event handelt, wird der umgebende Sub-Prozess abgebrochen.
Timer intermediate events können im Sequence flow und am Aktivitätsrand verwendet werden. Entsprechend dienen sie der Prozessverzögerung oder dem Abbruch von Aktivitäten. Bei Timer events im Sequence flow warten eingehende Prozessmappen so lange, bis das Timer event ausgelöst wird, um anschließend weitergeleitet zu werden. Bei Timer events am Aktivitätsrand wird eine Prozessmappe durch den ausgehenden Exception flow geschickt, sobald das Ereignis ausgelöst wird und die Aktivität in diesem Moment aktiv ist. Falls das Timer event ein Interrupting event ist, wird die Aktivität abgebrochen.
Das Ereignis Timer wird ausgelöst, wenn das definierte Datum (Attribut Time date) oder der definierte Zyklus (Attribut Time cycle) oder die definierte Dauer (Attribut Time duration; nur BPMN 1.x) erreicht wird. Bei Timer start events am Prozessbeginn gelten außerdem die Aussagen zur Prozessinstanziierung.
Die oben genannten Attribute schließen sich gegenseitig aus. Ist eines davon definiert, verhält sich ein Timer start event folgendermaßen:
Ist das Attribut Time date definiert, wird eine Prozessinstanz erzeugt. Ist kein Startzeitpunkt für den Zyklus definiert, wird der Startzeitpunkt der Simulation dafür verwendet. (Als Eingabewert wird ein wiederkehrendes Zeitintervall entsprechend ISO 8601 erwartet.)
Ist das Attribut Time cycle definiert, wird am Ende jedes Intervalls eine Prozessinstanz erzeugt. Ist kein Startzeitpunkt für den Zyklus definiert, wird der Startzeitpunkt der Simulation dafür verwendet. (Als Eingabewert wird ein wiederkehrendes Zeitintervall entsprechend ISO 8601 erwartet.)
Ist das Attribut Time duration definiert, wird eine Prozessinstanz erzeugt, wenn die Laufzeit abgelaufen ist. Als Startzeitpunkt für die Laufzeit wird der Startzeitpunkt der Simulation verwendet. (Als Eingabewert wird ein Zeitintervall entsprechend ISO 8601 erwartet.)