All Projects β†’ jojoee β†’ add2calendar

jojoee / add2calendar

Licence: MIT license
πŸ“† Allow you to add event to calendar easier

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Less
1899 projects

Projects that are alternatives of or similar to add2calendar

Kotlin Agendacalendarview
Android calendar library provides easy to use widget with events
Stars: ✭ 81 (+58.82%)
Mutual labels:  calendar, event, outlook
Outlookgooglecalendarsync
Sync your Outlook and Google calendars
Stars: ✭ 1,113 (+2082.35%)
Mutual labels:  calendar, outlook
Python O365
A simple python library to interact with Microsoft Graph and Office 365 API
Stars: ✭ 742 (+1354.9%)
Mutual labels:  calendar, outlook
React Native Add Calendar Event
Create, view or edit events in react native using the standard iOS / Android dialogs
Stars: ✭ 225 (+341.18%)
Mutual labels:  calendar, event
Ics Py
Pythonic and easy iCalendar library (rfc5545)
Stars: ✭ 322 (+531.37%)
Mutual labels:  calendar, event
Outlookcaldavsynchronizer
Sync Outlook with Google, SOGo, Nextcloud or any other CalDAV/CardDAV server
Stars: ✭ 560 (+998.04%)
Mutual labels:  calendar, outlook
Calendarsyncplus
This utility synchronizes Calendar entries between different calendar providers (Apps like Outlook,Services EWS/Google/Live).
Stars: ✭ 80 (+56.86%)
Mutual labels:  calendar, outlook
tsdav
WebDAV, CALDAV, and CARDDAV client for Nodejs and the Browser
Stars: ✭ 33 (-35.29%)
Mutual labels:  calendar, ical
THCalendar
Calendar like iOS
Stars: ✭ 21 (-58.82%)
Mutual labels:  calendar, ical
RaspberryPi-WeatherStation
7.5 ePaper Waveshare Outlook WeatherStation ε’¨ζ°΄ε±ε°εŽ†
Stars: ✭ 30 (-41.18%)
Mutual labels:  calendar, outlook
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 (-56.86%)
Mutual labels:  calendar, ical
ioBroker.trashschedule
Calculates trash pickup dates by using an ical calendar
Stars: ✭ 20 (-60.78%)
Mutual labels:  calendar, ical
calendar
R interface to iCal (.ics files)
Stars: ✭ 30 (-41.18%)
Mutual labels:  calendar, ical
Calendar Phonegap Plugin
πŸ“… Cordova plugin to Create, Change, Delete and Find Events in the native Calendar
Stars: ✭ 729 (+1329.41%)
Mutual labels:  calendar, event
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 (-45.1%)
Mutual labels:  calendar, ical
add-to-calendar-button
A convenient JavaScript snippet, which lets you create beautiful buttons, where people can add events to their calendars.
Stars: ✭ 697 (+1266.67%)
Mutual labels:  calendar, outlook
calendar-link
πŸ“… Calendar link generator for popular services
Stars: ✭ 193 (+278.43%)
Mutual labels:  calendar, outlook
summit-app-ios
The official app for the OpenStack Summit
Stars: ✭ 35 (-31.37%)
Mutual labels:  calendar, event
ical
πŸ“… Golang iCalendar lexer/parser implementing RFC 5545
Stars: ✭ 28 (-45.1%)
Mutual labels:  calendar, ical
every2cal
πŸ™Œμ—λΈŒλ¦¬νƒ€μž„ μΊ˜λ¦°λ”λ₯Ό ics파일둜 λ°”κΏ”μ€λ‹ˆλ‹€
Stars: ✭ 33 (-35.29%)
Mutual labels:  calendar, ical

Add2Calendar

release continuous integration Codecov Bower Version Npm Version License - npm Release Version Downloads

Allow you to add event to calendar easier

Screenshot 1

Feature

Single Event Multi Event
Google βœ…
Yahoo βœ…
iCal βœ… βœ…
Outlook βœ… βœ…

Compatible with all browsers:

  • Google Chrome 19+
  • Mozilla Firefox 3.5+
  • Safari 6+
  • Internet Explorer 10+
  • Opera 11.5

Getting Started

Install

1. Install via `npm`
1.1 Install npm
1.2 Install package: `npm install --save add2calendar`

2. Install via `bower`
2.1 Install npm
2.2 Install bower: `npm install -g bower`
2.3 Install package: `bower install --save add2calendar`
// Import via CommonJS
const Add2Calendar = require('add2calendar')
// Import via ES6
import * as Add2Calendar from "add2calendar"
<!-- Import via githack -->
<link rel="stylesheet" href="https://rawcdn.githack.com/jojoee/add2calendar/v1.1.2/css/add2calendar.css">
<script src="https://rawcdn.githack.com/jojoee/add2calendar/v1.1.2/js/add2calendar.js"></script>
<!-- Import via bower -->
<link rel="stylesheet" href="./bower_components/add2calendar/css/add2calendar.css">
<script src="./bower_components/add2calendar/js/add2calendar.js"></script>
// Example usage

var singleEventArgs = {
  title       : 'Add2Calendar plugin event',
  start       : 'July 27, 2016 10:30',
  end         : 'July 29, 2016 19:20',
  location    : 'Bangkok, Thailand',
  description : 'Event description',
  isAllDay    : false,
};
var singleEvent = new Add2Calendar(singleEventArgs);

