Botones de añadir al calendario para tu app de Base44
Una reserva que no está en el calendario del usuario es una ausencia anunciada. En iOS, WebViewGold permite añadir un evento a la app Calendario desde un enlace normal a un archivo .ics, así que tu app de Base44 no necesita más que una URL que devuelva el evento. Android no tiene una API de calendario dedicada en WebViewGold; aquí tienes lo que funciona allí en su lugar.
Desde $109 de pago único por plataforma, o deja que nuestro equipo lo haga todo desde $698.
Garantía de aprobación – o te devolvemos el dinero en 14 días
Sin programar
Pago único, actualizaciones gratuitas
Soporte humano 24/7
Hecho en Alemania desde 2014 · ISO 27001
9:41
BBase44
Eventos de calendarioYa en tu bolsillo
App Store · Google Play Aprobada
Lo que funciona en cada plataforma
iOS: enlace a un archivo .ics
WebViewGold está preparado para Calendario (antes iCal): un enlace normal a un archivo .ics permite al usuario añadir la entrada al calendario del iPhone o iPad. Sin esquema de URL ni puente JavaScript, y la web app nunca lee el calendario del usuario; solo ofrece un evento.
Android: descarga o Google Calendar
La documentación de Android no incluye una API de calendario. Funcionan dos rutas: añade .ics a downloadableExtension en Config.java para que el archivo se descargue y pueda abrirse con una app de calendario que importe archivos .ics, y ofrece un enlace "Añadir a Google Calendar" que se abra fuera de la app.
Un archivo de evento por reserva
Tu servidor devuelve un pequeño archivo de texto (un VCALENDAR con un VEVENT) por cada reserva, clase o cita. La misma URL sirve para el sitio web, la app de iOS y la descarga en Android.
Prompt para Base44
Pega esto en Base44 para implementar la parte de la web app. Revisa el resultado, publica y luego prueba dentro de la app WebViewGold.
Prompt para pegar en Base44
Añade una función Añadir al calendario a las reservas que funcione en nuestra app móvil de WebViewGold. 1) Cuando se cree una Booking o cambie su hora, construye un texto iCalendar con un VEVENT: UID booking-ID@ourapp, DTSTAMP, DTSTART y DTEND en UTC terminados en Z, SUMMARY con el nombre del servicio, LOCATION, DESCRIPTION con un enlace a la página de la reserva y un recordatorio una hora antes. 2) Súbelo como archivo llamado booking-ID.ics usando la integración de subida de archivos integrada y guarda la URL en un nuevo campo calendar_file_url de Booking. 3) En la página de la reserva, muestra un enlace Añadir al calendario a calendar_file_url que se abra en la misma pestaña. 4) Cuando navigator.userAgent contenga WebViewGold-Android, muestra también Añadir a Google Calendar con un enlace calendar.google.com/calendar/render?action=TEMPLATE construido a partir de los campos de la reserva. 5) Mantén el mismo UID en cada actualización para que los calendarios no muestren duplicados.
¡Estoy muy feliz de haber comprado esta aplicación! Documentación extremadamente fácil y excelente. Estaba en contacto con el servicio al cliente, respondieron muy rápido y de forma muy amigable. Resolvieron mi pregunta en un día. 10/10 lo recomendaría".
Alrededor de una hora, la mayor parte para el endpoint .ics.
Crea el endpoint .ics
Añade una ruta como /calendar/BOOKING_TOKEN.ics que devuelva el evento con Content-Type: text/calendar; charset=utf-8. Mantén la ruta terminada en .ics, como en el ejemplo de WebViewGold, y usa un token imposible de adivinar en lugar de depender de la sesión iniciada.
Rellena los campos importantes
Un UID estable por reserva, DTSTAMP, DTSTART y DTEND en UTC (terminados en Z), SUMMARY, LOCATION y una DESCRIPTION con un enlace de vuelta a la reserva. Escapa las comas y los puntos y coma del texto.
Enlázalo en la misma pestaña
Un simple <a href="https://yourdomain.com/calendar/TOKEN.ics">. No lo abras en una ventana nueva ni con target="_blank"; un WebView no tiene dónde mostrarla.
Resuelve Android
Añade .ics a downloadableExtension en Config.java para la ruta de descarga, y muestra un enlace "Añadir a Google Calendar" con calendar.google.com en BROWSER_BLACKLIST, para que se abra en el navegador del sistema, donde la mayoría de los usuarios tienen la sesión de Google iniciada, y no dentro del WebView.
Prueba en dispositivos reales
Añade un evento en un iPhone y luego revisa la zona horaria, la duración y el enlace de la descripción. En Android, prueba teléfonos de dos fabricantes; las apps de calendario difieren en cómo abren los archivos .ics descargados.
Un archivo .ics mínimo
Esto es todo lo que necesita un calendario. Según la especificación iCalendar, las líneas terminan en CRLF; las bibliotecas se encargan de ello. Parte de servidor de tu stack: Entidades integradas de Base44 (base de datos), almacenamiento de archivos y funciones de backend.
text
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//YourApp//Bookings//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
UID:[email protected]
DTSTAMP:20261101T120000Z
DTSTART:20261205T170000Z
DTEND:20261205T180000Z
SUMMARY:Clase de yoga
LOCATION:Estudio 2\, Calle Mayor 14
DESCRIPTION:Gestiona tu reserva: https://yourdomain.com/bookings/123
BEGIN:VALARM
TRIGGER:-PT1H
ACTION:DISPLAY
DESCRIPTION:Clase de yoga dentro de una hora
END:VALARM
END:VEVENT
END:VCALENDAR
La lógica del botón
El enlace .ics en todas partes y el enlace de Google Calendar como extra en Android y en escritorio:
javascript
// User agents personalizados: "... WebViewGold-iOS" (Config.swift), "... WebViewGold-Android" (Config.java)
var ua = navigator.userAgent;
var IS_ANDROID_APP = ua.indexOf("WebViewGold-Android") !== -1;
var IS_IOS_APP = ua.indexOf("WebViewGold-iOS") !== -1;
function icsUrl(b) { return "https://yourdomain.com/calendar/" + b.token + ".ics"; }
function googleCalendarUrl(b) {
var f = function (d) { return d.toISOString().replace(/[-:]|\.\d{3}/g, ""); };
return "https://calendar.google.com/calendar/render?action=TEMPLATE" +
"&text=" + encodeURIComponent(b.title) +
"&dates=" + f(b.start) + "/" + f(b.end) +
"&details=" + encodeURIComponent(b.url) +
"&location=" + encodeURIComponent(b.location);
}
// Renderizado: siempre el enlace .ics; el de Google salvo si IS_IOS_APP
Errores frecuentes
Zonas horarias: escribe las horas en UTC con una Z final, o incluye un bloque VTIMEZONE correcto. Las horas locales flotantes se desplazan para quien viaja y para usuarios de otras zonas.
Un UID nuevo en cada descarga puede crear duplicados. Mantén un UID por reserva; cómo trata un calendario una reimportación depende de la app.
URLs .ics protegidas con login: puede que la petición que descarga el archivo no lleve la sesión web del usuario. Un token aleatorio por reserva es la opción fiable.
Las suscripciones de calendario (feeds webcal://) son otra función; la documentación de WebViewGold cubre archivos .ics individuales.
¿Tiene WebViewGold una API de calendario para Android?
No una dedicada; la integración de calendario de la documentación es solo para iOS. En Android, ofrece el archivo .ics como descarga (añade .ics a downloadableExtension en Config.java) y un enlace Añadir a Google Calendar que se abra fuera de la app.
¿Puede la app leer el calendario del usuario para comprobar la disponibilidad?
No. El flujo .ics solo ofrece un evento que el usuario añade. La disponibilidad se gestiona en tu servidor, a partir de tus propios datos de reservas.
¿Puedo añadir eventos recurrentes o recordatorios?
Sí, dentro del archivo .ics: una línea RRULE para clases que se repiten y un bloque VALARM para un recordatorio. Cómo aparece el recordatorio depende de la app de calendario del usuario; para recordatorios que controles tú, usa notificaciones push.
¿Cómo genero el archivo .ics para mi app de Base44?
Una pequeña ruta en el servidor construye el texto. Para un solo evento no hace falta ninguna biblioteca, aunque ical-generator (Node) o icalendar (Python) ayudan con los eventos recurrentes y el escapado. Pide a Base44 un endpoint que devuelva text/calendar para un token de reserva.
¿Los enlaces de calendario también funcionan en el navegador?
Sí. La misma URL .ics descarga o abre el evento en navegadores de escritorio y móviles, así que un solo botón sirve para el sitio web y para ambas apps.
Tres formas de llevar tu app a las tiendas
El mismo resultado, con distinta cantidad de trabajo por tu parte. Las tres incluyen la garantía de aprobación y soporte humano 24/7.
Hazlo tú mismo
$109 por plataforma, pago único
La licencia de WebViewGold: un proyecto de Xcode o Android Studio listo para usar. Pega tu URL, define nombre e icono, activa funciones, compila y envía. Actualizaciones gratuitas para siempre.
Sin Mac, sin Xcode, sin Android Studio: configura en el navegador, compilamos ambas apps en la nube y las entregamos a App Store Connect y a Play Console.
Envíanos tu URL y tu icono. Nuestro equipo configura, compila y entrega tu app en 72 horas, en marca blanca y con los proyectos fuente. Ambas plataformas por $1,158.
Los reembolsos se conceden bajo las condiciones indicadas en nuestras FAQ: un rechazo por motivos ajenos al contenido por parte de Apple y/o Google, reclamado dentro de los 14 días posteriores a la compra.