What you're looking to do is not completely achievable with just Google Calendar.
You can offer your friends the private XML or iCalendar URL for a calendar, but they will need to import that URL into something that can consume such. (Look in the Calendar Details for the "Private Address". See also this Google support article about private calendar addresses.)
This isn't what the feature is designed for, of course, and you only have one URL to use, so you have to give the same URL to all the friends with whom you wish to share. And, when you want to revoke access, your only option is to generate new URLs, which means you'll need to give the new URL to your other friends.
If you want your friends to be able to open a non-editable calendar in Google Calendar, they'll need to have a Google Account. It's really not rocket surgery to sign up for Google; you just need an email address and to create a password. Certainly it's easier than finding a calendar app to import an iCal URL.
The only other reasonable option I can see is to embed a Google Calendar into a web page (using one of those aforementioned private URLs) and giving that URL to your friends. But, then, you still have that problem of revoking access to one person and, if anyone else has the URL to your special calendar page they can see your calendar too. And, of course, this will require some coding on your part. I'm sure that topic has been covered here and/or on Stack Overflow, as well as elsewhere on the web.
Honestly, though, just have them sign up for a Google Account. It'll be useful for more than just seeing your calendar(s).