Skip to content

Cornell University

Cornell Drupal Camp

Let's Make Calendars Great Again, Together

2:30pm - 3:30pm
Session Track: 

Nothing builds a sense of community faster than events. But traditionally, keeping a central events repository and calendar for a complex, multifaceted organization, and displaying that in multiple, targeted locations has been tricky. We couldn't find anything "out of the box" that gave us all we needed in a complex calendar, so we built our own. Enter UniCal, the decoupled free & open source events system.

UniCal is a Drupal-powered destination that allows anyone to submit events to a central calendar. Then you can create custom sub calendars and publish a subset of events on as many different websites as you like. From one to eleventy-finity websites, it’s that powerful.

In technical terms, UniCal is a decoupled/semi-decoupled Drupal-based application that provides a slick Angular.js based interface to interact with a Drupal Event Content Type. The best part is that you can spin up multiple calendars, pre-filtered by different taxonomies and the like, and embed them anywhere on the web with a simple JS snippet. This is especially helpful for any organization with multiple departments, or schools that have their own web presences.

In this session, the idfive team will review the basics of UniCal, how it could be useful to your organization, and current use cases.

We will review:

- The basic features of UniCal, and if it might a good fit for your organization;
- Examples of UniCal in the wild;
- A spin through the backend;
- An overview of submodules and dependencies;
- A quick chat on JS MVC specific concerns;
- Setting up iCal imports, and similar through feeds;
- Custom style examples; 
- The process to extend the UniCal API; and
- How you and your team can contribute to the project.

We are also extremely open to answering general questions on decoupled/semi-decoupled applications in this vein, IE organization/enterprise level decoupled drupal applications pros/cons/pitfalls, and what you should be thinking about when crafting your own API. Ask questions, and learn from our mistakes!