- A few required fields were missing for proper ical validation: PRODID, UID, DTSTAMP - Added optional params to configure prodid and uid - Fixed bug: Start and End times were reporting DATE instead of DATE-TIME, so some consumers would ignore event times - Fixed bug: If start/end times only contained hours, no time would be reported at all - Added a new method: "build" which simply returns the ical contents instead of trying to trigger a download
ics.js
A browser firendly .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()
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 minut event', 'Nome, AK', '8/7/2013 5:30 pm', '8/9/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
- Travis Krause: Me
- Kyle Hornberg: Added multi event functionality and made everything a package firendly