Tasks and dispatch functionality is only available to premium user accounts. This article will attempt to shed some light on the task allocation process and how notifications about due tasks are sent to assigned users.


To illustrate this, we’ve created some test tasks in a test app.



The screenshot above shows a recurring task that is set to recur every day for 20 days. These tasks will look like this in the task calendar view (below):


As can be seen in the example above, the system keeps a rolling set of 6 task instances at a time.  So if 20 recurring tasks are created, then the first 6 would send notifications to the assigned user(s) and be available immediately. However, the last 14 tasks (20 - 6) will trigger staggered notifications, day by day, as the client/user would be expecting them to.  This approach is a conscious design decision to ensure that the tasks are created and assigned in such a way, that they are available before the actual task needs to be started and so, shows up on the user's notification radar.


The generator (background job) maintains a rolling 6 occurrences in chronological order every time an occurrence date comes along.


Please note the differences between the solid color and the grayed out color on the schedule above.


1. Greyed Out Color: 

This is a fictitious representation of a future task in the recurring schedule - called an occurrence.  The details about this occurrence are stored in the recurring task details and its schedule in the recurring schedule.  If you want to update the details for a future occurrence you can do so in the recurring task details.


2. Solid Color:  

This is an actual task instance which is created by the background job while maintaining the 6 rolling Instances.  An occurrence turns into a Task Instance if it is part of the end of the rolling 6 as each start-by date rolls in. Since task instances are actual tasks their details can be edited in line unless they are completed.  Changes to the recurring task schedule or recurring tasks details will not affect task instances.


With reference to the calendar-view screenshot above, lets look at each date in detail to see what is happening:


  • 7 May - Tuesday- Task Instance (Solid color in calendar view)
  • 8 May - Wednesday - Task Instance (Solid color in calendar view)
  • 9 May - Thursday- Task Instance (Solid color in calendar view)
  • 10 May - Friday - Task Instance (Solid color in calendar view)
  • 11 May - Saturday - Task Instance (Solid color in calendar view)
  • 12 May - Sunday - Task Instance (Solid color in calendar view)
  • 13 May - Monday - Future Occurrence - Not yet created by background job (Greyed out color in calendar view)
  • 14 May - Tuesday - Future Occurrence - Not yet created by background job (Greyed out color in calendar view)
  • 15 May - Wednesday - Future Occurrence - Not yet created by background job (Greyed out color in calendar view)
  • 16 May - Thursday - Future Occurrence - Not yet created by background job (Greyed out color in calendar view)
  • 17 May - Friday- Future Occurrence - Not yet created by background job (Greyed out color in calendar view)
  • ...and so on...