/missive-gcal-export-integration

Adds an integration to the Missive mail app that parses emails for dates and displays them to be exported to Google Calendar if desired.

Primary LanguageJavaScript

Netlify Status

Missive GCal Export Integration

Adds an integration to the Missive mail app that parses emails for dates/times and displays them to export to Google Calendar if desired. Clicking the export button will automatically open Google Calendar's "New Event" page and allow you to customize fields' content.

Deploying

Three files (index.html, main.js, theme.css) need to be deployed to a server that the Missive app can reach. Any one of the following options will work:

  • Instantly clone/fork this repo to your Github and deploy it to Netlify
    Deploy to Netlify
  • Use the instance that's deployed on my netlify account
  • Run the integration from source on a local server
    • change the text following the tunnel command on line 21 of package.json from --subdomain missive-gcal to --subdomain [ANY TEXT]
    • execute yarn start (NOTE: The local server sometimes fails to start due to a bug with localtunnel, restarting seems to fix it)

Activating the Integration

  • open the Missive desktop app
  • click on your profile at the bottom left
  • click Integrations in the flyover menu
  • click Add integration at the bottom of the modal
  • select the Custom option with a gear at the bottom of the list
  • fill in the Name & iFrame URL fields with...
    • Name: Google Calendar Export
    • iFrame URL: https://[YOUR TEXT].localtunnel.me or https://gcal.netlify.com or url of your server or Netlify URL that's hosting the previously mentioned 3 files
  • Close modal

Preview

light dark
sidebar-light sidebar-dark

Known Issues

  • rudimentary timezone indicator fix requires manually removing and causes issues when not located in the timezone from the email (i.e. does not localize)
  • most Eastern timezones result in datetime detection failure
  • fails detection if "the 10th" isn't preceded by a day this week (needs custom chrono.js parser feature)
  • temp replacement since localhost.me ent down, investigate tunnel-tool and DIY ngrok

Acknowledgements

chrono - natural language processing with a focus on dates and times

ESLint - enforce my favorite styles

ftp-deploy - helpful for deploying integration to your server and simpler than other tools

live-server - ultra simple quick local server with hot-reloading for testing

localtunnel - allow Missive to access your local server

npm-run-all - run the server and the tunnel in parallel in 1 terminal

missive-style-guide - css classes used to make this integration look first-party

missive-javascript-api - all of the functions come from here to hook into Missive

Copyright (c) 2020 || Zach Hardesty || zachhardesty.com