Paso 1: Instalación con npm

Instala el paquete desde el registro de npm.

Terminal window
npm install add-to-calendar-button

Paso 2: Importarlo

Importa el módulo en el componente donde quieras usar el botón.

import 'add-to-calendar-button';

Paso 3: Optimizar la configuración de Vue

En teoría, esto ya sería todo.
Vue funciona muy bien con Web Components.

Sin embargo, puede aparecer un aviso en la consola del navegador.
Para eliminarlo, proporciona algo más de información a las opciones del compilador.

Puedes hacerlo en vite.config.js o en otro lugar según tu configuración. Consulta la documentación oficial de Vue para más detalles: haz clic aquí .

// vite.config.js or vite.config.ts
compilerOptions: {
isCustomElement: (tag) => tag.includes('-')
}

Si Add to Calendar Button es el único Web Component del proyecto, puedes ser más específico.
En ese caso, recomendamos definir como custom elements las etiquetas que empiezan por «add-».

// vite.config.js or vite.config.ts
compilerOptions: {
isCustomElement: (tag) => tag.startsWith('add-')
}

Paso 4: Usarlo

Empieza añadiendo una etiqueta <add-to-calendar-button> al código HTML, con las opciones como atributos.

Sí, así de sencillo.

Tu bloque de código podría ser como el siguiente.

<add-to-calendar-button
name="Título"
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/Madrid"
language="es"
></add-to-calendar-button>

Estilos e idiomas

El script incluye el estilo de botón «default» y el paquete de inglés, por lo que funciona y se ve bien sin configuración adicional.

Al cargar directamente el script del navegador, los demás estilos e idiomas se descargan automáticamente cuando se necesitan (unos pocos KB cada uno). Las integraciones empaquetadas deben registrar explícitamente los módulos necesarios como se muestra abajo.

Empaquetado con npm (recomendado para frameworks)

Al empaquetar el script, importa los módulos de estilo e idioma necesarios antes del módulo principal. Así quedan registrados sin solicitudes antes de que se actualice el custom element, también durante la hidratación 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

Para cargar todos los estilos o idiomas en una sola instrucción, usa los módulos agregados: import 'add-to-calendar-button/styles/all' e import 'add-to-calendar-button/i18n/all'.

Consulta las opciones «button-style» y «language» de la página Configuración para ver todos los detalles.