Last.fm provides an upcoming events listing service which proves really useful when you need to fill an empty Saturday's night. They kindly filter out the events based on the location you choose and even a distance parameter when using the advanced search dialog.
Strangely enough they don't provide an RSS or iCal interface to that service. You can only iCal subscribe to a specific artist's calendar and not to a city's or country's calendar. I'm using evolution for my calendar needs so I spent a couple of days hacking an iCal calendar generation script for the Last.fm events.
The script, coded as always in python, accesses the event list of an area through audioscrobbler's public API, parses the input using XMLObject package and finally creates the iCalendar file using the iCalendar package.
The calendar is accessible through
webcal://www.sealabs.net/music-events/?area=Rotterdam
Of course you can replace 'Rotterdam' with the area, city or country, you are interested in.
You can also set the maximum distance from the area you specified (defauls to 50km) and the maximum number of events to be returned (defaults to 300) using the 'distance' and 'events' parameters accordingly.
Examples:
webcal://www.sealabs.net/music-events/?area=Rotterdam&distance=300
returns 300 events in Rotterdam in a maximum distance of 300km.
webcal://www.sealabs.net/music-events/?area=Rotterdam&events=500
returns 500 events in Rotterdam
webcal://www.sealabs.net/music-events/?area=Rotterdam&events=500&distance=300
return 500 events in Rotterdam in a maximum distance of 500km.
You can use the webcal address with your favorite calendar application, such as evolution and sunbird or with Google Calendar
Note: First use Last.fm's web interface to check if the area / city you are looking for is available. Last.fm seems not to be using official latin city names so some cities exist under 'strange' names. For example Thessaloniki is Thessaloníki on Last.fm therefore the ical address is
webcal://www.sealabs.net/music-events/?area=Thessaloníki
Note²: Actually this functionally is available from last.fm (RTFM!) but it doesn't work with Google Calendar (but maybe it's google's problem) and anyway mine has more features