A solution to the WebOodi calendar problem (it doesn't have the option to export all your courses into an .ics file) thrown together in a few days. Works as a Google Chrome extension, but you can probably rip some of the scripts out and try to run them without the extension.
Basic functionality is that the extension once initiated, by pressing one button, will scan through your courses on Oodi and pick out the relevant information from the courses you are enrolled in. After this, the extension will do some conversion work with ics.js and generate a calendar.ics file that includes all the courses and exercises picked out before.
You can import this ics (ICAL) file into most modern calendar programs such as iCalendar, Google Calendar, etc.
The extension takes into account recurring events and single events in WebOodi and it seems to be fairly accurate from the tests I've ran.
Sadly this extension is quite invasive in that it takes over control from you while it scans through the courses. However, this is necessary for the extension to gather all the events from your current courses. The source code is available on github for you to check that everything is in order.
Extore is a team of professionals who are passionate about creating extensions for web browsers. This devotion also gives us opportunity to appreciate work of other people. We get inspired by useful, open source extensions made by developers all over the world. Our strong belief is that one should share helpful add-ons with others. That’s why we’d like to present you our ever-growing list of favourite extensions that have inspired us. Moreover, as you probably have already learned, sometimes struggling for the best brings an end to the good. Talking about add-ons it often turns out that an upgrade is worse then previous version. Also it can become really tricky to get back to the beloved version of your favourite extension. That’s why we’re going to make not only the latest, but all versions of our favourite (and we hope yours too) add-ons available for download. No more compromises, just stick to the version you really like!