Utility app to upload course slide decks to OneNote and Google Drive
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


OneNote on Windows 10 is a killer app, especially with touchscreen support. Since I've been using this to take my lecture notes at University, when I switched back to Linux I had to use the not-feature-complete online version. The feature I missed the most was the ability to include print-outs of a PDF file. Since the API seems to cover this feature anyway, and Microsoft released a good demo app, I decided to scratch my own itch, so I did some adjustments and added Google Drive upload support.

The current application allows you to login via OAuth2 to your Google and Live accounts and then choose a PDF file and select from the destination sections in your OneNote main notebook. It also uploads the PDF file to a Google Drive folder with the same name as the selected OneNote section. The app looks for the Drive folder inside a folder names Slidedecks (it doesn't matter if it's in the root of your Drive or not, it will use the search function). This folder name is configurable in config.js under drive.parentFolder.


You need to setup your hosts file and add a host name that will resolve to the IP address where you're running the app (or just upload the app on a server and use the server's host address), as Live and Google's OAuth2 server will need to redirect to that URL to send back the authentication token. On a Windows machine your hosts file is located at C:\Windows\System32\drivers\etc\hosts, on a Mac at /private/etc/hosts and on a Linux machine at /etc/hosts.


  1. Get the app.
  2. You'll need to get your Live OAuth2 app credentials and Google OAuth2 app credentials and set the appropriate fields in config.js. When setting the redirect URI, set it to the domain name of your web site or the host name you have set up in your hosts file. The path for Google authentication is /drive-callback and for Live authentication is /live-callback.
  3. npm install.
  4. npm start.
  5. The app will now run on port 3000 on your desired host.
  6. Enjoy.


Adapted by Zisu Andrei (2016) based on a sample project from Microsoft Corporation (2014). Provided As-is without warranty. Trademarks mentioned here are the property of their owners.