1. A non-transitory computer-readable medium having instructions stored thereon that, when executed by a processor, cause the processor to automatically assign tasks to resources, the automatic assigning comprising: receiving a notification that a resource is about to enter an idle period or has entered the idle period; automatically assigning a filler task or a portion of the filler task to the resource, wherein the filler task or the portion of the filler task comprises a task that can be split into multiple portions, wherein when the duration of the filler task is greater than a duration of the idle period the assigning comprises: dividing the filler task into the portion of the filler task and another portion of the filler task, wherein a duration of the portion of the filler task is equal to the duration of the idle period; and assigning the portion of the filler task to the resource; receiving a notification that the resource is about to exit the idle period or has exited the idle period; and automatically un-assigning the filler task or the portion of the filler task from the resource.