An Angular.js component for adding an event to calendar apps. It supports .ics files for iCalendar and Outlook and also supports Google Calendar, Yahoo! Calendar and Microsoft Calendar.
-
Add source
bower:
bower install angular-addtocalendar --save
npm:
npm i angular-addtocalendar --save
-
If you're using webpack, you need to require the module.
require('angular-addtocalendar');
Alternatively:
import 'angular-addtocalendar';
-
Inject the dependency
angular-atc
into your app:angular .module('myApp', [ 'angular-atc', ... ]);
Note: If you're using a version earlier than 1.3.0, the module name is
jshor.angular-addtocalendar
.
For a demo, please click here.
<addtocalendar
start-date="20150704T190000"
end-date="20150704T210000"
title="Fourth of July Fireworks"
location="Battery Park City, New York, NY"
class-name="btn btn-sm btn-default dropdown-toggle"
description="Celebrate the independence of the United States with fireworks in one of the greatest cities in the world.">
</addtocalendar>
Attribute | Description | Format | Example | Required |
---|---|---|---|---|
title |
Name of the event. | String | Fourth of July Fireworks | Yes |
description |
Description of the event. | String, defaults to empty | Celebrate the independence of the United States with fireworks in one of the greatest cities in the world. | No |
location |
Location of the event. | Plain text | Battery Park City, New York, NY | Yes |
start-date |
The timestamp of when the event begins. | Any valid RFC2822 or ISO format date string. | July 4 2017 7:00 PM UTC+500 | Yes |
end-date |
The timestamp of when the event ends. | Any valid RFC2822 or ISO format date string. | July 4 2017 10:00 PM UTC+500 | Yes |
class-name |
The desired class for the dropdown. See Custom Styling. | Bootstrap class/plain text. Default btn btn-sm btn-default dropdown-toggle |
btn btn-sm btn-default dropdown-toggle | No |
btn-text |
Text for the button to display | Plain text. Default Add to calendar |
Add to calendar | No |
use-bootstrap |
Whether to use Bootstrap styling. | Boolean. Default: false |
null |
No |
hover-text |
Text to use as the title of the element. | String Default: value of title attribute | Add to calendar | No |
angular-addtocalendar is designed to be compatible with Bootstrap but also comes bundled with both a custom stylesheet and extendable Sass styles. The markup selector convention is identical to the Bootstrap dropdown markup.
If you already have Bootstrap set up in your project, just pass in use-bootstrap="true"
as a parameter to the <angular-addtocalendar />
component.
If you're using Sass, you can import the default Sass stylesheet like so:
@import '~/angular-addtocalendar/addtocalendar.scss';
Or if you want to reference the compiled stylesheet directly:
<link rel="stylesheet" href="node_modules/angular-addtocalendar/styles.css" />
Assuming you're using Sass, import the stylesheet as noted above. Otherwise, copy the compiled CSS bundled with the project and modify styles as such.
The css namespace (parent class) for this module is atc-btn-group
(assuming use-bootstrap
is false).
All browsers support adding to Yahoo!, Microsoft, and Google calendars. Below is the current support for downloading .ics files for Outlook and iCalendar.
Browser | .ics Support |
---|---|
Internet Explorer | 9.0+ |
Edge | Yes |
Safari | ≤ 6 |
Firefox | 20.0+ |
Opera | 15.0+ |
Chrome | 14.0+ |
Android | 4.4+ |
- iCalendar (ironically) and Outlook do not work due to a well-known file saving bug affecting Safari versions > 6.
Please report all bugs here.
Available here.