Three building blocks:
- Work schedules, holiday schedules and time zones: the work schedule defines business days and hours, the holiday schedule the non-working dates, the time zone completes it. They can be defined per process app, per BPD, per activity, or taken from the server defaults maintained in Process Admin.
- Due dates: an activity's Due in (e.g. 2 business days) is computed on the effective schedule - weekends and holidays are skipped when the schedule says so; the task's due date drives the portal's overdue indicators and the timer boundary events "before / after due date".
- Timers: timer boundary events on the activity (on due date, before due date - reminders, after due date - escalation) with repeat options; each timer path can send an e-mail, reassign to the manager team, raise priority, and loop back to the task (non-interrupting timers keep the task open).
BPD activity "Approve order": due in 2 business days (work schedule "DE office", holidays "DE-BY", time zone Europe/Berlin)
timer boundary (non-interrupting) 1 day before due -> [Send reminder e-mail]
timer boundary (non-interrupting) on due date -> [Escalate: reassign to team managers, priority High]
timer boundary (interrupting) 5 days after due -> [Auto-reject]
// in scripts, add business time with the TWDate helpers (e.g. addDays / addWorkingDays on your level - check the JavaScript API reference)
var due = new TWDate(); due.addDays(2);
// reading / setting a task due date in scripts and REST
var t = tw.system.findTaskByID(tw.local.taskId); t.dueDate = new Date(tw.local.newDue); // JS API (server side)
PUT /rest/bpm/wle/v1/task/2078.456?action=update&dueDate=2025-06-30T16:00:00Z&parts=none // REST
Per-country calendars: create one holiday schedule per country (or per region) in a shared toolkit so that every app uses the same lists, and select the schedule on the activity from data (the Time schedule option can be an expression, e.g. tw.local.request.country + " holidays"); maintain the holiday lists yearly (they are versioned with the snapshot - put them in the toolkit's next snapshot and upgrade dependencies, or on the server as default schedules that administrators edit in Process Admin without redeploy).
References