StartCalendarInterval
também pode ser uma matriz de dicionários como este: for w in {1..5}; do for h in {6..11}; do echo "<dict><key>Weekday</key><integer>$w</integer><key>Hour</key><integer>$h</integer><key>Second</key><integer>0</integer></dict>"; done; done | pbcopy
.
Você também pode executar o script a cada minuto, mas sair dependendo da hora ou da data:
weekday=$(date +%u)
hour=$(date +%-H)
min=$(date +%-M)
[ $weekday -ge 6 ] && exit
[ $hour -le 5 -o $hour -eq 6 -a $min -le 29 ] && exit
[ $hour -ge 11 -o $hour -eq 10 -a $min -ge 31 ] && exit