Métodos
Estos son los métodos disponibles para usar nuestro calendario mediante SDK.
Los siguientes métodos te permiten acceder a funciones que cambiarán el comportamiento o ayudantes para ciertas acciones.
Todas las fechas que vayas a utilizar deben estar en horario UTC y formato ISO-8601. Es decir, 2023-04-03T17:00:00.000Z.
getServices
getServicesCon este método puedes obtener el listado de servicios asociados a tu cuenta.
const services = await calendar.getServices();{
"total": 1,
"limit": 10,
"skip": 0,
"data": [
{
"automatic": true,
"title": "Reunión demo",
"description": "Reunión demo",
"id": "61202d32a13b4cf9004eaab1"
}
],
"cached": true
}change
changeCon este método puedes cambiar la entidad con la cual buscarás fechas según mes y día, además de definir si al agendar se realiza con un servicio general o con un usuario específico. Los valores aceptados son:
service(por defecto)user
calendar
.change('user')
.getDays('639a438084d5a0b0690d5cb5');getDays
getDaysCon este método puedes obtener el listado de días disponibles en base al ID de un servicio y un mes en específico.
serviceId: Corresponde al ID del servicioISODate: Corresponde al mes en formato ISO-8601 en horario UTC, por defecto hoy.timezone: Corresponde a la zona horario del usuario (opcional)
const days = await calendar.getDays(serviceId);El valor que retorna este método corresponde a un listado de fechas como objetos, cada una de las claves entrega la fecha en distintos formatos y en el idioma del usuario:
date: Día de la semana + día del mes + mes abreviadoweekday: Día de la semanaday: Día del mesmonth: Mes del añoutc: Fecha en UTC y formato ISO-8601
[
{
"date": "lun, 03 abr",
"weekday": "lun",
"day": "3",
"month": "abril",
"utc": "2023-04-03T04:00:00.000Z"
},
{
"date": "mar, 04 abr",
"weekday": "mar",
"day": "4",
"month": "abril",
"utc": "2023-04-04T04:00:00.000Z"
},
{
"date": "mié, 05 abr",
"weekday": "mié",
"day": "5",
"month": "abril",
"utc": "2023-04-05T04:00:00.000Z"
},
{
"date": "jue, 06 abr",
"weekday": "jue",
"day": "6",
"month": "abril",
"utc": "2023-04-06T04:00:00.000Z"
},
{
"date": "vie, 07 abr",
"weekday": "vie",
"day": "7",
"month": "abril",
"utc": "2023-04-07T04:00:00.000Z"
},
{
"date": "lun, 10 abr",
"weekday": "lun",
"day": "10",
"month": "abril",
"utc": "2023-04-10T04:00:00.000Z"
},
{
"date": "mar, 11 abr",
"weekday": "mar",
"day": "11",
"month": "abril",
"utc": "2023-04-11T04:00:00.000Z"
},
{
"date": "mié, 12 abr",
"weekday": "mié",
"day": "12",
"month": "abril",
"utc": "2023-04-12T04:00:00.000Z"
},
{
"date": "jue, 13 abr",
"weekday": "jue",
"day": "13",
"month": "abril",
"utc": "2023-04-13T04:00:00.000Z"
},
{
"date": "vie, 14 abr",
"weekday": "vie",
"day": "14",
"month": "abril",
"utc": "2023-04-14T04:00:00.000Z"
},
{
"date": "lun, 17 abr",
"weekday": "lun",
"day": "17",
"month": "abril",
"utc": "2023-04-17T04:00:00.000Z"
},
{
"date": "mar, 18 abr",
"weekday": "mar",
"day": "18",
"month": "abril",
"utc": "2023-04-18T04:00:00.000Z"
},
{
"date": "mié, 19 abr",
"weekday": "mié",
"day": "19",
"month": "abril",
"utc": "2023-04-19T04:00:00.000Z"
},
{
"date": "jue, 20 abr",
"weekday": "jue",
"day": "20",
"month": "abril",
"utc": "2023-04-20T04:00:00.000Z"
},
{
"date": "vie, 21 abr",
"weekday": "vie",
"day": "21",
"month": "abril",
"utc": "2023-04-21T04:00:00.000Z"
},
{
"date": "lun, 24 abr",
"weekday": "lun",
"day": "24",
"month": "abril",
"utc": "2023-04-24T04:00:00.000Z"
},
{
"date": "mar, 25 abr",
"weekday": "mar",
"day": "25",
"month": "abril",
"utc": "2023-04-25T04:00:00.000Z"
},
{
"date": "mié, 26 abr",
"weekday": "mié",
"day": "26",
"month": "abril",
"utc": "2023-04-26T04:00:00.000Z"
},
{
"date": "jue, 27 abr",
"weekday": "jue",
"day": "27",
"month": "abril",
"utc": "2023-04-27T04:00:00.000Z"
},
{
"date": "vie, 28 abr",
"weekday": "vie",
"day": "28",
"month": "abril",
"utc": "2023-04-28T04:00:00.000Z"
}
]getHours
getHoursCon este método puedes obtener el listado de horas disponibles en base al ID de un servicio y un día en específico.
serviceId: Corresponde al ID del servicioISODate: Corresponde al mes en formato ISO-8601 en horario UTC, por defecto hoy.timezone: Corresponde a la zona horario del usuario (opcional)
const hours = await calendar.getHours(serviceId, ISODate);El valor que retorna este método corresponde a un listado de fechas como objetos, cada una de las claves entrega la fecha en distintos formatos y en el idioma del usuario:
date: Día de la semana + día del mes + mes abreviadoweekday: Día de la semanaday: Día del mestime: Hora en formatoHH:mmhour: Hora en formatoHHminutes: Minutos en formatommutc: Fecha en UTC y formato ISO-8601
[
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "08:00",
"day": "3",
"hour": "08",
"minutes": "0",
"utc": "2023-04-03T12:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "08:15",
"day": "3",
"hour": "08",
"minutes": "15",
"utc": "2023-04-03T12:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "08:30",
"day": "3",
"hour": "08",
"minutes": "30",
"utc": "2023-04-03T12:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "08:45",
"day": "3",
"hour": "08",
"minutes": "45",
"utc": "2023-04-03T12:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "09:00",
"day": "3",
"hour": "09",
"minutes": "0",
"utc": "2023-04-03T13:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "09:15",
"day": "3",
"hour": "09",
"minutes": "15",
"utc": "2023-04-03T13:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "09:30",
"day": "3",
"hour": "09",
"minutes": "30",
"utc": "2023-04-03T13:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "09:45",
"day": "3",
"hour": "09",
"minutes": "45",
"utc": "2023-04-03T13:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "10:00",
"day": "3",
"hour": "10",
"minutes": "0",
"utc": "2023-04-03T14:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "10:15",
"day": "3",
"hour": "10",
"minutes": "15",
"utc": "2023-04-03T14:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "10:30",
"day": "3",
"hour": "10",
"minutes": "30",
"utc": "2023-04-03T14:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "10:45",
"day": "3",
"hour": "10",
"minutes": "45",
"utc": "2023-04-03T14:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "11:00",
"day": "3",
"hour": "11",
"minutes": "0",
"utc": "2023-04-03T15:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "11:15",
"day": "3",
"hour": "11",
"minutes": "15",
"utc": "2023-04-03T15:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "11:30",
"day": "3",
"hour": "11",
"minutes": "30",
"utc": "2023-04-03T15:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "11:45",
"day": "3",
"hour": "11",
"minutes": "45",
"utc": "2023-04-03T15:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "12:00",
"day": "3",
"hour": "12",
"minutes": "0",
"utc": "2023-04-03T16:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "12:15",
"day": "3",
"hour": "12",
"minutes": "15",
"utc": "2023-04-03T16:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "12:30",
"day": "3",
"hour": "12",
"minutes": "30",
"utc": "2023-04-03T16:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "12:45",
"day": "3",
"hour": "12",
"minutes": "45",
"utc": "2023-04-03T16:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "13:00",
"day": "3",
"hour": "13",
"minutes": "0",
"utc": "2023-04-03T17:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "13:15",
"day": "3",
"hour": "13",
"minutes": "15",
"utc": "2023-04-03T17:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "13:30",
"day": "3",
"hour": "13",
"minutes": "30",
"utc": "2023-04-03T17:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "13:45",
"day": "3",
"hour": "13",
"minutes": "45",
"utc": "2023-04-03T17:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "14:00",
"day": "3",
"hour": "14",
"minutes": "0",
"utc": "2023-04-03T18:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "14:15",
"day": "3",
"hour": "14",
"minutes": "15",
"utc": "2023-04-03T18:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "14:30",
"day": "3",
"hour": "14",
"minutes": "30",
"utc": "2023-04-03T18:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "14:45",
"day": "3",
"hour": "14",
"minutes": "45",
"utc": "2023-04-03T18:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "15:00",
"day": "3",
"hour": "15",
"minutes": "0",
"utc": "2023-04-03T19:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "15:15",
"day": "3",
"hour": "15",
"minutes": "15",
"utc": "2023-04-03T19:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "15:30",
"day": "3",
"hour": "15",
"minutes": "30",
"utc": "2023-04-03T19:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "15:45",
"day": "3",
"hour": "15",
"minutes": "45",
"utc": "2023-04-03T19:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "16:00",
"day": "3",
"hour": "16",
"minutes": "0",
"utc": "2023-04-03T20:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "16:15",
"day": "3",
"hour": "16",
"minutes": "15",
"utc": "2023-04-03T20:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "16:30",
"day": "3",
"hour": "16",
"minutes": "30",
"utc": "2023-04-03T20:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "16:45",
"day": "3",
"hour": "16",
"minutes": "45",
"utc": "2023-04-03T20:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "17:00",
"day": "3",
"hour": "17",
"minutes": "0",
"utc": "2023-04-03T21:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "17:15",
"day": "3",
"hour": "17",
"minutes": "15",
"utc": "2023-04-03T21:15:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "17:30",
"day": "3",
"hour": "17",
"minutes": "30",
"utc": "2023-04-03T21:30:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "17:45",
"day": "3",
"hour": "17",
"minutes": "45",
"utc": "2023-04-03T21:45:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "18:00",
"day": "3",
"hour": "18",
"minutes": "0",
"utc": "2023-04-03T22:00:00.000Z"
},
{
"date": "lun, 03 abr",
"weekday": "lun",
"time": "18:15",
"day": "3",
"hour": "18",
"minutes": "15",
"utc": "2023-04-03T22:15:00.000Z"
}
]create
createCon este método puedes crear una cita entregando 2 argumentos obligatorios.
entityId: Id del serivicio o agentedata: Datos del agendamiento comoObjectsiendo:
{
startAt: "2023-04-03T12:00:00.000Z",
timezone: "America/Santiago",
form: [{...}],
referrer: 'https://schedule.example.com',
token: '0.AOpYir-gaFDC4NreNyXVyXTRPhJREe3dv33S9hdQ0H3lsJkOM'
}La key service solo es requerida cuando agendas por usuario.
{
startAt: '2023-04-03T12:00:00.000Z',
timezone: 'America/Santiago',
form: [{...}],
service: '639a490f4362d0a814b5c7fd',
referrer: 'https://schedule.example.com/',
token: '0.AOpYir-gaFDC4NreNyXVyXTRPhJREe3dv33S9hdQ0H3lsJkOM'
}Por lo que deberás:
await calendar.create('639a490f4362d0a814b5c7fd', data);En caso que falle deberás escuchar el evento error, donde podrás obtener el motivo del error.
cancel
cancelCon este método puedes cancelar una cita. Este método requiere el uso de un token, por defecto se detecta automáticamente en la URL.
Los parámetros presente en la URL son:
v-schedule-action: corresponde a la acción a realizarv-schedule-auth: corresponde al token de autorización enviado por email
await calendar.cancel();reschedule
rescheduleCon este método puedes reagendar una cita previamente agendada. Recibe un argumento obligatorio data que corresponde a un Object.
const data = { date: "2023-04-03T12:00:00.000Z" };
await calendar.reschedule(data);getInfo
getInfoCon este método puedes obtener la información de la cita solo 5 minutos antes de la hora agendada.
await calendar.getInfo();connect
connectEste método te permite generar la conexión necesaria para unirse a la videollamada. Exige el uso del token de acceso enviado en el email de confirmación o recordatorio.
Solo deberás ejecutar el método connect si los parámetros v-schedule-action y v-sechdule-auth no están presentes en la URL.
await calendar.connect();join
joinCon este método podrás unirte a la videollamada.
Deberás ejecutar este método solo 5 minutos antes de la fecha de inicio y máximo 30 minutos después de la fecha de término.
calendar.join();addEventListener
addEventListenerCon este método podrás añadir oyentes de eventos con un callback. Donde el primer argumento corresponde al nombre del evento y el segundo el callback donde retorna un solo argumento como evento.
Este evento corresponde a un CustomEvent donde la información relevante está en la key detail.
calendar.addEventListener('join', (event) => {
const { ... } = event.detail;
});calendarLink
calendarLinkCon este método puedes generar enlaces para los servicios de calendario más populares de esta manera tus usuarios podrán añadir la cita con un clic.
const link = calendar.calendarLink('google', payload);El método recibe dos argumentos:
type: nombre del servicio puede sergoogle,outlook,office365,yahoooics.payload: formato para generar el enlace
{
"title": String,
"description": String,
"start": UTCDate,
"end": UTCDate,
"duration": [Number, "minutes"],
"url": String,
"busy": Boolean,
"location": String,
"guests": [String],
}{
"title": "Reunión de {duration} min con {service}",
"description": "...",
"start": "2023-02-02T19:10:00.000Z",
"end": "2023-02-02T19:15:00.000Z",
"duration": [15, "minutes"],
"url": "https://videsk.io/?=&v-schedule-action=join&v-schedule-auth=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"busy": true,
"location": "https://videsk.io/?=&v-schedule-action=join&v-schedule-auth=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"guests": ["[email protected]"]
}title
titleValor por defecto que utilizamos en el título inyectando variables.
Reunión de {duration} min con {service}description
descriptionValor por defecto que utilizamos en la descripción inyectando variables.
Puedes acceder a la reunión a través de este enlace:\n\n{joinURL}. \n\n------------\n\nTambién puedes cancelar la reunión desde este enlace:\n\n{cancelURL}. \n\n------------\n\nO reagendar desde este enlace:\n\n{rescheduleURL}.start
startCorresponde a la fecha de inicio que se entrega como UTC llamada startAt.
end
endCorresponde a la fecha de término que se entrega como UTC llamada endAt.
duration
durationCorresponde a un array con dos índices, el primero es la duración que se obtiene de la respuesta como duration y el segundo la unidad de tiempo, que por defecto debe ser minutes, ya que duration está en minutos.
url
urlCorresponde al enlace de acceso a la reunión. Lo obtienes de la respuesta como joinUrl.
busy
busyCorresponde al estado del usuario cuando inicie la reunión en su calendario. Se sugiere utilizar true.
location
locationCorresponde a la ubicación de la reunión, que en este caso se utiliza para rellenar con el enlace de acceso. Algunos clientes de calendario detectan este campo como enlace de videollamada. Obtiene este valor de la respuesta como joinUrl.
guests
guestsCorresponde al listado Array de invitados a la reunión. Puedes obtener el valor de la respuesta como email.
Última actualización
¿Te fue útil?

