datebook
v8.0.1
Published
Generates URLs and ICS file content for adding events to popular calendar apps.
Downloads
75,380
Maintainers
Readme
Documentation
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: '[email protected]',
icsOptions: {
rsvp: true
}
},
{
name: 'Jane Doe',
email: '[email protected]'
}
],
// 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