js-add-to-calendar-buttons
Version:
A vanilla javascript lib to create add to calendar buttons
99 lines (64 loc) • 3.14 kB
Markdown
# OuiCal2
A simple JS library that enables you to add an "add to calendar" button for your upcoming events.
## Inspiration
This project was inspired by [Eventbrite's](http://www.eventbrite.com/) add to calendar feature (which should have been open sourced #justSayin).
Later, it was adjusted to look and behave more like [AddToCalendar](https://addtocalendar.com), which suddenly became a commercial tool, and very expensive too #justSayin.
## How to use it?
### Method 1
Call 'addToCalendar' with your event info, pass in any optional parameters such as a class and/ or id and boom! Insert your add-to-calendar div wherever you'd like.
The only fields that are mandatory are:
- Event title
- Start time
#### Example
var myCalendar = addToCalendar({
options: {
class: 'my-class',
// You can pass an ID. If you don't, one will be generated for you
id: 'my-id'
},
data: {
// Event title
title: 'Get on the front page of HN',
// Event start date
start: new Date('June 15, 2013 19:00'),
// Event timezone. Will convert the given time to that zone
timezone: America/Los_Angeles,
// Event duration (IN MINUTES)
duration: 120,
// You can also choose to set an end time
// If an end time is set, this will take precedence over duration
// end: new Date('June 15, 2013 23:00'),
// You can also choose to set 'all day'
// If this is set, this will override end time, duration and timezone
// allday:true,
// Event Address
address: 'The internet',
// Event Description
description: 'Get on the front page of HN, then prepare for world domination.'
}
});
document.querySelector('#place-where-I-want-this-calendar').appendChild(myCalendar);
### Method 2
Write your events data in several hidden HTML tags with the right classnames, and wrap them in a div. Then call 'createCalendar' with the outer div and boom! The calendar is appended to your wrapping div.
The only fields that are mandatory are:
- Event title
- Start time
#### Example
<div title="Add to Calendar" class="add-to-calendar">
<span class="start">12/18/2018 08:00 AM</span>
<span class="timezone">America/Los_Angeles</span>
<!--span class="end">12/18/2018 10:00 AM</span-->
<!--span class="duration">60</span-->
<!--span class="allday">true</span-->
<span class="title">Summary of the event</span>
<span class="description">Description of the event</span>
<span class="location">Location of the event</span>
</div>
## Demo
[Here is a live example](http://carlsednaoui.github.io/add-to-calendar-buttons/example.html)
## Calendar Generator
Need to generate an add-to-calendar widget on the fly? No problem, [go here](http://carlsednaoui.github.io/add-to-calendar-buttons/generator/generator.html).
## GitHub Project Page
[Official Project Page](http://carlsednaoui.github.io/ouical/)
## License
[MIT](http://opensource.org/licenses/MIT)