Cycles with offset in timers

Is it possible to model a cyclic timer with an offset, like “R/+P14D/P7D” which would mean: wait 14 days, then repeat every other 7th day. (This would be in line with iso 8601.)

(I would need this for the start event of an event sub process, that should be started after 14 days and afterwards re-started repeatedly every week.)

Hi @timostolz,

This is not a ISO date format. You can’t use intervals as starting time. R(unbounded recurrence)/+P14D(starting time)/P7D(intervals)


For repeating intervals configure like this:

<startEvent id="theStart">
  <timerEventDefinition>
    <timeCycle>R6/2020-04-17T14:06:00/PT1M</timeCycle>
  </timerEventDefinition>
</startEvent>

Repeating intervals:

As per wiki source, the execution delay time should be date and not the duration. If you configure R/P14D/P7D this, engine will throw exception.

There are four ways to express a time interval:

  1. Start and end, such as “2007-03-01T13:00:00Z/2008-05-11T15:30:00Z”
  2. Start and duration, such as “2007-03-01T13:00:00Z/P1Y2M10DT2H30M”
  3. Duration and end, such as “P1Y2M10DT2H30M/2008-05-11T15:30:00Z”
  4. Duration only, such as “P1Y2M10DT2H30M”, with additional context information

For repeating intervals refer ISO_8601_Repeating_intervals and same was explained in camunda docs as well for timer-start-event-with-repeating-intervals.

Repeating intervals are specified in clause “4.5 Recurring time interval”. They are formed by adding “R[n]/” to the beginning of an interval expression, where R is used as the letter itself and [n] is replaced by the number of repetitions. Leaving out the value for [n] means an unbounded number of repetitions. If the interval specifies the start (forms 1 and 2 above), then this is the start of the repeating interval. If the interval specifies the end but not the start (form 3 above), then this is the end of the repeating interval. For example, to repeat the interval of “P1Y2M10DT2H30M” five times starting at “2008-03-01T13:00:00Z”, use “R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M”.


Check this example for timer startevent with repeating intervals: scheduledProcess.bpmn (3.7 KB)




Additional Resources:

DateTime > Repeating interval (ISO 8601) (R//)


1 Like