Back to integration guides

15 de julio de 2026

Cómo Incrustar un Botón de Agregar al Calendario en React / Next.js

Aprende cómo construir e incrustar un componente personalizado de Agregar al Calendario en una aplicación React o Next.js.

Incrustando un Botón de Agregar al Calendario en React

Si estás construyendo una plataforma de eventos o un flujo de registro de webinars en React (o Next.js), proporcionar una experiencia fluida de "Agregar al Calendario" es fundamental.

Aunque podrías construir un generador de archivos ICS desde cero y construir manualmente las URL de Google Calendar, a menudo es mucho más rápido usar enlaces pregenerados.

Construyendo un Componente React Simple

Aquí hay un ejemplo básico de un componente de botón AddToCalendar en React que soporta Google Calendar y Apple Calendar (descarga de ICS):

import React from 'react';
 
type AddToCalendarProps = {
  googleUrl: string;
  icsUrl: string;
};
 
export default function AddToCalendar({ googleUrl, icsUrl }: AddToCalendarProps) {
  return (
    <div className="flex gap-4">
      <a 
        href={googleUrl} 
        target="_blank" 
        rel="noopener noreferrer"
        className="px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700"
      >
        Agregar a Google
      </a>
      <a 
        href={icsUrl} 
        download="evento.ics"
        className="px-4 py-2 bg-slate-800 text-white rounded-md hover:bg-slate-900"
      >
        Apple / Outlook
      </a>
    </div>
  );
}

¿De dónde vienen las URLs?

Para que el componente anterior funcione, necesitas el googleUrl y el icsUrl reales.

Construir una URL de Google Calendar requiere formatear con precisión las fechas en cadenas ISO 8601 y codificar en URL el título, la descripción y la ubicación. Construir el archivo ICS requiere alojar un punto final dinámico que devuelva el tipo de contenido text/calendar.

El Enfoque de Invitly

En lugar de escribir puntos finales de backend personalizados, simplemente puedes crear tu evento en Invitly. Invitly te dará URLs permanentes y rastreadas que puedes pasar directamente a los props de tu componente React:

<AddToCalendar 
  googleUrl="https://invitlyapp.com/api/events/123/google" 
  icsUrl="https://invitlyapp.com/api/events/123/ics" 
/>

Esto asegura que tus fechas, zonas horarias y reglas recurrentes sean manejadas perfectamente por el motor de Invitly, mientras tu interfaz React permanece limpia y completamente bajo tu control.