Adáptalo a tus necesidades
Configuración del botón Add to Calendar
La siguiente lista contiene todos los atributos posibles para configurar y personalizar tu próximo botón Add to Calendar.
Consulta la demo para probar la mayoría de ellos y explora las páginas de ejemplos para obtener descripciones más amplias de casos específicos.
Para especificar un valor booleano en el elemento HTML personalizado, basta con añadir el nombre como atributo.
Si no se establece, su valor será automáticamente «false». Como alternativa, también puedes escribirlo siempre como cadena, por ejemplo attributeName="true".
Parámetros PRO
| Nombre(Valor) | Detalles | |
|---|---|---|
| prokey | StringSolo PRO | Si utilizas el servicio PRO, puedes usar el atributo «prokey» para conectar el botón con uno de tus eventos. |
| group-overview | BooleanSolo PRO | Si un grupo de eventos está configurado tanto para suscripción como para una lista de eventos, se muestra de forma predeterminada el botón de suscripción. Usa este atributo para mostrar en su lugar la lista de eventos. |
| group-overview-config | ObjectSolo PRO | Ajustes opcionales para
|
Parámetros del evento
| Nombre(Valor) | Detalles | |
|---|---|---|
| name | StringObligatorio | El título de tu evento. Debe ser una cadena más bien corta. |
| description | String | Admite pseudoetiquetas HTML para el formato: [url], [br], [hr], [p], [strong], [u], [i], [em], [li], [ul], [ol], [h*] (como h1, h2, h3, ...). (Si hay problemas de compatibilidad, puedes usar llaves {} en lugar de corchetes [].) (Apple, Yahoo y Microsoft Teams no son totalmente compatibles; el valor se transforma automáticamente en texto plano y solo conserva saltos de línea e hipervínculos.) |
| start-date | StringObligatorio si no se usan las opciones «dates» o «subscribe»YYYY-MM-DD | Una fecha debe tener el formato YYYY-MM-DD definido por ISO-8601. Puedes usar la palabra mágica «today» para establecer dinámicamente el día actual. Añadir «+5» al final suma automáticamente 5 días a la fecha calculada. De forma no oficial, también funciona un formato como «YYYY-MM-DDTHH:MMZ». |
| start-time | StringHH:MM | Si no se establece, el evento se define como «de todo el día». |
| end-date | StringYYYY-MM-DD | Una fecha debe tener el formato YYYY-MM-DD definido por ISO-8601. Si no se establece una fecha final, se supone que es igual a la fecha inicial. La palabra mágica «today» establece dinámicamente el día actual. Añadir «+5» suma automáticamente 5 días a la fecha calculada. De forma no oficial, también funciona un formato como «YYYY-MM-DDTHH:MMZ». |
| end-time | StringHH:MM | Si no se establece, el evento se define como «de todo el día». |
| time-zone | StringPredeterminado: GMT | No es obligatorio, pero se recomienda añadir una zona horaria. Puedes usar «currentBrowser» para emplear dinámicamente la hora del navegador del usuario. Úsalo con precaución, porque la hora del evento será distinta para cada usuario, algo que normalmente no es deseable. |
| use-user-tz | BooleanPredeterminado: False | Esta opción transforma la hora y la zona horaria según los ajustes de cada usuario. Si la estableces en «true», la hora se convierte a la zona horaria del usuario. |
| location | StringObligatorio para obtener datos enriquecidos de Schema.org | Puede contener cualquier valor. Si es una URL, el evento se clasifica como «evento en línea» en la declaración de schema.org. |
| status | StringOpciones: tentative, confirmed, cancelledPredeterminado: confirmed | Permite gestionar cambios en un evento según la especificación iCalendar RFC5545. |
| sequence | NumberPredeterminado: 0 | Debe ser un número entero positivo. |
| availability | StringOpciones: busy, freePredeterminado: Configuración predeterminada del calendario del usuario | De forma predeterminada, el evento se marca como ocupado/libre/disponible según la configuración del calendario del usuario. |
| uid | StringXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXPredeterminado: Generado aleatoriamente | El identificador único del evento tal como se utiliza en el archivo iCal. Solo puede contener letras, dígitos y guiones, y debe tener menos de 255 caracteres. |
| organizer | StringNAME|EMAIL | Usa el esquema «NOMBRE|CORREO» (p. ej. «Juan Pérez|juan.perez@gmail.com»). El organizador aparece tanto en los datos enriquecidos de schema.org como en el archivo iCal. |
| attendee | StringNAME|EMAIL | Usa el esquema «NOMBRE|CORREO» (p. ej. «Juan Pérez|juan.perez@gmail.com»), o solo el correo, ya que el nombre es opcional. Solo se puede especificar 1 asistente. Si especificas un asistente, también debes especificar un organizador. |
| dates | Array de objetos | Para definir una serie de eventos puedes usar el objeto «dates». Contiene la misma estructura de fecha que el nivel raíz, pero permite definir varios eventos. Los valores raíz prevalecen sobre los del objeto «dates», excepto el nombre cuando hay varias fechas (el nombre raíz se convierte en el título de la serie). La «UID» es un caso especial: solo usa la información raíz en el primer subevento, pues debe ser única. Los siguientes reciben UID nuevas generadas al azar. Atributos por bloque de subevento:
|
| recurrence | StringOpciones: "RRULE:..."; daily, weekly, monthly, yearly | Define eventos recurrentes. Desactiva las opciones de Yahoo y Microsoft (y Google en iOS), porque actualmente no las admiten; los usuarios aún pueden usar iCal. Si no queda ninguna opción, iCal se establece como alternativa. Puedes usar cualquier RRULE válida excepto BYHOUR, BYMINUTE y BYSECOND (generador). Como alternativa, los siguientes ajustes simplificados pueden generar la RRULE en segundo plano. En ese caso, en «recurrence» se define la frecuencia (daily, weekly, monthly, yearly) en lugar de la RRULE. |
| recurrence-interval | NumberPredeterminado: 1 | Define el intervalo entre repeticiones. |
| recurrence-until | StringYYYYMMDDTHHMMSSZ | Define una fecha final. |
| recurrence-count | Number | Define un límite máximo de repeticiones. |
| recurrence-by-day | String | Define los días de la semana (MO, TU, WE, TH, FR, SA, SU) en que ocurre el evento, por ejemplo si está ligado al martes y no al día 24. |
| recurrence-by-month-day | String | Usa esta opción en lugar de «byDay» si quieres un día numerado (1, 2, ... 31) en vez de un día de la semana. |
| recurrence-by-month | StringOpciones: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 | Define los meses (1, 2, 3, ... 12) en los que debe ocurrir el evento. |
| recurrence-weekstart | StringOpciones: MO, TU, WE, TH, FR, SA, SUPredeterminado: MO | Define un día concreto como inicio de la semana. |
| subscribe | BooleanPredeterminado: False | Como alternativa a un evento predefinido, puedes alojar un calendario y ofrecer su suscripción (requiere un calendario alojado). «Name» y «start-date» siguen siendo necesarios por motivos organizativos, pero los demás parámetros del evento pueden omitirse. En los servicios de Microsoft, «Name» se usa como nombre del calendario. Microsoft Teams aún no es compatible y Yahoo ya no lo es; ambos se desactivan automáticamente, al igual que otros servicios de Microsoft en móviles. Si el navegador no reconoce ninguna aplicación de calendario instalada, puede mostrar una pantalla en blanco. La versión PRO lo evita mediante una pantalla intermedia explicativa. |
| ics-file | StringURL | El archivo iCal/ics se crea dinámicamente. En una suscripción debes definir aquí el calendario externo. Si hay varias fechas y se ha establecido organizer o status, debes preparar varios archivos ics: aquí se especifica el de la primera fecha y las posteriores buscan un archivo con el mismo nombre y un número añadido a partir del 2 (p. ej. «event-2.ics»). |
| ical-file-name | StringPredeterminado: event-to-save-in-my-calendar | Para definir un nombre específico para cualquier archivo ics (iCal) generado, usa la opción ical-file-name. |
Opciones del archivo ics
Estas opciones solo modifican el archivo ics generado: se aplican a los tipos de calendario «apple» e «ical»; los demás simplemente las ignoran (sin error ni opción descartada).
Todas salvo «ics-exdate» también pueden definirse por cada entrada del array «dates» de varias fechas (los valores raíz prevalecen, como en los demás campos de fecha).
| Nombre(Valor) | Detalles | |
|---|---|---|
| ics-reminder | String / Number | Añade una alarma. Indica los minutos antes del inicio (p. ej. |
| ics-url | String | Adjunta un enlace canónico (propiedad URL) al evento. Debe ser una URL http(s) válida. |
| ics-categories | String / Array | Etiqueta el evento con una lista de categorías separadas por comas. |
| ics-class | StringOpciones: public, private, confidential | Establece la clasificación del evento. |
| ics-priority | NumberOpciones: 0 - 9 | Establece la prioridad desde 0 (indefinida), pasando por 1 (máxima), hasta 9 (mínima). |
| ics-geo | Stringlatitude,longitude | Añade coordenadas geográficas. Junto con «location», Apple Calendar muestra una vista previa del mapa. |
| ics-attach | String / Array | Adjunta archivos mediante URL (lista de URL http(s) separadas por comas), como una agenda PDF o una entrada. |
| ics-exdate | String / ArrayYYYY-MM-DD | Excluye fechas de un evento recurrente (lista separada por comas). Requiere «recurrence» y es la única que no puede definirse por entrada. |
| ics-created | StringYYYYMMDDTHHMMSSZPredeterminado: Hora de descarga del archivo | El campo «Created» usa por defecto la hora de generación y descarga. Usa esta opción para fijar una marca UTC estática, p. ej. «20231201T103000Z». |
| ics-updated | StringYYYYMMDDTHHMMSSZPredeterminado: Hora de descarga del archivo | El campo «Updated» usa por defecto la hora de generación. Usa esta opción para fijar una marca UTC estática, p. ej. «20231201T103000Z». |
Parámetros de diseño
| Nombre(Valor) | Detalles | |
|---|---|---|
| options | ArrayOpciones: apple, google, ical, ms365, msteams, outlookcom, yahoo | Array de calendarios de la lista. Con un solo tipo, su icono sustituye al predeterminado y la acción es directa. Algunas opciones pueden excluirse según otros ajustes; «ical» se sustituye por «apple» en iOS. options-mobile define los móviles y options-ios sustituye esa selección en iOS (no Mac). |
| button-style | StringOpciones: default, simple, 3d, flat, round, neumorphism, text, date, custom, nonePredeterminado: default | Hay varios estilos integrados que también afectan a otros parámetros. Pruébalos. «none» no carga CSS y «custom» requiere el archivo de «custom-css». Solo el estilo predeterminado está incluido; los demás se cargan bajo demanda o mediante imports. Importa |
| inline | BooleanPredeterminado: False | Renderiza el botón en línea en vez de como bloque. |
| custom-css | StringURL | Carga un CSS externo con button-style «custom». El CSS personalizado no se carga en SSR. |
| style-source | StringURL | Sustituye la URL base de estilos e idiomas cargados bajo demanda. Debe apuntar al directorio que contiene |
| load-all-styles | BooleanPredeterminado: False | Precarga todos los estilos para cambiarlos en tiempo de ejecución sin retraso de red. Solo funciona con etiqueta script; con npm importa los módulos o |
| buttons-list | BooleanPredeterminado: False | Muestra un botón por calendario. |
| label | StringPredeterminado: Add to Calendar | Sustituye el texto del botón. |
| trigger | StringOpciones: hover, clickPredeterminado: hover | La lista suele abrirse al pasar el cursor; usa «click» para abrirla al hacer clic. |
| list-style | StringOpciones: dropdown, dropdown-static, dropup-static, overlay, modalPredeterminado: dropdown | Muestra la lista como desplegable, superposición o modal. El desplegable elige arriba o abajo; las variantes estáticas fuerzan la dirección. |
| force-overlay | BooleanPredeterminado: False | Coloca el botón y el desplegable sobre todo para evitar conflictos de diseño, con un pequeño coste de rendimiento. |
| hide-background | BooleanPredeterminado: False | Hace el fondo totalmente transparente. |
| hide-icon-button | BooleanPredeterminado: False | Oculta el icono del botón. |
| hide-icon-list | BooleanPredeterminado: False | Oculta los iconos de la lista. |
| hide-icon-modal | BooleanPredeterminado: False | Oculta el icono de los modales. |
| hide-text-label-button | BooleanPredeterminado: False | Oculta el texto del botón. |
| hide-text-label-list | BooleanPredeterminado: False | Oculta los textos de la lista. |
| hide-checkmark | BooleanPredeterminado: False | Tras pulsar, una marca indica que el evento se guardó, salvo sin etiquetas, con buttons-list o atcb_action. Esta opción también la desactiva en los demás casos. |
| past-date-handling | StringOpciones: none, disable, hidePredeterminado: none | Define qué ocurre con un evento pasado: «disable» desactiva el botón y «hide» lo oculta. No se aplica a eventos recurrentes. |
| size | StringX|X|XPredeterminado: 6|6|6 | Número de 0 a 10. Un valor se aplica siempre; hasta tres corresponden a pantallas grandes, medianas y pequeñas. Con dos, el segundo sirve para medianas y pequeñas. |
| light-mode | StringOpciones: system, dark, light, bodySchemePredeterminado: light | Elige claro, oscuro, el ajuste del sistema o «bodyScheme», que sigue las clases «atcb-dark» o «dark» de html/body. |
| language | StringOpciones: ar, az, be, bg, bs, cs, da, de, el, en, es, et, fa, fi, fr, he, hi, hr, hu, hy, id, it, ja, ka, ko, lt, lv, mk, mt, nb, nl, nn, no, pl, pt, pt_BR, ro, ru, sk, sl, sq, sr, sr_latin, sv, tr, uk, vi, zh, zh_hantPredeterminado: en | Selecciona las traducciones incluidas, con RTL. El inglés está integrado; los demás idiomas se cargan bajo demanda o por import. Las configuraciones regionales completas prefieren su paquete y formato de fecha regional. |
| custom-labels | Object | Sustituye los textos mediante JSON y claves planas como |
| style-light | String | Sustituye las variables CSS globales del botón. Consulta los archivos CSS del repositorio. style-light es el valor predeterminado; define style-dark para el modo oscuro. |
| style-dark | String | Sustituye las variables CSS globales del botón; consulta el inicio del archivo CSS correspondiente en el repositorio. |
Parámetros adicionales
| Nombre(Valor) | Detalles | |
|---|---|---|
| images | ArrayURLs | Enriquece los datos de schema.org. Usa al menos una imagen absoluta de 720 px; idealmente tres de 1920 px en 1x1, 4x3 y 16x9. |
| hide-rich-data | BooleanPredeterminado: False | Desactiva los datos de schema.org generados automáticamente cuando se definen name, start-date y location. |
| identifier | StringPredeterminado: Número ascendente | Define el identificador legible usado para seguimiento; por defecto un número ascendente, único y sin caracteres especiales. |
| bypass-web-view-check | BooleanPredeterminado: False | Omite la ayuda de WebView de iPhone solo en tu propia app si la descarga se abre en el navegador y se proporciona ics-file. |
| hide-branding | BooleanPredeterminado: False | Elimina la discreta marca que apoya este proyecto gratuito de código abierto, respetando la licencia. |
| cspnonce | String | Añade «nonce» a scripts y estilos en línea para políticas CSP estrictas. |
| instance | Number | Incrementa el valor para forzar un nuevo renderizado. |
| pro-override | BooleanPredeterminado: False | Permite que los ajustes locales sustituyan los de la app PRO. Puede provocar incoherencias. |
| debug | BooleanPredeterminado: False | Muestra errores de configuración en la consola y en lugar del calendario; útil durante la primera integración. |