Create an Automator Calendar Action, and Calender creates the "On My Mac" section to put a "Automator" calendar in.
The Action contents is irrelevant, and can be deleted later.
Create the action in Automator.app, not Calendar.app.
No need for anything more complex than that.
Just try it, you'll see.
Your duplicate calendar entries are probably from
duplicate calendars or subscriptions.
I had a similar problem - I changed my primary email address, and therefore my Apple ID (I really wish Apple would allow an iCloud address to be the primary, as that is the one that I am not likely to ever change!) and had to sign out of everything iCloud was using in order to be able to enter my password and have it recognized (I deleted my previous primary email because I closed that account). When that happened my calendars wouldn't sync, and I finally discovered that I had to log out of iCloud separately from inside Calendar, and when I logged back in it had changed all my local calendars to iCloud ones. Very irritating Apple! When I have calendars "On My Mac," logging in and out of iCloud should never have affected them. I also wish there was an option to reenter your Apple ID/email address when asked to reenter your password - or mabe have it automatically update itself - it would have solved my problem tidily and I would never have had to do all the workarounds I did to get everything working again.
Thank you so much @dburren for posting your solution to the problem - you saved my sanity! I use local calendars to keep private entries into my calendar that I don't want to show up in my shared devices, since they don't come with the ability to use separate accounts like my Mac does. I don't know what I would have done!
Brilliant, I use MYOB Accountedge V11 and it will only publish to "on my mac" calendars. When I upgraded to Yosemite all my calendars got merged into icloud, so every time I put a purchase into Accountedge that I wanted to appear in iCal, iCal would hang. Thanks to your instructions all is now working fine again. Thankyou.