LaunchAgents zip/tar not working in plist?
From man launchd.plist
ProgramArguments &lt;array of strings&gt;
This key maps to the second argument of execvp(3) and specifies the argument vector to be passed
to the job when a process is spawned. This key is required in the absence of the Program key.
IMPORTANT: Many people are confused by this key. Please read execvp(3) very carefully!

So you need to use
    &lt;key&gt;Program&lt;/key&gt;
    &lt;string&gt;/usr/bin/zip&lt;/string&gt;
    &lt;key&gt;ProgramArguments&lt;/key&gt;
    &lt;array&gt;
        &lt;string&gt;zip&lt;/string&gt;
        &lt;string&gt;/Users/username/Backup/test.zip&lt;/string&gt;
        &lt;string&gt;/Users/username/Documents/*.pdf&lt;/string&gt; 
    &lt;/array&gt;    

It still won't work though because launchd doesn't expand wildcards and zip doesn't either. It's easier to use launchd to start a shell script which does all the work then.