Inspiration

At the start of every term we have to copy all our classes into outlook, and I don't wanna do that anymore. Having to navigate to workday, do the super-incontinent MFA, then go to outlook, maybe go though the MFA process again, and then switch back and forth between the two tabs to get the info and create 6 or so repeating events in outlook is the WORST. This web app is meant to make that experience a little better. I mean, you do still technically still have to log into workday and then export your schedule which is a bit of a hassle (see "what's next" section for more info on that), but it completely bypasses the need to go back and forth between tabs and create a billion repeating events, which I think is an improvement.

What it does

Converts exported .xlsx file from workday into a .ics file that's compatible with most major calendar systems. Essentially allows you to export the data from workday and then import it into outlook or whatever you use (with a few steps in between).

How we built it

With react and whatnot! It's pretty much just a regular ol' single-page application.

Challenges we ran into

Parsing .xlsx files in browser is kinda a pain, especially when it's formatted like workday formats its .xlsx files. For a long time we couldn't get it to parse the data from the excel file into a JS object, and even after getting it to work it was a huge hassle getting it to output the right data.

Second, all the browser-compatible ICS libraries are kinda terrible (or at least the ones I was able to find). Either they were so abstracted and incomplete that they didn't support things like repeating events or allow you to add custom event properties, or they were so low-level you had to read the entire spec for ics files to figure out how to create events and stuff. A lot of them also didn't have great documentation! (Making a better version might be a good future hackathon project.)

Accomplishments that we're proud of

It all runs in-browser! No server or nothing!

What we learned

I now know too much about the rfc5545 (ics) specification.After this project was finished I'm sure it will never come up again and that info is now useless to me. I also learned to never drink monster after 7pm, because it makes it impossible to sleep.

What's next for Calanday

The site's kinda ugly, so first and foremost it needs a visual overhaul. After that, I'd love to coordinate with WPI's IT department to see if there's some way I can have people log in with their WPI account and just get the data from that instead of needing users to import the .xlsx file. Then you'd only need to sign into one thing and you'll have a file you can import into your calendar. It would also be neat if this could have a WPI subdomain instead of it using one from my personal domain, since this is mainly meant to be a WPI tool.

Built With

  • immutable-ics
  • materialui
  • react
  • uuidv4
  • xlsx(thejslib)
Share this project:

Updates