Thanks Tim. Indeed it can.
Just craft the XML with the right user password and run the following command:
curl -k -u "apiadmin:q1w2e3" -X POST https://192.168.1.212/tipsapi/config/write/GuestUser -H "Content-Type:application/xml" --data @test.xml
Example "test.xml":
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TipsApiRequest xmlns="http://www.avendasys.com/tipsapiDefs/1.0">
<TipsHeader version="3.0" source="Guest"/>
<GuestUsers>
<GuestUser enabled="true" expiryTime="2014-09-30 12:24:37" startTime="2014-08-30 12:26:08" sponsorName="admin" guestType="USER" name="guest2" password="test">
</GuestUser>
</GuestUsers>
</TipsApiRequest>
So each week, I just need to change the line with the Guest details. I can recreate that line with the following in linux. Bit raw and clunky but works.
echo "<GuestUser enabled=\"true\" expiryTime=\""`date -d "+1 week" +%Y-%m-%d" "%H:%M:%S`"\" startTime=\""`date +%Y-%m-%d" "%H:%M:%S`\" sponsorName=\"admin\" guestType=\"USER\" name=\"guest2\" password=\"`echo $RANDOM$RANDOM | cut -c 1-8`\"