Anasaci - Artistas Informáticos

Enviar una Invitación de Calendario con Mandrill usando PHP

Volver / Diseño de páginas Web Zaragoza

10 / 4 / 2025

Enviar una Invitación de Calendario con Mandrill usando PHP

Quieres añadir a tu sistema de envios de email automatizados una invitación que se cargue en el calendario del que la recibe. Tenemos la respuesta.

Enviar una Invitación de Calendario con Mandrill usando PHP
Enviar una Invitación de Calendario con Mandrill usando PHP
Enviar una Invitación de Calendario con Mandrill usando PHP

Si usas Mandrill (el servicio de email transaccional de Mailchimp) para enviar correos, puedes enviar la invitación del calendario como un archivo adjunto .ics o bien incluirlo directamente en el cuerpo del email con METHOD:REQUEST.

Enviar una Invitación de Calendario con Mandrill usando PHP

Mandrill usa su API para enviar correos, así que debes hacer una solicitud HTTP con cURL o usar su SDK oficial. Aquí te dejo el código PHP para enviar una invitación de calendario con METHOD:REQUEST, lo que hará que el usuario vea los botones "Aceptar" y "Rechazar" en su correo.

Código PHP para enviar una invitación de calendario con Mandrill

$apiKey = "TU_API_KEY_DE_MANDRILL";
$recipientEmail = "cliente@email.com";
$recipientName = "Cliente";
$fromEmail = "tu-email@tuempresa.com";
$fromName = "Tu Empresa";

// Crear el evento en formato iCalendar (.ics)
$icsContent = "BEGIN:VCALENDAR ";
$icsContent .= "VERSION:2.0 ";
$icsContent .= "PRODID:-//TuEmpresa//Calendario//ES ";
$icsContent .= "METHOD:REQUEST ";  // Esto permite que aparezca como invitación
$icsContent .= "BEGIN:VEVENT ";
$icsContent .= "UID:" . uniqid() . "@tuempresa.com ";
$icsContent .= "DTSTAMP:" . gmdate('YmdTHis') . " ";
$icsContent .= "DTSTART;TZID=Europe/Madrid:20240312T200000 ";
$icsContent .= "DTEND;TZID=Europe/Madrid:20240312T203000 ";
$icsContent .= "SUMMARY:Revisión diaria de informes ";
$icsContent .= "DESCRIPTION:Accede a la plataforma para revisar los informes diarios. ";
$icsContent .= "LOCATION:https://app.tuempresa.com ";  // Puedes poner el link de tu SaaS
$icsContent .= "ATTENDEE;CN=$recipientName;RSVP=TRUE:mailto:$recipientEmail ";
$icsContent .= "ORGANIZER;CN=Tu Empresa:mailto:$fromEmail "; 
$icsContent .= "STATUS:CONFIRMED ";
$icsContent .= "END:VEVENT ";
$icsContent .= "END:VCALENDAR ";

// Convertir el archivo ICS a base64 para enviarlo con Mandrill
$icsBase64 = base64_encode($icsContent);

// Configurar el email
$emailData = [
    "key" => $apiKey,
    "message" => [
        "html" => "Hola,<br><br> Te hemos enviado una invitación a un evento en tu calendario.<br> 
                   Si aceptas, se agregará automáticamente. <br><br>Saludos,<br>Tu Empresa",
        "subject" => "📅 Invitación a evento: Revisión diaria de informes",
        "from_email" => $fromEmail,
        "from_name" => $fromName,
        "to" => [[
            "email" => $recipientEmail,
            "name" => $recipientName,
            "type" => "to"
        ]],
        "attachments" => [[
            "type" => "text/calendar; method=REQUEST", 
            "name" => "evento.ics",
            "content" => $icsBase64
        ]]
    ]
];

// Enviar la solicitud a Mandrill
$ch = curl_init("https://mandrillapp.com/api/1.0/messages/send.json");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($emailData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

// Verificar la respuesta
if ($response) {
    echo "✅ Invitación enviada correctamente con Mandrill";
} else {
    echo "❌ Error al enviar la invitación";
}

 

¿Cómo funciona este código?

 

  • Envía un email con una invitación de calendario real usando la API de Mandrill.
  • El usuario verá los botones "Aceptar" y "Rechazar" en su correo.
  • Si el usuario acepta, el evento se guarda automáticamente en su calendario (Google, Outlook, Apple Calendar, etc.).
  • El evento incluye un enlace en LOCATION, que puede ser la URL de tu SaaS o una videollamada.
  • El .ics se envía en Base64, que es el formato compatible con Mandrill para archivos adjuntos.

 

Alternativa: Enviar solo el .ics como un enlace de descarga

Si prefieres que el usuario descargue el archivo manualmente en lugar de recibir la invitación directa, puedes subir el .ics a tu servidor y enviar solo el enlace en el email:

$htmlContent = "Hola,<br><br> 
Te hemos enviado una invitación de calendario.<br>
Descárgala aquí: <a href='https://tuempresa.com/evento.ics'>Descargar evento</a>.<br><br>

Pero la mejor opción es usar METHOD:REQUEST, como en el código principal, para que el evento se guarde automáticamente cuando el usuario lo acepte. 🚀aludos,<br>Tu Empresa";

¿Qué Verá el Usuario en su Correo?

Cuando el usuario recibe la invitación en su email, verá algo así:

📧 Asunto: Invitación: Revisión diaria de informes
📅 Cuándo: Todos los días a las 8:00 PM
📍 Ubicación: https://app.tuempresa.com
✍️ Descripción: Revisión diaria de informes y actualización de datos.

[Sí / Aceptar]
🤷 [Tal vez]
[No]

Si el usuario hace clic en "Sí", el evento se agrega directamente a su calendario. 🚀

 

Somos desarrolladores web, si quieres implementar una invitación al calendario con Mandrill o con otro sistema y necesitas ayuda. No dudes en contactar.

Categorías

Mantenimiento de p&aacute;ginas web en zaragoza
Dise&ntilde;o y redise&ntilde;o de p&aacute;ginas web en Zaragoza

Temas

Dise&ntilde;o y redise&ntilde;o de p&aacute;ginas web en Zaragoza
Dise&ntilde;o y redise&ntilde;o de p&aacute;ginas web en Zaragoza

Enlaces

Dise&ntilde;o y redise&ntilde;o de p&aacute;ginas web en Zaragoza
Dise&ntilde;o y redise&ntilde;o de p&aacute;ginas web en Zaragoza

Te puede interesar

Dise&ntilde;o y redise&ntilde;o de p&aacute;ginas web en Zaragoza
Dise&ntilde;o y redise&ntilde;o de p&aacute;ginas web en Zaragoza
Anasaci - Artistas Informáticos