Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zachhardesty7/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.
https://github.com/zachhardesty7/missive-gcal-export-integration

Last synced: about 9 hours ago
JSON representation

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

Awesome Lists containing this project

README

        

[![Netlify Status](https://api.netlify.com/api/v1/badges/4e6ade71-be75-47ea-931e-71617ef1c9e0/deploy-status)](https://app.netlify.com/sites/gcal/deploys)

# Missive GCal Export Integration

Adds an integration to the [Missive mail app](https://missiveapp.com/) 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](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/zachhardesty7/missive-gcal-export-integration)
- Use the instance that's deployed on [my netlify account](https://gcal.netlify.com/)
- Run the integration from source on a local server
- change the text following the `tunnel` command
[on line 21 of `package.json`](package.json#L21)
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](https://i.imgur.com/KTrw9or.png) | ![sidebar-dark](https://i.imgur.com/aETnd8F.png) |

## 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](https://github.com/vicjicaman/tunnel-tool) and [DIY ngrok](https://igauravsehrawat.com/build-your-own-ngrok-4-easy-steps/)

## Acknowledgements

[chrono](https://github.com/wanasit/chrono) - natural language processing with a focus on dates and
times

[ESLint](https://github.com/eslint/eslint) - enforce my favorite styles

[ftp-deploy](https://github.com/simonh1000/ftp-deploy) - helpful for deploying integration to your
server and simpler than other tools

[live-server](https://github.com/tapio/live-server) - ultra simple quick local server with
hot-reloading for testing

[localtunnel](https://github.com/localtunnel/localtunnel) - allow Missive to access your local
server

[npm-run-all](https://github.com/mysticatea/npm-run-all) - run the server and the tunnel in parallel
in 1 terminal

[missive-style-guide](https://integrations.missiveapp.com/styleguide/) - css classes
used to make this integration look first-party

[missive-javascript-api](https://missiveapp.com/help/api-documentation/iframe-integrations-api) -
all of the functions come from here to hook into Missive

*Copyright (c) 2020 || Zach Hardesty || [zachhardesty.com](https://zachhardesty.com)*