Create your calendar in the Database as you want it...Lets say you have a requirement to run on 1st, 3rd and 5th, 7th and 18th of the month..Then have a flag in the DB for these dates.
Then create a simple analysis on your calendar table to return a row when the the flag for these dates is true.
Use this Analysis as a condition for your agent to run only when the analysis returns a row. So the agent will run only on those dates that the analysis returns a row..
I would go with vjbez1, as we did same for one of our banking projects, where we supposed to send reports on their business days. we get holiday list first then we have a flag, based on the flag assign the reports were triggered.