Microgrants/Microgrants 2020/Proposal/OpenStreetMap Calendar/Report

From OpenStreetMap Wiki
Jump to navigation Jump to search

Final Report

type = final

status = submitted

My (time) budget for the microgrant has run dry, so it‘s time to look back and see what has been done.

The three pillars of the OSMCAL work were:

  1. Timezone Support
  2. Website Integrations
  3. Wiki

Timezone Support

Timezone support has landed before the interim report: It is on for quite a while and people are already using it actively. For location-based event (of which there are currently very few), timezone is determined automatically. For all online events, users can and do specify timezones manually.

There have been a few issues with timezone databases, e.g. US/Mountain is a widely used timezone specifier, but is not part of the IANA database. This lead to an unnecessary partial outage of osmcal, when a user specified this timezone and was able to save it, but the software wasn‘t able to handle it for displaying back the events. This issue has been fixed, so it won‘t happen again… hopefully.

Some follow-up improvements of the time zone support are on its way: Better display of timezones and automatic time conversion will be deployed soon.

Website Integrations

Hardcore OSM users know that the calendar is in the wiki, but for people that just joined or are interested to get an intro to OSM through a new event, this is not the logical entry point. Therefore we wanted to spread osmcal across the web. OpenStreetMap Belgium was first, and they already display the next upcoming event on the very top of the website and have a list of all upcoming events in their „news“ section. The still basic localization support of osmcal is practical, because OSMBE is an - at least - tri-lingual community.

The OpenStreetMap website for Germany, openstreetmap.de, recently joined the club and also displays all the upcoming events in Germany directly on the home page.

The integration of osmcal into websites is very easy and can be done in just ten lines of HTML & JavaScript. I believe that many more community websites can integrate it and therefore easily promote events and take them to new audiences.


As mentioned in „Website Integrations“, the wiki is the current entry point for the more seasoned OSM people. To smooth out the transition to osmcal without putting the burden on event creators, a wiki extension has been created that can display upcoming osmcal events directly inside the OSM wiki. Thanks to the great support of our sysadmins I was able to deploy the extension a few weeks ago.

The extension not only will replace the main calendar on the main page, but can also act as a hub for local communities. The US, German and French communities already have info boxes with upcoming events on their wiki pages and I hope to see even more of those.

Since there are currently very few events for next year and osmcal now has more upcoming events than the wiki, the switchover is being planned to be done before the end of the year. This way the maintainers of the current wiki calendar don‘t have to go through the troubles for 2021 anymore. A diary post with the plan has been published as well.


I want to express my gratitude for being able to dedicate a lot of time to develop osmcal further. Even though the project is just over a year old, the microgrant committee trusted me and granted me with this opportunity.

The community has been very supportive, with a significantly less-than-average number of naysayers. Thank you to every one who was enthusiastic, who created events and who gave feedback.

I hope that osmcal will stay on track and people will continue to like it and use it. See you around.

– Thomas

Half Time Report

OSMCAL Icon.png

type = interim

status = submitted

Since I almost used half of my time budget of the OSMCAL microgrant, it’s time to reflect on the journey so far.

The first big feature I wanted to land in OSMCAL is time zone support, since nowadays there are many online events happening and those need time zone info more than ever. Automatic detection has landed for events that have a location and everybody else can specify it manually:

OSMCAL TZ Interface.gif

Next up: Calendar Integrations. Thanks to the great work by Jonathan Beliën, a solid foundation has already been laid: He has built a nifty JavaScript library based on the public API that allows to integrate OSMCAL events easily into any website.

That gave me a major head start, because I could go ahead and improve the API, which resulted in the world’s smallest pull request: https://github.com/jbelien/openstreetmap-calendar-widget/pull/41

Since the widget already works very well, I can move on and help others integrate it into websites, which I’ll tackle in the second half of the microgrant.

OSMCAL Javascript Widget.png

The third part of my work is the integration into the wiki. People mostly look at the start page of the wiki to find out about events, but as long as there is no automatic connection between OSMCAL and the wiki, it puts an additional burden on organizers: They’d need to put their event in two places.

My first idea was to have a bot adding new events from OSMCAL to the event template of the wiki, but since I want to put an end to wiki markup parsing, I decided to have a look on MediaWiki’s extension system. This turned out more reasonable than I expected.

Less than 100 lines of PHP had to be written for the first version:

OSMCAL Wiki Demo.png

The extension allows wiki users to integrate calendar views into any page without special permissions. The upcoming events can even be limited to specific countries.

A pull request for the change of the configuration of the OSM Wiki has been already posted and is currently under review.

Summary and Outlook

So far, I am very happy about the progress, which means that I can spend the rest of the budget on refinement: There are a few UI improvements in the time zone interface. Widgets can be integrated into community sites and the wiki integration needs to be merged upstream and go through a few iterations of improvement.