Anytime you take off more than 10km from your last take off site you must calibrate.
If the weather conditions are significantly different, say a storm or it’s gone from wet to sunny. Calibrate.
If you haven’t flown for s week, calibrate.
Simple rules given the reason for recalibration is magnetic interference which alter hourly, minutely depending on weather conditions and this deviation is geographic specific. Meaning the calibration calibrated it to the local, time specific interference.
Hope that helps
Gareth
Unfortunately you have misunderstood the purpose of calibration. It has nothing to do with the earth's magnetic field and, specifically, nothing to do with magnetic deviation or declination.
A simple consideration of the process of calibrating should make that obvious - since all that the aircraft magnetometers can detect and measure are the magnetic field components at their location, and they do not need to be rotated to make that measurement - they are 3-axis magnetometers. Furthermore, no amount of measuring, with or without rotation, will allow the FC to determine the deviation or declination at a location, since it has no idea where true north is.
Rotating the magnetometers only achieves one thing - it allows the FC to separate the fixed external field (the earth's magnetic field) from the magnetic field of the aircraft itself. It can separate them because in the process of rotation, the aircraft's field remains constant in the frame of reference of the magnetometers, while the earth's field rotates.
That's the purpose of compass calibration - to measure the components of the aircraft's magnetic field so that they can then be subtracted from the total measured field, leaving just the earth's magnetic field that is needed during flight.
Declination is determined from a global declination model in the firmware. Deviation is unmeasurable and cannot be compensated for, which is why taking off in areas of significant magnetic deviation will lead to unstable flight.