Hoy vamos a empezar un sistema de reservas utilizando Forms y Sheets que les va a servir a todos los que tienen emprendimientos donde necesitan gestionar fechas y horas específicas para servicios, cursos, clases, etc.
Objetivos del Tutorial
- Crear un formulario en Google Forms para reservas.
- Conectar el formulario con Google Sheets.
- Automatizar la actualización de fechas y horas disponibles en el formulario desde una hoja de cálculo.
Paso 1: Crear el Formulario de Reservas
1.1 Crear el Formulario en Google Forms
Primero, creamos un formulario en Google Forms desde Google Sheets para que se vinculen automáticamente.
- En Google Sheets, vamos a «Herramientas» y seleccionamos «Crear un formulario».
- Renombramos la hoja de respuestas que se genera automáticamente como «Reservas».
1.2 Configurar las Preguntas del Formulario
En Google Forms, configuramos las preguntas básicas:
- Correo Electrónico: Configuramos el formulario para recopilar direcciones de correo electrónico.
- Clase: Añadimos una pregunta de selección múltiple con las opciones de clases (por ejemplo, «Google Sheets Básico», «Google Sheets Avanzado», «Google Apps Script»).
- Fecha y Hora: Añadimos dos preguntas más, una para la fecha y otra para la hora. Utilizaremos listas desplegables para controlar mejor las opciones disponibles.
Paso 2: Conectar Google Sheets y Google Forms
2.1 Preparar la Hoja de Disponibilidad
En Google Sheets, creamos una nueva hoja llamada «Disponibilidad» donde pondremos las fechas y horas disponibles.
Disponibilidad
--------------
Fechas
01/06/2023
02/06/2023
03/06/2023
Horas
10:00 AM
11:00 AM
12:00 PM
2.2 Escribir el Código de Google Apps Script
- Abrimos el editor de Google Apps Script desde «Extensiones» > «Apps Script».
- Escribimos el siguiente código para conectar Google Forms y Google Sheets y actualizar las preguntas de fecha y hora basadas en los datos de la hoja «Disponibilidad».
function actualizarPreguntas() {
// Conectar con el formulario
const formId = 'YOUR_FORM_ID_HERE'; // Reemplazar con el ID de su formulario
const form = FormApp.openById(formId);
// Obtener las preguntas específicas de fecha y hora
const items = form.getItems();
const preguntaFecha = items.filter(item => item.getTitle() === "Fecha")[0].asMultipleChoiceItem();
const preguntaHora = items.filter(item => item.getTitle() === "Hora")[0].asMultipleChoiceItem();
// Conectar con la hoja de cálculo
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Disponibilidad');
// Obtener las fechas
const fechas = sheet.getRange('A2:A').getValues().flat().filter(String);
// Obtener las horas
const horas = sheet.getRange('B2:B').getValues().flat().filter(String);
// Actualizar las opciones en el formulario
preguntaFecha.setChoiceValues(fechas);
preguntaHora.setChoiceValues(horas);
}
2.3 Configurar un Activador
Configuramos un activador para que esta función se ejecute automáticamente cada vez que se edite la hoja «Disponibilidad».
- En el editor de Apps Script, vamos a «Reloj» (ícono de reloj).
- Añadimos un nuevo activador.
- Seleccionamos la función
actualizarPreguntasy configuramos el activador para que se ejecute «Al editar».
Paso 3: Probar el Sistema
- Añadir Datos: Añadimos algunas fechas y horas a la hoja «Disponibilidad».
- Verificar el Formulario: Vamos a Google Forms y verificamos que las opciones de fecha y hora se actualicen automáticamente según los datos de la hoja de cálculo.
Conclusión
Hemos creado un sistema de reservas automatizado utilizando Google Forms y Google Sheets. Este sistema permite actualizar fácilmente las fechas y horas disponibles sin tener que modificar manualmente el formulario cada vez. Esto es ideal para gestionar reservas de servicios, clases, y cualquier otra actividad que requiera una gestión precisa de horarios.