Designing/Printing objects with sized holes
The reason holes come out undersized is generally the slicer, so calibrating the printer itself cannot solve the issue (without making other things worse). The output of the printer is exactly what it should be, given the G-code provided to it. It's just that the G-code does not represent the hole diameter correctly.

It would be best to simply account for the deviation in your design, or simply drill out undersized holes to the correct diameter.