All Projects → jshor → datebook

jshor / datebook

Licence: MIT license
📅 Generates URLs and downloadable ICS files for adding events to popular calendar apps.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to datebook

calendar-link
📅 Calendar link generator for popular services
Stars: ✭ 193 (-29.3%)
Mutual labels:  calendar, yahoo, google-calendar, outlook
weather-calendar-feed
Display yr.no weather (supports the entire Earth) forecasts with highly customizable Event titles in your Google Calendar, Android phone, iPhone, Outlook or other iCalendar app
Stars: ✭ 16 (-94.14%)
Mutual labels:  icalendar, calendar, google-calendar, ics
Outlookcaldavsynchronizer
Sync Outlook with Google, SOGo, Nextcloud or any other CalDAV/CardDAV server
Stars: ✭ 560 (+105.13%)
Mutual labels:  calendar, google-calendar, outlook
webcalendar
WebCalendar is a PHP application used to maintain a calendar for a single user or an intranet group of users. It can also be configured as an event calendar.
Stars: ✭ 113 (-58.61%)
Mutual labels:  icalendar, calendar, ics
remarkable-calendar-creator
Create calendars to display on a reMarkable device as the suspend screen or to write notes on, including events from your own online iCal calendar
Stars: ✭ 28 (-89.74%)
Mutual labels:  icalendar, calendar, ics
Daylight-Calendar-ICS
Daylight Calendar is a dynamically generated .ics calendar that you can host and subscribe to in Google Calendar, iCal, or other calendar software.
Stars: ✭ 22 (-91.94%)
Mutual labels:  calendar, google-calendar, ics
prodcal ics
Производственный календарь в формате ics
Stars: ✭ 23 (-91.58%)
Mutual labels:  calendar, google-calendar, ics
Fb2cal
Fetch Facebook Birthdays events and create an ICS file for use with calendar apps
Stars: ✭ 335 (+22.71%)
Mutual labels:  calendar, google-calendar, ics
ical
📅 Golang iCalendar lexer/parser implementing RFC 5545
Stars: ✭ 28 (-89.74%)
Mutual labels:  icalendar, calendar, ics
RaspberryPi-WeatherStation
7.5 ePaper Waveshare Outlook WeatherStation 墨水屏台历
Stars: ✭ 30 (-89.01%)
Mutual labels:  calendar, outlook
Mxlcalendarmanager
A set of classes used to parse and handle iCalendar (.ICS) files
Stars: ✭ 198 (-27.47%)
Mutual labels:  calendar, ics
THCalendar
Calendar like iOS
Stars: ✭ 21 (-92.31%)
Mutual labels:  icalendar, calendar
every2cal
🙌에브리타임 캘린더를 ics파일로 바꿔줍니다
Stars: ✭ 33 (-87.91%)
Mutual labels:  calendar, ics
croncal
Utility to convert a crontab file to a list of actual events within a date range.
Stars: ✭ 37 (-86.45%)
Mutual labels:  icalendar, calendar
Khal
📆 CLI calendar application
Stars: ✭ 1,888 (+591.58%)
Mutual labels:  icalendar, calendar
jpl-space-calendar
An app for parsing and publishing the JPL Space Calendar in JSON and ICalendar formats.
Stars: ✭ 13 (-95.24%)
Mutual labels:  icalendar, ics
ics-to-json
📅 Convert ICS calendars (eg. Google Calendar) to an opinionated JSON format.
Stars: ✭ 36 (-86.81%)
Mutual labels:  google-calendar, ics
Add Event To Calendar Docs
📅 Docs how to generate links to add events to online calendar services
Stars: ✭ 193 (-29.3%)
Mutual labels:  calendar, google-calendar
calcardbackup
calcardbackup: moved to https://codeberg.org/BernieO/calcardbackup
Stars: ✭ 67 (-75.46%)
Mutual labels:  icalendar, ics
node-ical
NodeJS class for parsing iCalendar/ICS files
Stars: ✭ 53 (-80.59%)
Mutual labels:  icalendar, ics

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: '[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({
    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+
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].