Google has an Event Publisher's Guide for just this purpose:
Let people save an individual event from your site
You can add a Google Calendar event reminder button to your site by inserting a special snippet of HTML into your page. Users who click on your button can quickly save your event on their Google Calendars, which will help remind them about your event and about your website. By adding a Google Calendar event reminder button to your site, you acknowledge that you understand and agree to the Program Policies.
There is similar functionality for linking to a Microsoft Calendars:
Creating a single-event link
To create a single-event link, create a URL in this format.
http://calendar.live.com/calendar/calendar.aspx?rru=addevent&dtstart=START_DATE_AND_TIME&dtend=END_DATE_AND_TIME&summary=EVENT_TITLE&location=LOCATION_TEXT`