AppleScript at Startup and specific time
You can run a command at start-up with a launchd plist looking something like this, in /Library/LaunchDaemons

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
    &lt;key&gt;Label&lt;/key&gt;
    &lt;string&gt;NameYourTask&lt;/string&gt;
    &lt;key&gt;ProgramArguments&lt;/key&gt;
    &lt;array&gt;
    &lt;string&gt;CommandToRun&lt;/string&gt;
    &lt;/array&gt;
&lt;/dict&gt;
&lt;/plist&gt;


To run at a defined time, use something like this (this runs Monday, 1am):

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
    &lt;dict&gt;
        &lt;key&gt;Label&lt;/key&gt;
        &lt;string&gt;JobName&lt;/string&gt;
        &lt;key&gt;ProgramArguments&lt;/key&gt;
        &lt;array&gt;
            &lt;string&gt;CommandToRun&lt;/string&gt;
        &lt;/array&gt;
        &lt;key&gt;StartCalendarInterval&lt;/key&gt;
        &lt;dict&gt;
            &lt;key&gt;Hour&lt;/key&gt;
            &lt;integer&gt;1&lt;/integer&gt;
            &lt;key&gt;Minute&lt;/key&gt;
            &lt;integer&gt;0&lt;/integer&gt;
            &lt;key&gt;Weekday&lt;/key&gt;
            &lt;integer&gt;1&lt;/integer&gt;
        &lt;/dict&gt;
        &lt;key&gt;StandardOutPath&lt;/key&gt;
            &lt;string&gt;LogFilePath&lt;/string&gt;
        &lt;key&gt;StandardErrorPath&lt;/key&gt;
            &lt;string&gt;LogFilePath&lt;/string&gt;
    &lt;/dict&gt;
&lt;/plist&gt;


LaunchD has a lot of options regarding how the jobs can run - it can watch and keep processes running, run when networks or files are present, etc.

It looks like you need to define your requirements, then work out how to implement the jobs.

Not below, the command string is a single string. If you want to pass arguments, you can, with multiple string tags.

&lt;array&gt;
    &lt;string&gt;Command&lt;/string&gt;
    &lt;string&gt;Arg1&lt;/string&gt;
    &lt;string&gt;Arg2&lt;/string&gt;
    &lt;string&gt;Arg3&lt;/string&gt;
    &lt;string&gt;Arg4&lt;/string&gt;
&lt;/array&gt;