Tipos de eventos

En esta página, se explica la propiedad eventType y las especificaciones de los tipos de eventos disponibles en la API del Calendario de Google.

El Calendario de Google permite a los usuarios crear eventos genéricos, así como eventos diseñados para casos de uso específicos y con propiedades personalizadas.

El tipo de evento se puede descubrir en los siguientes lugares de la API:

  • Todos los eventos se devuelven con un eventType.
  • Se debe configurar eventType cuando se crea o actualiza un recurso de evento. Si no se establece, se usará el tipo 'default'.
  • eventTypes se puede especificar en una llamada a Events:list para enumerar eventos de tipos específicos. Si no se especifica ningún tipo, se devolverán todos los tipos de eventos.
  • eventTypes se puede especificar en una llamada a Events:watch para suscribirse a actualizaciones sobre eventos de tipos específicos. Si no se especifica ningún tipo, la solicitud generará una suscripción a todos los tipos de eventos.

Evento predeterminado

Los eventos con el tipo de evento default se crean y se usan como uno de los principales recursos de la API de Calendar de Google. Admiten una amplia variedad de propiedades que se pueden usar para personalizar aún más el evento.

Consulta Cómo crear eventos para comenzar a trabajar con los eventos del Calendario de Google.

Fecha de nacimiento

Los cumpleaños son eventos especiales de todo el día que se repiten anualmente.

Los usuarios pueden crear eventos de cumpleaños de forma manual en el Calendario de Google. Además, la información de cumpleaños se sincroniza con Calendario de Google cuando los usuarios agregan a una persona y su cumpleaños, y otras fechas importantes a Contactos de Google. La fecha de nacimiento de los usuarios también se sincroniza con el Calendario de Google desde su perfil de la Cuenta de Google.

La API de Google Calendar admite los métodos get, instances y list para leer eventos de cumpleaños. eventTypes se puede establecer en 'birthday' para enumerar solo los eventos de cumpleaños. Si no se especifica ningún tipo, los cumpleaños se mostrarán junto con todos los demás tipos de eventos.

En los objetos Event devueltos, inspecciona el campo birthdayProperties para obtener más detalles sobre este evento especial. birthdayProperties tiene los siguientes campos:

  • type: Tipo de este evento especial, ya sea un cumpleaños, un aniversario o cualquier otra fecha importante.
  • customTypeName: Es la etiqueta especificada por el usuario para este evento especial. Este campo se propaga si type se establece en 'custom'.
  • contact: Nombre del recurso del contacto al que está vinculado este evento especial, si corresponde. Tiene el formato 'people/c12345' y se puede usar para recuperar detalles de contacto de la API de People.

La API permite crear eventos de cumpleaños con el método insert y las siguientes especificaciones:

  • eventType se establece en 'birthday'.
  • Los campos start y end deben definir un evento de todo el día que abarque exactamente un día.
  • El valor del campo visibility debe ser 'private'.
  • El valor del campo transparency debe ser 'transparent'.
  • Debe tener una recurrencia anual, lo que significa que el campo recurrence debe ser 'RRULE:FREQ=YEARLY'. Los eventos de cumpleaños que caen el 29 de febrero deben tener la siguiente regla de recurrencia: 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'.
  • Puede tener colorId, summary y reminders.
  • Puede tener birthdayProperties. Si se especifica, type debe ser 'birthday', y customTypeName y contact deben estar vacíos.
  • No puede tener ninguna otra propiedad de evento.

La API permite actualizar los campos colorId, summary y reminders de los eventos de cumpleaños con los métodos update y patch. También se pueden actualizar los campos start y end para cambiar la fecha del evento. En este caso, los valores nuevos deben definir un evento de todo el día que abarque exactamente un día. Los detalles de horario de un evento de cumpleaños no se pueden actualizar si el evento está vinculado a un contact o si su type es 'self'.

La API de Calendar de Google no permite crear eventos de cumpleaños con birthdayProperties personalizados ni actualizar estas propiedades. Las fechas importantes se pueden editar con la API de People, y los cambios se sincronizan con Google Calendar. Del mismo modo, los usuarios pueden editar su cumpleaños en su perfil de la Cuenta de Google, y este se sincronizará con el Calendario de Google.

Las solicitudes que intenten crear o actualizar un cumpleaños de una manera no admitida fallarán. En este caso, inspecciona el mensaje de error para identificar el problema.

La API admite la operación import para los eventos de cumpleaños. Sin embargo, el evento se importará como un evento predeterminado. En otras palabras, eventType será 'default'.

La API admite el método watch para suscribirse a los cambios en los eventos de cumpleaños en el Calendario de Google. eventTypes se puede configurar como 'birthday' para suscribirse a las actualizaciones de los eventos de cumpleaños. Si no se especifica ningún tipo, se suscribirá a todos los tipos de eventos, incluidos los cumpleaños.

Los eventos de cumpleaños se pueden borrar con el método delete de la API de Google Calendar. Borrar un evento de cumpleaños del Calendario de Google no afecta los datos de Contactos de Google ni del perfil de la Cuenta de Google.

No se admite el cambio del organizador de un evento de cumpleaños con los métodos move o update.

Eventos de Gmail

Los eventos generados automáticamente desde Gmail tienen el tipo de evento 'fromGmail'.

La API de Calendar de Google no permite crear este tipo de evento con el método insert.

La API permite actualizar las propiedades extendidas colorId, reminders, visibility, transparency, status, attendees, private y shared con los métodos update y patch.

La API admite los métodos get y list para leer eventos de Gmail. eventTypes se puede establecer en 'fromGmail' para enumerar solo los eventos generados desde Gmail. Si no se especifica ningún tipo, los eventos de Gmail se mostrarán junto con todos los demás tipos de eventos.

