No calibration of the IMU is needed ... I said IMU
initialization.
It's the IMU that tells the flight controller in which direction the AC points during flight ... for this to work the IMU needs to be initialized to the correct & true direction ... that info is delivered by the compass in the power on moment. So if the compass is deflected due to magnetic disturbance during power on the IMU will be wrongly initialized ... in other words, the AC will not have the correct info about which direction it points.
To be sure that the IMU initialization have been done correctly ...
After powering on your drone, connected to your RC/app & placed it in the take-off spot ... but before lift-off, ALWAYS check that the drone icon on the map in your app is pointing equal in relation to other objects in the map as the drone does in reality ... if not, abort launch attempt, POWER DOWN & move away, power up again and repeat.
Below was your situation at take-off ... if the AC was pointed to North in reality, below is a clear indication that the IMU was initialized wrongly ...
View attachment 128910
All a compass calibration does is to let the compass know the amount of magnetic disturbance that the AC internals generate ... so it can be deducted & let the compass measure the earth mag field correctly. So ... if you haven't added or taken off any equipment from the AC a compass calibration is rarely needed (some firmware's request a calibration each 30 days or depending on distance from the last power on location though ... but actually not needed due to those reasons).
So ... always distrust a compass calibration prompt in the app, always power down & move away do another take-off location & try again.