There are several ways that a task could be triggered automatically in DashBoard at a specific time.
1. If you have a button that you want to trigger with an external program, you can give it a trigger ID. In panel builder mode, double click on the button, and then in the trigger ID field type a name:

Once a button has a trigger ID, you can trigger it using TCP messages.
In the DashBoard preferences, you can enable the RossTalk GPI listener, and give it a specific port:

Now, you can trigger that button by sending a TCP message of "GPI <triggerid>" to the specified port. For example: "GPI switchnk".
You can also have different panels listening on different ports by specifying a GPI port in the top level abs of the panel (in panel builder mode, double click anywhere empty).

If you can find a utility to send TCP messages, you can use a cron job to trigger that utility to send a TCP message to DashBoard to trigger your tasks at specific times.
You can also use an ogscript method to run something at a later date. Here is a grid file that shows how to run a task at a specific time:
<abs contexttype="opengear" gridsize="20" id="_top" keepalive="false" style="">
<meta>
<params>
<param access="1" maxlength="0" name="delay (seconds)" oid="delay" type="STRING" value="15:08:00" widget="time-picker"/>
</params>
</meta>
<label height="60" left="40" name="Running Tasks at Specific Times" style="txt-align:west;size:Bigger;" top="40" width="620"/>
<label height="20" left="40" name="You can code a task to run at a specific time. See the code in the button for an example." style="txt-align:west;" top="100" width="1100"/>
<table height="40" left="40" oid="delay" top="160" width="200">
<tr>
<label anchor="east" fill="none" insets="0,0,0,5" name="Run task at time:" weightx="0.0"/>
<param anchor="west" expand="true" fill="both" oid="delay" showlabel="false" weightx="1.0" weighty="1.0"/>
</tr>
</table>
<button buttontype="push" height="40" left="40" name="Run Task" top="200" width="200">
<task tasktype="ogscript">function runTask() {
var date = new Date();
ogscript.rename("message", "task triggered on " + date);
}
var date = new Date();
var time = params.getValue("delay",0);
var timeArray = time.split(":");
date.setSeconds(timeArray[2]);
date.setMinutes(timeArray[1]);
date.setHours(timeArray[0]);
var now = new Date();
var delay = date.getTime()- now.getTime();
if (delay < 0) {
ogscript.rename("message", date + " is in the past");
} else {
ogscript.rename("message", "running on " + date)
ogscript.asyncExec(runTask, delay);
}</task>
</button>
<label height="40" id="message" left="260" name="message" style="txt-align:west;bg#dark;" top="160" width="440"/>
<label height="40" left="260" name="This panel only runs tasks that are later today. It could be enhanced to run tasks at a later date too." style="txt-align:west;" top="200" width="620"/>
</abs>
Just make a new custom panel, and overwrite its XML with what is pasted above. If you look at the task in the button, you'll see that you can use ogscript.asyncExec to run a task after a specified delay. You can calculate that delay based on when you want to run the task.
We also have timers, which can run a task periodically (e.g. every 60 seconds). You could use one of these tasks to verify something at specific intervals, and trigger something when a certain condition is met.
There are example DashBoard panels here:
https://support.rossvideo.com/hc/en-us/community/posts/360065970252-Free-DashBoard-Example-Panels-for-Everyone
There are some on timers, and on running tasks at specified times.
#NK