// to get actual url
singleEvent.getGoogleUrl(); // https://www.google.com/calendar/render?action=TEMPLATE&text=...
singleEvent.getICalUrl(); // data:text/calendar;charset=utf8,BEGIN:VCALENDAR%0A...
singleEvent.getOutlookUrl(); // data:text/calendar;charset=utf8,BEGIN:VCALENDAR%0A...
singleEvent.getYahooUrl(); // https://calendar.yahoo.com/?v=60&view=d&type=20&title=...

// render a widget
singleEvent.createWidget('#single-normal');
// Example usage (React.js)

import * as Add2Calendar from "add2calendar"
import React from 'react'
import 'add2calendar/css/add2calendar.css'

class Add2CalendarComponent extends React.Component {
  componentDidMount () {
    const singleEvent = new Add2Calendar({
      title: 'Add2Calendar plugin event',
      start: 'December 19, 2020 10:30',
      end: 'December 19, 2020 10:50',
      location: 'Bangkok, Thailand',
      description: 'Event description'
    })
    singleEvent.createWidget('#single-normal')
  }

  render() {
    return (
      <div id="single-normal"></div>
    );
  }
}

function App() {
  return (
    <div className="App">
      <Add2CalendarComponent />
    </div>
  );
}

export default App;
// Example usage (multiple events)

var multiEventsArgs = [
  {
    title       : 'Add2Calendar plugin event 1',
    start       : 'July 27, 2016 10:30',
    end         : 'July 27, 2016 19:30',
    location    : 'Bangkok, Thailand',
    description : 'Event description 1',
  },
  {
    title       : 'Add2Calendar plugin event 2',
    start       : 'July 28, 2016 10:30',
    end         : 'July 29, 2016 19:20',
    location    : 'Bangkok, Thailand',
    description : 'Event description 2',
  }
];
var multiEvents = new Add2Calendar(multiEventsArgs);

// to get actual url
multiEvents.getICalUrl(); // data:text/calendar;charset=utf8,BEGIN:VCALENDAR%0AVERSION:2...
multiEvents.getOutlookUrl(); // data:text/calendar;charset=utf8,BEGIN:VCALENDAR%0AVERSION:2...

// render a widget
multiEvents.createWidget('#multi-normal');
Parameters

---- Example
title       : 'Add2Calendar plugin event',
start       : 'July 27, 2016 10:30',
end         : 'July 29, 2016 19:20',
location    : 'Bangkok, Thailand',
description : 'Event description.',
isAllDay    : false,

---- Default
title       : ''
location    : ''
description : ''
isAllDay    : false

---- Type
title       : <string>
location    : <string>
start       : <string> (date format) (required)
end         : <string> (date format) (required)
description : <string>
isAllDay    : <boolean>

Why this plugin

Apologize me, if I miss something

1: Simple

2: Many plugins do not meet my requirements

2.1 [addevent.com](https://www.addevent.com/)
- Not free

2.2 [addtocalendar](http://addtocalendar.com/)
- Google: OK
- iCal: OK
- Outlook: OK
- Outlook Online: not working (tested at 25/07/2016)
- Yahoo!: incorrect end date (tested at 25/07/2016)
- They link to their own service
- They add their own "description" at the bottom of event's description

2.3 [add-to-calendar-buttons](https://github.com/carlsednaoui/add-to-calendar-buttons)
- Google: OK
- iCal: OK
- Outlook: OK
- Outlook Online: don't have
- Yahoo!: incorrect date (tested at 25/07/2016)

2.4 [jquery.addtocalendar](https://github.com/tardate/jquery.addtocalendar)
- Google: OK
- iCal: don't have
- Outlook: don't have
- Outlook Online: incorrect date, event and description not working (tested at 25/07/2016)
- Yahoo!: OK

Important changelog

1.1.8
- Fix Yahoo, "isAllDay" is not working

1.1.7
- Test against multiple nodejs versions since 4 to 16

1.1.6
- Update accessibility by using <button> tag instead

1.1.5
- Support component-based framework e.g. React.js

1.1.4
- Support "isAllDay" param

1.1.3
- Fix iCal, data is truncated when it contains a "#" character

1.1.2
- Fix CommonJS importing error

1.1.1
- Update devDependencies versions
- Adding prefix to prevent naming collision
- Support CommonJS importing
- CI integration
- Support timezone
- Replace Sass with Less

1.1.0
- Remove `setLang` API (using `setOption` instead)
- Remove outlook-online from the list

1.0.0
- First release

Future Update

  • Support All Node.js versions since 4 to 16
  • Zero dependency
  • Support ES6 module importing
  • Update Google format to new format
  • start and end parameters can be Date objet
  • Unit test: automated test on browser environment
  • Create default value of end variable (should be equal start + 1 day)
  • Support callback function
  • Set language
  • Support download attr
  • Refactor option parameter
  • Support Office 365
  • Support https://outlook.live.com/
  • Recurring events e.g. weekly, monthly

Development and contribution

nvm install 4.0.0
nvm install 4.0.0 && nvm use 4.0.0
# or "nvm install 11.15.0 && nvm use 11.15.0"
npm install
npm shrinkwrap
mv ./npm-shrinkwrap.json ./package-lock.json

# publishing
npm publish --dry-run
npm publish

Format and others

Helper tool

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].