Socket
Socket
Sign inDemoInstall

datebook

Package Overview
Dependencies
0
Maintainers
1
Versions
67
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    datebook

Generates URLs and ICS file content for adding events to popular calendar apps.


Version published
Weekly downloads
26K
increased by23.75%
Maintainers
1
Install size
262 kB
Created
Weekly downloads
 

Changelog

Source

8.0.1 (2023-06-06)

Bug Fixes

  • updates types-directory in package.json #215 (df969e9)

Features

  • ics: removes download() method (41ae072)

BREAKING CHANGES

  • ics: the download() method is now removed from ICalendar.

Readme

Source

Datebook

A library for adding events to popular calendar apps.

It provides full support for rendering .ics file content for iCalendar and Office Outlook, and also supports URL generation for Google Calendar, Yahoo! Calendar, and Outlook Web.


Code coverage Build status npm version npm package size


Documentation

Read the docs →

Demo

Try the online calendar generator →

Quick Start

Installation

yarn add datebook

Examples

import { ICalendar } from 'datebook'

const config: CalendarOptions = {
  title: 'Happy Hour',
  location: 'The Bar, New York, NY',
  description: 'Let\'s blow off some steam with a tall cold one!',
  start: new Date('2022-07-08T19:00:00'),
  end: new Date('2022-07-08T23:30:00'),
  attendees: [
    {
      name: 'John Doe',
      email: 'john@doe.com',
      icsOptions: {
        rsvp: true
      }
    },
    {
      name: 'Jane Doe',
      email: 'jane@doe.com'
    }
  ],
  // an event that recurs every two weeks:
  recurrence: {
    frequency: 'WEEKLY',
    interval: 2
  }
}

const icalendar = new ICalendar(config)
iCalendar
With a reminder
icalendar
  .addAlarm({
    action: 'DISPLAY',
    description: 'Remember this event'
    trigger: {
      minutes: 10
    }
  })

This will add a reminder alarm that shows 10 minutes before the event.

With multiple events
const secondEvent = new ICalendar({
  title: 'Monthly Meeting with Boss Man',
  location: 'Conference Room 2A, Big Company, Brooklyn, NY',
  description: 'Meeting to discuss weekly things',
  start: new Date('2022-07-08T19:00:00'),
  recurrence: {
    frequency: 'MONTHLY'
  }
})

icalendar.addEvent(secondEvent)

This will add a second event to the same .ics file.

Adding other ICS properties
icalendar.addProperty('CATEGORIES', 'MEETINGS,MANAGEMENT')

This will add the CATEGORIES ICS property to the iCalendar instance.

Rendering ICS file content
const content = icalendar.render()

This will render ICS file content which can be downloaded onto the user's device for use in local calendar apps.

Google Calendar
const googleCalendar = new GoogleCalendar(config)

googleCalendar.render()

googleCalendar.render() will return a URL that the user can navigate to and pre-fill event details:

https://calendar.google.com/calendar/render?action=TEMPLATE&text=Happy%20Hour&details=Let's%20blow%20off%20some%20steam%20with%20a%20tall%20cold%20one!&location=The%20Bar%2C%20New%20York%2C%20NY&dates=20220708T190000%2F20220708T230000&recur=RRULE%3AFREQ%3DWEEKLY%3BINTERVAL%3D1

Keywords

FAQs

Last updated on 06 Jun 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc