I also need an events calendar for a website I'm building. Mine won't need to do everything you've listed, but the way Orchard works it's really easy to take one module and then add your own customisations on top of it, in your own separate module.
There are already some bits and pieces around that could provide a foundation;
- There was a post by smeyers where he was discussing a calendar module he was writing. He implemented a RoutableByDatePart so you can have /YYYY/MM style URLs, and posted the code for that. I haven't heard anything else since about his calendar module,
but it's possible that he's already got a lot of that functionality implemented. The discussion is here:
- Failing that - if it's not being finished or doesn't do everything that's needed - the plan was to build my own calendar. It's pretty easy to achieve by leveraging another project I've been working on; it's called Mechanics and it's a system of many-to-many
content connectors. So you could easily hook up a variety of connectors for events, venues, attendees, however you wanted to wire everything up. The only thing that needs any serious implementation is the calendar view.
- Orchard has a very flexible feeds system which can be plugged into any type of content, and can easily have new feed formats plugged in if they're not already there. RSS is a default but Atom might need implementing. So anyway once the calendar is implemented
it'll be easy to leverage that core functionality to get feeds.
- Timezone support could be tricky. The Localization module allows customising content for different languages but I don't think it goes anywhere near timezones. However I've already done my own implementation of the GeoIPCountryWhois database for looking
up the user's country based on their IP address, and combined with a timezones database that could be pretty neat for inferring the user's timezone automatically.
- Eventbrite.com - I guess that'd be up to you, but you can easily hook into events when any type of content is created or altered, and perform your integration at those points.
Hope that gives you some pointers; if I started building this myself it would be as part of the Science Project on Codeplex which is a whole set of modules (including Mechanics that I mentioned) - and obviously any collaboration would be great!