Étape 1: Installation npm

Installez le paquet depuis le registre npm.

Terminal window
npm install add-to-calendar-button

Étape 2: Importation

Importez le module dans le composant où vous souhaitez utiliser le bouton.

import 'add-to-calendar-button';

Étape 3: Optimiser la configuration Angular

Pour qu’Angular fonctionne correctement avec le Web Component, importez CUSTOM_ELEMENTS_SCHEMA et mettez à jour le bloc @NgModule/@Component correspondant.

Option A: Composant autonome (recommandé)

app.component.ts
import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
@Component({
//(...),
standalone: true,
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppComponent {}

Option B: Application basée sur NgModule

app.module.ts
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
//(...)
@NgModule({
//(...),
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
//(...)

Étape 4: Utilisation

Commencez par ajouter une balise <add-to-calendar-button> à votre code HTML, avec les options sous forme d’attributs.

Oui, c’est aussi simple que cela.

Votre bloc de code pourrait ressembler à ceci.

<add-to-calendar-button
name="Titre"
options="'apple','google'"
location="World Wide Web"
start-date="2026-10-18"
end-date="2026-10-18"
start-time="10:15"
end-time="23:30"
time-zone="Europe/Paris"
language="fr"
></add-to-calendar-button>

Liaisons correctes

Pour lier une donnée à un attribut, utilisez la syntaxe [attr.PARAMETER]="vos données".

Selon votre configuration, les données peuvent arriver après le premier rendu du bouton. Ce n’est pas un problème, mais le mode debug peut signaler des données manquantes dans la console. Pour cette raison, la liaison de l’option « identifier » ne fonctionne pas.

<add-to-calendar-button
[attr.name]="titleVar"
options="'apple','google'"
[attr.start-date]="dateVar"
></add-to-calendar-button>

Styles et langues

Le script inclut le style de bouton « default » et le pack anglais : le bouton est donc immédiatement fonctionnel et agréable sans configuration supplémentaire.

Lorsque vous chargez directement le script navigateur, les autres styles et langues sont chargés automatiquement à la demande (quelques Ko chacun). Les intégrations groupées doivent enregistrer explicitement les modules requis comme ci-dessous.

Bundling via npm (recommandé pour les frameworks)

Lors du bundling, importez les modules de style et de langue requis avant le module principal. Ils sont ainsi enregistrés sans requête avant la mise à niveau du custom element, y compris pendant l’hydratation SSR :

import 'add-to-calendar-button/styles/3d'; // any style besides "default"
import 'add-to-calendar-button/i18n/de'; // any language besides English
import 'add-to-calendar-button'; // load the component last

Pour charger tous les styles ou toutes les langues en une seule instruction, utilisez les modules agrégés : import 'add-to-calendar-button/styles/all' et import 'add-to-calendar-button/i18n/all'.

Consultez les options « button-style » et « language » sur la page Configuration pour tous les détails.