Gabriel Budiño

sábado, 2 de noviembre de 2024

Agendar eventos desde formulario

Imagina que, por ejemplo, necesitas que distintas personas de tu organización te informen de eventos que quieren realizar, de manera de tener un calendario compartido donde aparezcan todas las actividades.

Puedes crear en Google Forms un formulario con Nombre de la Actividad, Descripción, Fecha de Inicio y Fecha de Finalización, teniendo cuidado de las fechas ponerlas con la opción de fecha y hora.


Con esto y compartiendo la hoja de cálculo donde se almacenan las respuestas, todos pueden saber qué actividades se han agendado, pero sería interesante que se agendaran automáticamente en un calendario de Google (que también podría compartirse) y enviara un correo para avisar del nuevo registro.

Para esto le pedí ayuda a Gemini para que me ayudara a programa una App Script que realizara esta tarea.

Desde el formulario de google hay que acceder al editor de secuencias de comando y sustituir el código que viene por defecto, por este que pongo a continuacion:

function enviarACalendario() {
  // Obtén el formulario activo
  var formulario = FormApp.getActiveForm();

  // Obtén la última respuesta enviada
  var respuestas = formulario.getResponses();
  var ultimaRespuesta = respuestas[respuestas.length - 1];

  // Extrae los datos relevantes de la respuesta
  var itemRespuesta = ultimaRespuesta.getItemResponses();

  // Extrae los datos relevantes de las respuestas
  var titulo = itemRespuesta[0].getResponse();
  var descripcion = itemRespuesta[1].getResponse();
  var fechaInicio = new Date(itemRespuesta[2].getResponse());
  var fechaFin = new Date(itemRespuesta[3].getResponse());

  // Crea el evento en el calendario
  var calendario = CalendarApp.getDefaultCalendar();
  var evento = calendario.createEvent(
    titulo,
    fechaInicio,
    fechaFin,
    {
      description: descripcion
    }
  );
// Envía un correo electrónico MailApp.sendEmail('xxxx@gmail.com', 'Nuevo evento creado', 'Se ha creado un nuevo evento en tu calendario:\n\n' + 'Título: ' + titulo + '\n' + 'Descripción: ' + descripcion + '\n' + 'Fecha de inicio: ' + fechaInicio + '\n' + 'Fecha de fin: ' + fechaFin );
}

Luego en "activadores" añadir uno las siguientes opciones:


Cuando lo hagas por primera vez, tendrás que autorizarlo para que pueda acceder a tu Google Calendar, simplemente siguiendo las indicaciones para otorgar los permisos necesarios.

Con esto cada vez que se complete el formulario se creará un evento en tu calendario.

Te recomiendo crear una cuenta de gmail específica para esto y ser cuidadoso en la forma en que se difunde el acceso al formulario, el calendario y la hoja de cálculo con las respuestas.

.

.

No hay comentarios:

Publicar un comentario