What causes inaccurate time in 555?
That 220 uF capacitor will be an electolytic one, they're well known to have inaccurate values. The value will also be slightly voltage dependent and since the capacitor is charged and discharged in your circuit, you end up with a highly unpredictable value.

I see the following options:


Try with a different value capacitor until you get the right timing value. You could also use several capacitors in parallel (like 100 uF and a 22 uF) if you need.
Use a 7555 or TLC555 this is the CMOS version of the 555, it can work with very high value resistors, like 1 M ohm. Then you could use a more accurate ceramic capacitor.
Forget about the 555 and use HEF4060 oscillator + counter IC, it needs a resistor and a small value capacitor to run an oscillator but it also provides frequency divided versions of that signal so you can still make long timing values.
Forget about the 555 and use a microcontroller. If that MCU is used with an external timing crystal or resonator you can achieve timing accuracy almost as good as your digital watch. No that's not expensive, I have Arduino nano modules with a crystal and they're 2 Euros a piece.