One Calendar to Rule Them All

In the feedback provided to Library IT, we heard from clients you would like to know about technology-related initiatives other units are working on. In response to this feedback we are starting a new column in our monthly newsletter — shining the spotlight on the work of our partners and colleagues.  The inaugural article is by Joshua Dull, Digital Scholarship Support Specialist, with his solution for aggregating many calendars into one. If you would like to learn more about contributing an article to the Library IT monthly newsletter, please contact Lise Gazzillo at lise.gazzillo@yale.eduemail address

Where do you look for information on workshops happening at Yale? Maybe the main campus calendar? But that doesn’t hold library events. Perhaps the Yale University Library (YUL) Instructional calendar? But that doesn’t include events from the Cushing/Whitney Medical Library. In reality, there are many calendar systems in use at Yale and none of them capture a complete picture of workshops and instruction happening on campus. One goal of Digital Scholarship Services was to create an aggregated calendar of workshops on campus relating to Digital Scholarship topics including programming, data visualization, GIS, research computing, and many other areas. Naturally, this includes events inside and outside of the library and pulling from multiple campus calendar systems.

At Yale University, there are several calendar systems in use but none of these systems could serve as an aggregated calendar since they did not allow for the automated creation of events via an application programming interface (API) or other methods. After researching free calendar systems, Digital Scholarship Services chose fullcalendar.js, a javascript calendar that is flexible, easy to deploy, and able to pull in events from multiple sources. Another benefit, fullcalendar could run on a Drupal page and therefore integrate with Yale Sites.

The Cushing/Whitney Medical Library had previously deployed fullcalendar on their website and served as a model for this initial deployment. Version 1.0 of the aggregated calendar lives on the Research Data Consultation Group (RDCG) Drupal site ( and pulls together events from YUL including the Cushing/Whitney Medical Library, the Center for Teaching and Learning, and Yale Center for Research Computing. This required some pre-processing of the calendar data behind the scenes via python scripts running on a separate server. While not an elegant solution, this allowed us to get the calendar online quickly and work within the limitations of an existing Drupal site.

Screenshot of the aggregated calendar will work
Preview of the aggregated calendar

While a useful temporary home, Drupal would not allow for more advanced calendar features like filters. Version 2.0 of the aggregated calendar will, therefore, live on the Library’s upcoming Digital Services site, which should be live in the coming weeks (preview the calendar here: The new version includes workshops from additional sources the Center for Collaborative Arts and Media and the Center for Engineering Innovation and Design and an option to filter workshops by topic. To facilitate filtering, all the calendar data is processed via a small python application that merges the individual calendar feeds into a single JavaScript Object Notation (JSON) file and adds appropriate categories that allow for filtering. This aggregated JSON file is consumed by fullcalendar on the Digital Services site, but could also be consumed by other tools to display the same events on another campus site if desired. Future development will include adding more workshop sources, modified styling, and improvements to usability.

For more information, you can contact Joshua Dull, Digital Scholarship Support Specialist at email address

Print Friendly, PDF & Email