Giter VIP home page Giter VIP logo

add-to-calendar's Introduction

Add to Calendar

Travis (.org) Uptime Robot ratio (7 days) GitHub Made in Enschede

This is a backend-less service that generates an event invitation link over-the-air, allowing your guests to add it to their calendars. Try it now โ†’

Invitation screenshot

Users can click on their preferred calendar client and directly add it to their calendars. Supported services are Google Calendar, Microsoft Outlook, and Yahoo! Calendar (Apple Calendar and download .ics are done through the iCal format).

There is also an interface to create calendar links, or you can do them through the API. All links are public and open and use the URL for data.

API

You can generate links on-the-fly using the following URL structure. URI encode your parameters; duration is in minutes.

https://addtocalendar.ga/EVENT_TITLE/UNIX_TIMESTAMP/DURATION/LOCATION

For example:

https://addtocalendar.ga/Coffee%20with%20Anand/1537198500/30/DesignLab

Security

Since this approach uses just plain URLs for communication, you can add a JWT-inspired MD5 hash as the last parameter which is the hash of the concatenation of all the other parameters. We compare this hash with the data to verify the integrity of the calendar contents, so if a user changes the URL, the invitation will not work.

https://addtocalendar.ga/Coffee%20with%20Anand/1537198500/30/DesignLab/f1fe1c244f29e7bb4faf382362636577

Where the hash is generated like this:

import md5 from "md5";
const hash = md5("Coffee with Anand" + "1537198500" + "30" + "DesignLab");
return hash === "f1fe1c244f29e7bb4faf382362636577" // true

Development

You can run this service from any static host, since it doesn't require a backend. If you want to use GitHub pages, you should disable the HTML5-mode in src/router.js and add /#/ in your URL before the parameters.

This service is currently hosted for free by Surge.sh, with a free domain from Freenom.

Project setup

Clone the repository and install dependencies:

yarn

Development

This starts a local server with hot module reloading:

yarn run serve

Production build

Create a ./dist folder with production assets (code splitting and minification preconfigured):

yarn run build

Linting

Lint your files using ESLint + Prettier:

yarn run lint

Tests

Run unit test (end-to-end test coming soon):

yarn run test

add-to-calendar's People

Contributors

anandchowdhary avatar imgbotapp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.