Is it free to call 0345 from O2?

Calling 0300 on o2 Mobile.

Yes, it is free to call 0300 from o2.
With the latest changes to UK Call costs and charges 02 have confirmed that they will treat 0300 numbers in the same way as they treat telephone numbers that begin with an 01 or an 02 in that they will be charged as being geographical calls and this means that if your are on contract or 02 Pay As You Go calls to 0300 Numbers are within you inclusive price plan and as long as you have inclusive minutes left you wont rack up any additional charges.