Here's a simple solution (relatively speaking):
Log into iCloud and get the public share address for your calendar. Something like this... webcal://p03-calendarws.icloud.com/ca/subscribe/1/246COWhNqrt3AaAhx237JSnsjsnSJ nsjdfkjsbdfmXad8Y_pUx-WcSdrUxhHzdfbzcvbxfvbzdfbzcvbczvbgrVVYfcEaUODr048_uVBPMumF BNoDAqSE0
Plug that URL into THIS site: https://icaltogcal.com because Apple won't let Google read the iCloud feed directly, you need a proxy.
Take the resulting output which will look something like this: webcal://icaltogcal.com/share.php?c=27da9e203cd8a0a67bSDFDfJFhHFHFdhshdf53c01ff ad8fa09.04380390
Log into Google calendar and on the left side under "Other Calendars" select "Add by URL" and paste in that second webcal address. Select "Make public" and click "Add Calendar"
There you go. You are now subscribed to a read-only copy of your iCloud on Google. You can now share or embed this in a webpage like any other Google Calendar. The only caveat is when you make changes to your calendar events in iCloud it can sometimes take a few hours for the Google Calendar to refresh the feed from iCloud… but there is a solution for this as well which I have NOT YET TRIED. https://scheduleshare.net claims to be able to force Google to refresh the feed every single time it's called… for a fee.
Apple should allow read-only embedding of iCloud calendars. The fact that we have to go through all this is just stupid.