You can set up automatic accrual to be repetitive each year.
You can create several contract types in Configuration → Contract types (e.g. '20 days contract', '10 days contract', ''8 days contract etc'.) Then, you can assign employees to that contract types.
2. Then, you can go to Configuration → Absence types → Annual leave → Edit → accrual tab, to add more rules. You can create a new rule that accrues 20 days each year and restrict this particular rule to e.g. '20 days contract' etc. You should create as many rules as you need ('Add another rule' for the new number of days and set the 'Restricted to' for each rule to apply to the right people).