You'll want a sort of retainer agreement. There are other answers that explain about retainers, and when to use them.
Essentially, they want you available for a long while, which gives you some security (which can be good, it could be bad). Do not fall into the trap of it becoming just a job, with them just paying you as a contractor but expecting you to act like an employee. Make sure you keep that distinction.
You'll also need to keep track of your days and time you are working for this client. Do you know ahead of time what 120 days you will be working? Every Monday and Wednesday, with a couple Fridays thrown in for good measures? Do you choose the time to come in? Will you be given notice when you are expected to be there? Are you working 14 hour days for this client for each of the 120 days?
The red flag for me that it is a retainer is that you are not specifying that it's 120 consecutive working days. So I would be a little concerned.
- What happens if you don't work for a month / take a vacation?
- When will you be expected to show up when you are told?
- Are off hours truly time off (as in, you won't be called in while out of town, or with other clients)?
- Does this client take priority over other jobs?
- What happens at the end of the year or the end of the 120 days? What if you need to work more days, or if there are extra work days paid for in advance?
I would personally charge them up front for the first two months, and expect to have the "retainer" filled up by 1 month's pay by the first of the previous month (i.e. starting in January, you should be paid January and February by January 1st, March on February 1st, etc). Find out how much each "month" will cost, and stick to it. If they don't use you during the month (and you've been available), then you get the rest of the retainer for that month. If you hit 10 hours per month (I'm going to assume 10 hours per month, based on 12 equal months), then all work should stop until your retainer is filled up again, or until the next month. THIS MUST BE CLEAR, otherwise you will be taken advantage of.