Sometimes, Cron is not enough for triggering process. At times like these, we need extra logic to determine if a process will run or not. For example, if a process must be run on Sunday every two weeks, then the extra logic will be needed.
Duration - ex: If Duration is 5 and DurationType is DurationTypes.Minute, then it waits for 5 minutes to run it again.
DurationType - ex : DurationTypes.Year, DurationTypes.Day etc.
InitialDate - Process is triggered from this date (new DateTime(year, month, day, hour, minute, second)).
TimeZoneId - TimeZoneInfo.Id list can be found online (an example of TimeZoneInfo.Id : "GTB Standard Time").
IsRunnable : Runnable status of process.
These activities also need Orchestrator triggers. But attention is needed to it. For example, if you set DurationType as DurationType.Hour, then you must set the Orchestrator trigger as hourly or lower than it. When Orchestrator triggers the process, then this activity checks if the process is proper for running and sets IsRunnable variable. According to the IsRunnable variable, you can create if-else flow and run your sequence.
This package helps with calculating process trigger time.