La API admite el método watch para suscribirse a los cambios en los eventos de Gmail en el Calendario de Google. Si no se especifica ningún tipo, se realizará la suscripción a todos los tipos de eventos, incluido 'fromGmail'.

Los eventos de Gmail se pueden borrar con el método delete de la API de Calendario de Google.

No se admite el cambio del organizador de un evento desde Gmail con los métodos move o update.

Tiempo dedicado, estado fuera de la oficina y ubicación de trabajo

La API de Calendario de Google se puede usar para crear y administrar eventos que muestran el estado de los usuarios del Calendario de Google.

Estas funciones solo están disponibles en los calendarios principales y para algunos usuarios del Calendario de Google. Consulta Cómo administrar eventos de tiempo dedicado, fuera de la oficina y ubicación de trabajo para obtener más información.

Explora los tipos de eventos en Google Apps Script

Google Apps Script es un lenguaje de secuencias de comandos de nube basado en JavaScript que te permite crear aplicaciones empresariales que se integran con Google Workspace. Las secuencias de comandos se desarrollan en un editor de código basado en el navegador, y se almacenan y ejecutan en los servidores de Google. Consulta también la guía de inicio rápido de Google Apps Script para comenzar a usar Apps Script y enviar solicitudes a la API de Google Calendar.

En las siguientes instrucciones, se describe cómo leer y administrar eventos con la API de Google Calendar como un servicio avanzado en Google Apps Script. Para obtener una lista completa de los recursos y métodos de la API de Google Calendar, consulta la documentación de referencia.

Crea y configura la secuencia de comandos

  1. Crea una secuencia de comandos en script.google.com/create.
  2. En el panel izquierdo junto a Servicios, haz clic en Agregar un servicio .
  3. Selecciona Google Calendar API y haz clic en Agregar.
  4. Una vez habilitada, la API aparecerá en el panel izquierdo. Los métodos y las clases disponibles en la API se pueden enumerar con la palabra clave Calendar en el editor.

Actualiza el proyecto de Google Cloud (opcional)

Cada proyecto de Google Apps Script tiene un proyecto de Google Cloud asociado. Tu secuencia de comandos puede usar el proyecto predeterminado que Google Apps Script crea automáticamente. Si quieres usar un proyecto personalizado de Google Cloud, consulta Cómo cambiar a otro proyecto estándar de Cloud. Después de configurar el proyecto de Google Cloud, selecciona Editor en el lado izquierdo para volver al editor de código.

Agrega código a la secuencia de comandos

En el siguiente ejemplo de código, se muestra cómo enumerar, leer y crear eventos con diferentes valores de eventType.

  1. Pega lo siguiente en el editor de código.

    const CALENDAR_ID = 'CALENDAR_ID' || 'primary';
    
    /** Lists default events. */
    function listDefaultEvents() {
      listEvents('default');
    }
    
    /** Lists birthday events. */
    function listBirthdays() {
      listEvents('birthday');
    }
    
    /** Lists events from Gmail. */
    function listEventsFromGmail() {
      listEvents('fromGmail');
    }
    
    /**
      * Lists events with the given event type. If no type is specified, lists all events.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/list
      */
    function listEvents(eventType = undefined) {
      // Query parameters for the list request.
      const optionalArgs = {
        eventTypes: eventType ? [eventType] : undefined,
        singleEvents: true,
        timeMax: '2024-07-30T00:00:00+01:00',
        timeMin: '2024-07-29T00:00:00+01:00',
      }
      try {
        var response = Calendar.Events.list(CALENDAR_ID, optionalArgs);
        response.items.forEach(event => console.log(event));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
      * Reads the event with the given eventId.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/get
      */
    function readEvent() {
      try {
        var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID');
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /** Creates a default event. */
    function createDefaultEvent() {
      const event = {
        start: { dateTime: '2024-07-30T10:30:00+01:00'},
        end: { dateTime: '2024-07-30T12:30:00+01:00'},
        description: 'Created from Apps Script.',
        eventType: 'default',
        summary: 'Sample event',
      }
      createEvent(event);
    }
    
    /** Creates a birthday event. */
    function createBirthday() {
      const event = {
        start: { date: '2024-01-29' },
        end: { date: '2024-01-30' },
        eventType: 'birthday',
        recurrence: ["RRULE:FREQ=YEARLY"],
        summary: "My friend's birthday",
        transparency: "transparent",
        visibility: "private",
      }
      createEvent(event);
    }
    
    /**
      * Creates a Calendar event.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/insert
      */
    function createEvent(event) {
    
      try {
        var response = Calendar.Events.insert(event, CALENDAR_ID);
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    

    Reemplaza lo siguiente:

    • CALENDAR_ID: Dirección de correo electrónico del calendario en el que se recuperarán y crearán eventos. Inicialmente, esta constante se establece en 'primary', que es una palabra clave para acceder al calendario principal del usuario que accedió. Cambiar este valor te permite leer eventos en los calendarios de otros usuarios a los que tienes acceso.
    • EVENT_ID: Es el ID del evento. Puedes llamar a Events:list para recuperar IDs de eventos.

Ejecuta la muestra de código

  1. Sobre el editor de código, selecciona la función que deseas ejecutar en el menú desplegable y haz clic en Ejecutar.
  2. En la primera ejecución, se te solicitará que autorices el acceso. Revisa y permite que Apps Script acceda a tu calendario.
  3. Puedes inspeccionar los resultados de la ejecución de la secuencia de comandos en el Registro de ejecución que aparece en la parte inferior de la ventana.