The client side object model could do this in combo with a SPQuery. Microsoft has extended SharePoint 2010 to include lots of JavaScript connectors. They have also opened the ablility to include the JavaScript Libraries in External Applications. The thread which would be returned from SharePoint would be in JSON format. Here is a blog post overview this ability.
This gives a general overview.
http://www.codeproject.com/Articles/60348/SharePoint-2010-Client-Object-Model-for-JavaScript.aspx
The DLL's behind this from MS allow access to almost any object inside SharePoint. Microsoft has opened the ability to place these in external applications, they are
Microsoft.SharePoint.Client.DLL and Microsoft.SharePoint.CLient.Runtime.dll you can find these on your SharePoint Server at c:\Programs files\common files\Microsoft Shared\WEb Server Extensions\14\isapi folder.
HEre is a good msdn post on distrubution and deployment.
http://msdn.microsoft.com/en-us/library/ee539757.aspx
If you have done dev work on SharePoint you have used SPListItem which allows that access of list (calendars are lists). In the client side object model you ListItem from with JavaScript.
Working with the list data.
As I noted before, the ListItem is the same this as SPListItem. You reference an existing ListItem as a member of a ListItemCollection object.
MSDN blog post on ListItemCollection class.
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.listitemcollection.aspx
They have some code examples on this blog post.
Good luck,
Gary
The solution is JavaScript not development. If you have anonymous access to your sites, which normally costs allot more money there are other ways.
Good luck,
Gary
Has this method of embedding a Sharepoint Calender into a external site changed for Sharepoint 2013?
I'd like to avoid any hurtles before attempting this endeavor.