title: launchd incorrectly runs job every minute
body: <p>EDIT: Solved! Had an extra '>' after each "Minute" in the XML. Thanks Dikei.</p>
  
  <p>I am trying to set up a python script to be run 3 times a day, at 1AM, 9AM and 7PM. I was going to use cron, which was working, but if my computer is asleep during one of those times I still want the job to run when I open up my computer again. cron doesn't do this, but apparently launchd is supposed to do this, but I'm running into problems. It'll start executing my job at the correct time, but it'll then execute it every minute, and I only want it to run once.</p>
  
  <p>Here's the plist file:</p>
  
  <pre><code>&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;com.test&lt;/string&gt;
      &lt;key&gt;ProgramArguments&lt;/key&gt;
      &lt;array&gt;
        &lt;string&gt;/usr/bin/python&lt;/string&gt;
        &lt;string&gt;/Users/myname/helloworld.py&lt;/string&gt;
      &lt;/array&gt;
      &lt;key&gt;StandardOutPath&lt;/key&gt;
      &lt;string&gt;/Users/myname/log.txt&lt;/string&gt;
      &lt;key&gt;StandardErrorPath&lt;/key&gt;
      &lt;string&gt;/Users/myname/log.txt&lt;/string&gt;  
      &lt;key&gt;StartCalendarInterval&lt;/key&gt;
        &lt;array&gt;
          &lt;dict&gt;
            &lt;key&gt;Hour&lt;/key&gt;
            &lt;integer&gt;1&lt;/integer&gt;
            &lt;key&gt;Minute&gt;&lt;/key&gt;
            &lt;integer&gt;0&lt;/integer&gt;
          &lt;/dict&gt;
          &lt;dict&gt;
            &lt;key&gt;Hour&lt;/key&gt;
            &lt;integer&gt;9&lt;/integer&gt;
            &lt;key&gt;Minute&gt;&lt;/key&gt;
            &lt;integer&gt;0&lt;/integer&gt;
          &lt;/dict&gt;
          &lt;dict&gt;
            &lt;key&gt;Hour&lt;/key&gt;
            &lt;integer&gt;19&lt;/integer&gt;
            &lt;key&gt;Minute&gt;&lt;/key&gt;
            &lt;integer&gt;0&lt;/integer&gt;
          &lt;/dict&gt;
        &lt;/array&gt;
      &lt;key&gt;KeepAlive&lt;/key&gt;
      &lt;false/&gt;
    &lt;/dict&gt;
  &lt;/plist&gt;
  </code></pre>
  
  <p>In this case helloworld.py is just a file containing <code>print 'Hello world'</code>. But it's getting executed every minute, when I just want it to execute once.</p>
  
  <p>This question with a similar name <a href="https://stackoverflow.com/questions/1788118/launchd-job-running-every-minute">Launchd job running every minute</a> suggests that the array functionality wasn't added until OS X 10.5, and that I'd have to put the three times into separate plist files, but I tried a file with just a single time and it didn't work either, and I'm running Mountain Lion (OS X 10.8.3), so it shouldn't be an issue. I've seen other suggestions relating to TimeOut and ExitTimeOut, but I'm not sure those are relevant.</p>
  
  <p>How can I have it just run the program just once until the next 8 hour period?</p>