GithubHelp home page GithubHelp logo

snugsfbay / ics.js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nwcell/ics.js

0.0 1.0 0.0 121 KB

A browser firendly VCS file generator written entirely in javascript!!!!!!

License: MIT License

JavaScript 98.27% CSS 1.47% HTML 0.27%

ics.js's Introduction

ics.js

A browser friendly .ics/.vcs file generator written entirely in JavaScript!

Now you can make calendar friendly files client-side. It outputs .ics files, so the files are compatible with all modern calendar software (Outlook, Apple Calendar, Google, etc.)

How To Use

Simply use invoke the object and use the functions...

var cal = ics();
cal.addEvent(subject, description, location, begin, end);
cal.addEvent(subject, description, location, begin, end); // yes, you can have multiple events :-)
cal.download(filename);

begin and end need to be formatted in a way that is friendly to Date()

Recurring Events

Recurring events can be added with the rrule object.

cal.addEvent(subject, description, location, begin, end, rrule)

The rrule object has the following properties:

  • freq : Required. The frequency of event recurrence. Can be DAILY, WEEKLY, MONTHLY, or YEARLY.
  • until : A date string representing the date on which to end repitition. Must be friendly to Date()
  • count : Alternative to until. Repeat the event count times. Must be an integer
  • interval : The interval of freq to recur at. For example, if freq is WEEKLY and interval is 2, the event will repeat every 2 weeks. Must be an integer.
  • byday : Which days of the week the event is to occur. An array containing any of SU, MO, TU, WE, TH, FR, SA.

The four properties described above are not exhaustive of recurrence rule capabilities. If extra functionality is required, you can set the rrule.rule property to a full recurrence rule string. In this case, none of the four properties described above are necessary. See this page for a description of recurrence rules.

Example

<script>
	var cal = ics();
	cal.addEvent('Demo Event', 'This is an all day event', 'Nome, AK', '8/7/2013', '8/7/2013');
	cal.addEvent('Demo Event', 'This is thirty minute event', 'Nome, AK', '8/7/2013 5:30 pm', '8/7/2013 6:00 pm');
</script>
<a href="javascript:cal.download()">Demo</a>

Dependencies

The tool uses 2 libraries from the following projects:

I've compressed them and included them into the source for the normal file. Other variations are available in the repo.

If you want IE to allow for either opening documents as well as saving documents, you can use my fork of FileSaver.js (https://github.com/nwcell/FileSaver.js)... Though you honestly are probebly best off using their main.

Supported Browsers

Browser Dependancies
Firefox 20+ FileSaver.js
Firefox ≤ 19 FileSaver.js, Blob.js
Chrome FileSaver.js
Chrome for Android v28+ FileSaver.js
IE 10+ FileSaver.js
Opera Next FileSaver.js
Opera < 15 FileSaver.js, Blob.js
Safari ≤ 6 FileSaver.js, Blob.js

Credits

ics.js's People

Contributors

nwcell avatar khornberg avatar connorbode avatar asr1 avatar jmuia avatar snayagar avatar wavesonics avatar blaiseit avatar nhunt3 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.