calendar-link

📅 Calendar link generator for popular services, like Google, Outlook, and Yahoo.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
calendar-link
33042.6.07 months ago5 years agoMinified + gzip package size for calendar-link in KB

Readme

📅 Calendar Link
| | Status | | - | - | | Build | Node CI Dependencies GitHub release (latest by date) Snyk Vulnerabilities for GitHub Repo | | Health | License Coverage Pull Request Labeler | | Community | NPM type definitions NPM All contributors |
JavaScript library to generate an event link for Google Calendar, Yahoo! Calendar, Microsoft Outlook, etc.
NPM

Usage

// Usage with Node.js
const { google, outlook, office365, yahoo, ics } = require("calendar-link");

// Usage with TypeScript or ES6
import { google, outlook, office365, yahoo, ics } from "calendar-link";

// Set event as an object
const event = {
  title: "My birthday party",
  description: "Be there!",
  start: "2019-12-29 18:00:00 +0100",
  duration: [3, "hour"],
};

// Then fetch the link
google(event); // https://calendar.google.com/calendar/render...
outlook(event); // https://outlook.live.com/owa/...
office365(event); // https://outlook.office.com/owa/...
yahoo(event); // https://calendar.yahoo.com/?v=60&title=...
ics(event); // standard ICS file based on https://icalendar.org

Options

| Property | Description | Allowed values | | ------------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | title (required) | Event title | String | | start (required) | Start time | JS Date / ISO 8601 string / Unix Timestamp | | end | End time | JS Date / ISO 8601 string / Unix Timestamp | | duration | Event duration | Array with value (Number) and unit (String) | | allDay | All day event | Boolean | | rRule | Recurring event | iCal recurrence rule string
NOTE: Only supported by google and ics | | description | Information about the event | String | | location | Event location in words | String | | busy | Mark on calendar as busy? | Boolean | | guests | Emails of other guests | Array of emails (String) | | url | Calendar document URL | String |

Notes

  • Any one of the fields end, duration, or allDay is required.
  • The allowed units in duration are listed here: https://day.js.org/docs/en/durations/creating#list-of-all-available-units.
  • The url field defaults to document.URL if a global document object exists. For server-side rendering, you should supply the url manually.
Not all calendars support the guests and url fields.
  • If you don't pass the start and end time in UTC, Google will convert it to UTC but Outlook won't, so it's a good idea to use UTC when passing dates and times
  • There are some known issues in Office 365 because of which we can't generate a consistent link in all devices (#542)

License

MIT © Anand Chowdhary