@anouk. What Ronald Sole said is correct, it is not idiomatic. You're confusing idioms and present prefects. There is no correlation between the two, though an idiom can contain a present perfect. But it is also right to say not all idioms contain present perfects.
The present perfect 'have been' simply indicates that it is occurring in the present and may or may not continue in the future.
An idiom is defined as 'group of words established by usage as having a meaning not deducible from those of the individual words' e.g. kick the bucket, throw a party, over the moon.
They generally tend to have another meaning and should not be taken literally. Almost like metaphors?
The phrase 'I have been on holiday' has an easily, deducible meaning. Unless, it was used sarcastically and is dependent on context. See speech acts: illocutionary force. However, even if it did, that would still not make it an idiom.
Edit: Okay, there are numerous way you can say this:
"Someone always takes care of my cat whenever I go on holiday."
This is to show that they have took care of your cat in the past and will continue to do so in the future. The adverb 'always' alludes to a number [several] of years.
If you really want to be fussy you can say:
"For the past few years, someone has been taking care of my cat while
I've been away"
OR
"Someone has took care of my cat every time I went on holiday."
With every time, referring to all those years.
OR
If it has not happened and is about to happen:
"Someone will take care of my cat when I go on holiday for a few
years"
These are just suggestions and the other statements the other responder have said are also correct. I don't know how it's hard for someone to say such an easy statement when they have already said it.
Also in your original post:
Someone has been taking care of my cat when I have been on holiday
is correct to use.
Someone has been taking care of my cat when I go on holiday
This one doesn't make sense, it uses a present-perfect and a future tense. Like Ronald said they both jar with the when I go on holiday.
It's more correct to say:
Someone will take care of my cat when I go on holiday
OR
Someone has been taking care of my cat when I went on holiday