Want launchd to run a script weekly, but it is running it daily instead I wanted to write a simple launchd job that runs a script every Monday morning at 7:00 am. The goal is to pull an image from tapmusic.net that catalogs my last.fm listening habits from the prior week. The daemon runs properly and is able to execute the script just fine, and the script does exactly what I want it to. The issue is that the job is being executed every day at midnight, not Monday at 7. This is my first time trying out something like this, and I tried to follow templates on developer.apple.com and ones floating around the net, but I'm really unsure of how I can fix this problem. Here is the *.plist file that I'm running:
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE plist PUBLIC &quot;-//Apple Computer//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
&lt;plist version=&quot;1.0&quot;&gt;
    &lt;dict&gt;
        &lt;key&gt;Label&lt;/key&gt;
        &lt;string&gt;local.lastfm_chart&lt;/string&gt;
        &lt;key&gt;Program&lt;/key&gt;
        &lt;string&gt;/scripts/lastfm_chart.sh&lt;/string&gt;
        &lt;key&gt;StartCalendarInterval&lt;/key&gt;
        &lt;dict&gt;
            &lt;key&gt;Hour&lt;/key&gt;
            &lt;integer&gt;7&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;/dict&gt;
&lt;/plist&gt;

Like I said, I've been able to load and run the job just fine, just not at the right time.
Also, my system.log file is getting bombarded by a message and looks like this:
Jun 15 08:54:46 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 2 seconds. Pushing respawn out by 8 seconds.
Jun 15 08:54:57 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 3 seconds. Pushing respawn out by 7 seconds.
Jun 15 08:55:07 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 2 seconds. Pushing respawn out by 8 seconds.
Jun 15 08:55:45 --- last message repeated 2 times ---
Jun 15 08:55:45 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 8 seconds. Pushing respawn out by 2 seconds.
Jun 15 08:55:50 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 2 seconds. Pushing respawn out by 8 seconds.
Jun 15 08:56:12 --- last message repeated 1 time ---
Jun 15 08:56:12 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 3 seconds. Pushing respawn out by 7 seconds.
Jun 15 08:56:34 --- last message repeated 1 time ---
Jun 15 08:56:34 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 4 seconds. Pushing respawn out by 6 seconds.
Jun 15 08:56:43 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 2 seconds. Pushing respawn out by 8 seconds.
Jun 15 08:57:07 --- last message repeated 1 time ---
Jun 15 08:57:07 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 5 seconds. Pushing respawn out by 5 seconds.
Jun 15 08:57:15 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 3 seconds. Pushing respawn out by 7 seconds.
Jun 15 08:57:25 ***-MBP com.apple.xpc.launchd[1] (local.lastfm_chart): Service only ran for 2 seconds. Pushing respawn out by 8 seconds.

I'm not sure what this signifies, either.
I'm on mojave 10.14.6, if that matters.
Adding an edit to include the bash script that is being executed:
#!/bin/sh


now=`date -v -7d +&quot;%Y-%m-%d&quot;`
curl &quot;https://tapmusic.net/collage.php?user=gas_giant&amp;type=7day&amp;size=4x4&amp;caption=true&quot; -o /Users/****/Documents/Music/last.fm\ Listening\ Reports/tuneage_${now}.jpg
Your Calendar Interval looks upside down.  Start with the day and then the time.  It should look like this:
&lt;dict&gt;
    &lt;key&gt;Weekday&lt;/key&gt;
    &lt;integer&gt;1&lt;/integer&gt;
    &lt;key&gt;Hour&lt;/key&gt;
    &lt;integer&gt;7&lt;/integer&gt;
    &lt;key&gt;Minute&lt;/key&gt;
    &lt;integer&gt;00&lt;/integer&gt;
&lt;/dict&gt;

You also don’t  want the “Run At Load” value set because it will execute the script the moment the plist is loaded like at boot time or upon login.
As far as your script goes it looks fine.  There’s nothing in there that will trigger it to run at a particular time as the date function is only being used to populate a variable that’s used in a filename.