I recently had a client who wanted a shared corporate calendar (displayed on a corporate dashboard site done in Google Sites) to update whenever anyone added something to it.
Unfortunately, there's no way to push data from Google Calendar to external services, so I decided to poke around and find out how other people have resolved this. I learned that apparently most folks are ok with having the calendar refresh with a page refresh. This wouldn't do for my client.
To use the attached file as a Google Gadget , you need to save it as an .xml file stored on a publically accessible server somewhere. Then, in Google Sites while editing a page, go to Insert:More gadgets:Insert from URL, then put in the url of the xml page).