Nifty Pony Merchandise

    datebook
    TypeScript icon, indicating that this package has built-in type declarations

    7.0.8 • Public • Published

    Datebook

    A library for adding events to popular calendar apps.

    It provides full support for .ics files for iCalendar and Office Outlook, and also supports 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 generators →

    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({
        description: 'Remember this event'
        trigger: {
          minutes: 10
        }
      })

    This will add a reminder 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.

    Downloading
    icalendar.download()

    This will download Happy Hour.ics onto the user's device. On most mobile devices, this will open the default calendar app with the event.

    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
    

    Browser Support

    The latest versions of all major browsers are supported.

    Chrome logo Firefox logo Internet Explorer logo Edge Browser Logo Opera logo Safari logo
    Yes 20+ 11+ Yes 15+ 10.1+

    Install

    npm i datebook

    Homepage

    datebook.dev

    DownloadsWeekly Downloads

    32,970

    Version

    7.0.8

    License

    MIT

    Unpacked Size

    326 kB

    Total Files

    118

    Last publish

    Collaborators

    • jshor