Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

243
Vistas
Cómo crear un evento de calendario de todo el día dentro de 14 días

Estoy tratando de crear un evento de calendario de todo el día a 14 días a partir de hoy usando Google App Script pero sigo recibiendo el error

Excepción: los parámetros (String,String) no coinciden con la firma del método para CalendarApp.Calendar.createAllDayEvent.

Mi guion es:

 var SheetApp = SpreadsheetApp.getActiveSheet(); var SelectedRow = SheetApp.getActiveRange().getRowIndex(); var value = SheetApp.getRange(SelectedRow, 8).getValue(); //Name of the event var eventCal = CalendarApp.getCalendarById("sampleemail@gmail.com"); eventCal.createAllDayEvent(value.toString(), new Date() + 14);
about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Cuando agrega un número a un objeto Fecha, la Fecha se convierte automáticamente a su valor subyacente, es decir, la cantidad de milisegundos desde la época . El resultado de la suma será esa cantidad de milisegundos más 14, que es solo un número entero grande. El método createAllDayEvent() espera un objeto de fecha en lugar de un número entero.

Para obtener una fecha dentro de 14 días , use Date.setDate() . Este método tiene la ventaja de que automáticamente se ocupa de pasar al próximo mes o al próximo año según sea necesario, pero tenga cuidado. El método setDate() modifica un objeto Date en su lugar, pero no devuelve el objeto Date. En su lugar, devuelve el valor subyacente, es decir, el número de milisegundos desde la época.

Esto significa que no puede simplemente asignar el resultado que obtiene de setDate() a una variable con la esperanza de obtener una fecha válida. Algo como const twoWeeksFromNow = new Date().setDate(new Date().getDate() + 14) no funcionará si espera que twoWeeksFromNow contenga una fecha.

Una manera fácil de hacerlo bien es usar una función de utilidad corta, como esta:

 function testCreateAllDayEvent() { const twoWeeksFromNow = dateOffset_(new Date(), +14); const eventCal = CalendarApp.getCalendarById("sample_email@gmail.com"); const sheet = SpreadsheetApp.getActiveSheet(); const eventTitle = sheet .getRange('H' + sheet.getActiveRange().getRow()) .getDisplayValue(); eventCal.createAllDayEvent(eventTitle, twoWeeksFromNow); } /** * Gets a new Date object that is offset by numDays from date. * * @param {Date} date The date from which to count. * @param {Number} numDays The number of days to add or subtract from date. * @return {Date} A new Date object that is offset by numDays from date. */ function dateOffset_(date, numDays) { const newDate = new Date(date); newDate.setDate(date.getDate() + numDays); return newDate; }
about 4 years ago · Santiago Trujillo Denunciar

0

Cambiar segundo parámetro

 new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 14)
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda