Add events from OSMCal to post-save screen
The community index’s events functionality has gone basically unused, apart from listing the annual State of the Map conference, yet the dropdown that it produces in iD’s post-save screen could be very useful for cutting through the noise and showing iD users that there really is a vibrant local community to join. iD should automatically pull in events from OSMCal and associate each event with its organizing community.
In osmlab/osm-community-index#90, we decided against integrating the community index with the OSM Wiki’s event calendar, because parsing the events calendar was difficult and it was unclear how to associate events with communities. Fortunately, OSMCal has a proper API method for getting upcoming events. It’d also be possible for iD to filter the events by country, taking advantage of the geocoding that iD already does during the editing session. thomersch/openstreetmap-calendar#60 would make it straightforward to associate events with communities in the index.
(I’m opening this issue in the iD repository under the assumption that a dynamic events list would be a poor fit for a static resource like the community index, but if we’re willing to set up something more dynamic for the index, then we can track it in the osm-community-index repository instead.)
As a regular organizer of mapping parties, this would be terrific for reaching out to nearby mappers (who may not be on community channels), as opposed to sending DMs to all nearby mappers listed on Overview of OpenStreetMap Contributors.
I think it would be worth checking with @thomersch first if the osmcal API can handle an additional 18,000 API requests per day^1 everytime someone uploads a changeset with iD
The full file of upcoming events is only 6Â kilobytes at the moment (and more aggressive minification could slim it down further). Maybe a daily cron job could cache the results (for Anywhere) and serve it up statically? Maybe the OWG could serve it up or something. Then iD could use a simple distance algorithm or country-coder to filter it on the client side.