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

Con este método puedes obtener el listado de servicios asociados a tu cuenta.

Este método es asíncrono.

const services = await calendar.getServices();

change

Con 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

Con este método puedes obtener el listado de días disponibles en base al ID de un servicio y un mes en específico.

  1. serviceId: Corresponde al ID del servicio

  2. ISODate: Corresponde al mes en formato ISO-8601 en horario UTC, por defecto hoy.

  3. timezone: Corresponde a la zona horario del usuario (opcional)

Este método es asíncrono.

const days = await calendar.getDays(serviceId);

El listado de días están en formato horario UTC ISO-8601, esta fecha las debes usar para obtener las horas disponibles.

getHours

Con este método puedes obtener el listado de horas disponibles en base al ID de un servicio y un día en específico.

  1. serviceId: Corresponde al ID del servicio

  2. ISODate: Corresponde al mes en formato ISO-8601 en horario UTC, por defecto hoy.

  3. timezone: Corresponde a la zona horario del usuario (opcional)

Este método es asíncrono.

const hours = await calendar.getHours(serviceId, ISODate);

El listado de horas están en formato horario UTC ISO-8601, esta fecha para agendar.

create

Con este método puedes crear una cita entregando 2 argumentos obligatorios.

  1. entityId: Id del serivicio o agente

  2. data: Datos del agendamiento como Object siendo:

{
    startAt: "2023-04-03T12:00:00.000Z",
    timezone: "America/Santiago",
    form: [{...}],
    referrer: 'https://schedule.example.com',
    token: '0.AOpYir-gaFDC4NreNyXVyXTRPhJREe3dv33S9hdQ0H3lsJkOM'
}

Para poder obtener el formulario deberás usar el SDK de formulario.

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

Con 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:

  1. v-schedule-action: corresponde a la acción a realizar

  2. v-schedule-auth: corresponde al token de autorización enviado por email

Deberás usar este método cuando el evento modify se dispara.

await calendar.cancel();

reschedule

Con este método puedes reagendar una cita previamente agendada. Recibe un argumento obligatorio data que corresponde a un Object.

Deberás usar este método cuando el evento modify se dispara.

const data = { date: "2023-04-03T12:00:00.000Z" };
await calendar.reschedule(data);

getInfo

Con este método puedes obtener la información de la cita solo 5 minutos antes de la hora agendada.

await calendar.getInfo();

connect

Este 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.

Para acceder al token puedes usar calendar.appointmentToken.

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

Con 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

Con 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;
});

Con 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);

Para abrir el link en otra pestaña puedes utilizar window.open(link, "_blank").

El método recibe dos argumentos:

  • type: nombre del servicio puede ser google, outlook, office365, yahoo o ics.

  • 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],
}

Los valores mencionados se obtienen en la respuesta luego de haber usando el método create or reschedule.

title

Valor por defecto que utilizamos en el título inyectando variables.

Reunión de {duration} min con {service}

description

Valor 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

Corresponde a la fecha de inicio que se entrega como UTC llamada startAt.

end

Corresponde a la fecha de término que se entrega como UTC llamada endAt.

duration

Corresponde 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

Corresponde al enlace de acceso a la reunión. Lo obtienes de la respuesta como joinUrl.

busy

Corresponde al estado del usuario cuando inicie la reunión en su calendario. Se sugiere utilizar true.

location

Corresponde 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

Corresponde al listado Array de invitados a la reunión. Puedes obtener el valor de la respuesta como email.

Última actualización