Add a Common Task Scheduling Calendar

Problem/Justification:
The current task scheduler used for SMART, Scrubs, Cron and Rsync lacks the ability to setup a task by ‘day of week’ when used in conjunction with a biweekly (every other week) schedule, which is a common interval, depending on what your doing. Using a Cron job to achieve a biweekly schedule requires experience as it’s totally non-intuitive. Furthermore, there is no way to view all TrueNAS task concurrently to ensure there are not multiple task scheduled at the same time, other than to drill down into each task type & task and write down the schedule.
iXsystems likes to think of their TrueNAS systems as very reliable and they largely are, but (I think) may have ignored this one finer point toward keeping it that way. Mainly, making it dirt simple to setup all of you scrubs and SMART test and in a manner so they don’t step on each other. Given the migration to Scale and the influx of new users, making the interface more intuitive is a win-win and the seasoned users will appreciate it too.
Impact:
Having the ability to schedule ‘biweekly’ + ‘day of the week’ task will allow finer grain scheduling, which may allow more task to be scheduled in a month without conflicts. Furthermore, providing a common calendar will allow users to visually see when task are scheduled and reduce task conflicts. I don’t think this would impact existing task or their current schedule and the new scheduler could be used as needed. The calendar itself should not impact anything.
User Story:
First, I’ll say I’m not an IT professional, coder or SW person. I ’m currently on Core, but plan to switch to Scale (Fangtooth) when the dust settles (I don’t want go thru the pain of setting up apps multiple times.). However, I presume that setting up scrubs and SMART test in Scale is very similar to Core. I found setting up these scheduled task difficult or impossible when trying to specify a given day of the week and a biweekly (every other week) cycle. I also tried setting up a Cron job and had mixed results mainly due to lack of being a subject matter expert. I could never get it to work and ultimately, I compromised and setup all my task by ‘day of the month’ rather than by ‘day of the week’. This is less than ideal for some months. And while attempting to set this up I started putting all the task in to a secondary Google calendar so that I could see and avoid schedule conflicts, which is what made me think of this feature. I’ve included a picture of this calendar to give a better idea of what I envision. A couple tasks in that calendar are where other computers, other than TrueNAS, back up to TrueNAS or from TrueNAS and can be ignored (i.e., ‘Sync DT→TN and Sync TN→BU). When ever something is sluggish, my first stop is to look at the calendar and see if anything is scheduled to run currently.

Some of the task that could be on this calendar are:
1) Periodic snapshots
2) Scrubs
3) SMART test (Long & Short)
4) TRIM (SSD’s)
5) Replications
6) Rsync
7) Boot Scrub
8) App operations? (Like a scheduled restart of an app?)
In addition, to the calendar request, providing an integrated scheduling tool that will allow biweekly with day of the week, etc is a key part to my feature request.
I envision a user going to the calendar, right clicking on a day and selecting the type of task to be added and then filling in details in a wizard much like you have now. This will help users to avoid conflicts with any existing task on the calendar. The calendar and scheduling wizard would be the same for all task.
I’ll leave it to iXsystems to determine the details of how and to what extent the calendar is integrated into the OS, but I do believe there are more features that could be added than what I’ve mentioned above.