this is pretty straightforward with the content APIs. I don't have a completed example you could borrow but I did something similar to build an rss feed of a custom module...
basically you just need to use the api to get a collection of events/news/etc then iterate through each one and build the html.
an example of the api is here: http://www.sitefinity.com/help/developer-manual/news-api-walkthrough.html
which covers the news. here's a relevant snippet:
|// create new instance of NewsManager |
|Telerik.News.NewsManager newsManager = new Telerik.News.NewsManager("News"); |
|// get all news content items |
|IList listOfNewsItems = newsManager.Content.GetContent(); |
|if (listOfNewsItems.Count > 0) |
| foreach(Telerik.Cms.Engine.IContent newsItem in listOfNewsItems) |
| Response.Write(newsItem.GetMetaData("Title") + "<br />"); |
your code would go in place of that last line to build the html using the various MetaData items for the News item.
here's the link for events: http://www.sitefinity.com/help/developer-manual/events-api-finding-events.html
you can wrap these into a GetNewsletter method that returns the built html.
hope that this was helpful!