📅 Exporting ICS (Calendar) Files for Business Central 💡(English Version)
📅 Exportación de archivos ICS (Calendario) para Business Central 💡
Business Central maneja información crítica de tiempo y planificación en múltiples áreas, como lo son reuniones con clientes, fechas de envío de pedidos, fechas de contabilización, y planificación de proyectos. Sin embargo, esta información sensible y muy útil la tenemos desconectada de las herramientas de calendario que los usuarios utilizan diariamente como Outlook, Teams, Google Calendar, Apple Calendar.
Esta desconexión podría resultar en fechas perdidas de ejecución y atención de ciertas actividades, con su consecuente reducción de productividad o ejecución de doble trabajo.
Por lo que, la idea de esta publicación es de ofrecer una solución para este vacío de una manera ágil, no invasiva y escalable. Apoyándonos en estándares universales para la integración con los calendarios:
- RFC 5545: Internet Calendaring and Scheduling Core Object Specification (iCalendar).
- Formato ICS: Universalmente soportado por todas las plataformas de calendario.
Algunos ejemplos reales que nos podemos enfrentar para tener la necesidad de planificarlo en un calendario serían:
- Reuniones con clientes: Desde la ficha del cliente, generar un evento de calendario para una cita específica.
- Gestión de pedidos: Desde la ficha del pedido de venta, generar un evento de calendario para atender actividades relacionadas a la fecha de envío del mismo.
La solución (extensión) implementa dos enfoques complementarios para la integración de calendario:
- 📊 Integración a Nivel de Registro: Acciones contextuales desde páginas principales.
- 🎯 Integración a Nivel de Campo: Asistencia directa en campos de fecha con indicadores visuales.
El flujo del patrón de interacción sería el siguiente:

Demo Opción 1: Integración a Nivel de Registro
- Contexto: Usuario trabajando en la página «Customer Card» de un cliente cualquiera.
- Trigger: Click en action «🗓️ Create Calendar Event».

Sistema preconfigura evento con:
- 📝 Título: «Meeting with [Customer Name]»
- 📍 Ubicación: Dirección completa del cliente.
- 👤 Organizador: Email del usuario actual.
- ⏰ Fecha: Próximo día laborable.
Además de ✏️ Campos personalizables como la descripción, prioridad, duración, evento de día completo.

Demo Opción 2: Integración a Nivel de Campo
- Contexto: Usuario trabajando en la página de «Sales Order» (Pedido de Venta) de un cliente cualquiera.
- Trigger: Click en AssistEdit del campo «📅 Posting Date».
- 📅 Emoji: Identifica campos con funcionalidad de calendario.
- 🔧 AssistEdit: Botón de ayuda para configuración de eventos.
- 🎯 Extensibilidad: El patrón puede aplicarse a cualquier campo de fecha en Business Central

Sistema preconfigura evento con:
- 📝 Título: «Posting – Order 101002».
- 📍 Ubicación: «Administrative Department».
- ⚠️ Prioridad: High (tarea administrativa crítica)
- 👤 Organizador: Email del usuario actual.
- ⏰ Fecha: Fecha seleccionada a las 9:00 AM
Además de ✏️ Campos personalizables como la descripción, prioridad, duración, evento de día completo.

En ambas opciones, el botón de Create Calendar Event genera un archivo ICS (Archivo RFC 5545 compliant), se descarga automáticamente y se confirma visualmente con un mensaje de éxito con el nombre del archivo.

El contenido del archivo ICS es similar al siguiente:

El archivo ICS generado se integra automáticamente con todas las plataformas de calendario modernas. Como Microsoft Teams/Outlook Calendar o Google Calendar.


El código se encuentra aquí, por si quieres revisarlo: Blog/GDRGDev_ICSFileGenerator at main · gdrgdev/Blog
Los objetos son los siguientes:
- Tabla – ICS Event Data Buffer: Tabla temporal para datos de eventos de calendario.
- Codeunit – ICSFileGenerator: Generador principal de archivos ICS con cumplimiento RFC 5545.
- Codeunit – ICS Business Helper: Lógica de negocio para eventos contextuales.
- Codeunit – ICS Assist Edit Manager: Lógica del evento AssistEdit de los campos.
- Página – ICS Event Configuration: Configuración de eventos de calendario.
- Extensión de Página – Sales Order ICS Export: Añade funcionalidad de calendario a Pedidos de Venta.
- Extensión de Página – Customer Card ICS Export: Añade funcionalidad de calendario a la ficha del Cliente.
- Conjunto de Permisos – ICSFilePermSet: Permisos para todos los objetos de la extensión.
De esta manera, con esta solución, tienes un evento perfectamente configurado en tu calendario, sin copiar datos manualmente, optimizando la productividad.
Espero que esta información te ayude.
📅 Exporting ICS (Calendar) Files for Business Central 💡
Business Central handles critical time and planning information in multiple areas, such as client meetings, order shipping dates, accounting dates, and project planning. However, this sensitive and highly useful information is disconnected from the calendar tools users use daily, such as Outlook, Teams, Google Calendar, and Apple Calendar.
This disconnection could result in missed deadlines for certain activities, with the resulting reduction in productivity or the execution of duplicate work.
Therefore, the idea of this post is to offer a solution to this gap in an agile, non-invasive, and scalable way. Relying on universal standards for calendar integration:
- RFC 5545: Internet Calendaring and Scheduling Core Object Specification (iCalendar).
- ICS Format: Universally supported by all calendar platforms.
Some real examples that we may face that would require planning on a calendar would be:
- Customer Meetings: From the customer’s card, generate a calendar event for a specific appointment.
- Order management: From the sales order page, generate a calendar event to address activities related to the order’s shipping date.
The solution (extension) implements two complementary approaches to calendar integration:
- 📊 Record-Level Integration: Contextual actions from main pages.
- 🎯 Field Level Integration: Direct support for date fields with visual indicators.
The flow of the interaction pattern would be as follows:

Demo Option 1: Record Level Integration
- Context: User working on «Customer Card» page.
- Trigger: Click the «🗓️ Create Calendar Event» action.

BC preconfigures event with:
- 📝 Title: «Meeting with [Customer Name]»
- 📍 Location: Customer’s full address.
- 👤 Organizer: Current user’s email.
- ⏰ Date: Next business day.
Plus ✏️ Customizable fields like description, priority, duration, and all-day event.

Demo Option 2: Field Level Integration
- Context: User working on «Sales Order» page.
- Trigger: Click AssistEdit on the «📅 Posting Date» field.
- 📅 Emoji: Identifies fields with calendar functionality.
- 🔧 AssistEdit: Help button for event configuration.
- 🎯 Extensibility: The pattern can be applied to any date field in Business Central.

BC preconfigures event with:
- 📝 Title: «Posting – Order 101002».
- 📍 Location: «Administrative Office».
- ⚠️ Priority: High (critical administrative task)
- 👤 Organizer: Current user’s email.
- ⏰ Date: Selected date at 9:00 AM
Plus ✏️ Customizable fields like description, priority, duration, and all-day event.

In both options, the «Create Calendar Event» button generates an ICS (RFC 5545 compliant file), which is automatically downloaded and visually confirmed with a success message containing the file name.

The contents of the ICS file are similar to the following:

The generated ICS file automatically integrates with all modern calendar platforms, such as Microsoft Teams/Outlook Calendar or Google Calendar.


The code is here, if you want to check it out: Blog/GDRGDev_ICSFileGenerator at main · gdrgdev/Blog
The objects are:
- Table – ICS Event Data Buffer: Temporary table for calendar event data.
- Codeunit – ICSFileGenerator: Main ICS file generator with RFC 5545 compliance.
- Codeunit – ICS Business Helper: Business logic for contextual events.
- Codeunit – ICS Assist Edit Manager: AssistEdit event logic for fields.
- Page – ICS Event Configuration: Calendar event configuration.
- Page Extension – Sales Order ICS Export: Adds event creation to Sales Orders.
- Page Extension – Customer Card ICS Export: Adds event creation to Customer Card.
- Permission Set – ICSFilePermSet: Permissions for all extension objects.
This way, with this solution, you have a perfectly configured event in your calendar, without having to manually copy data, optimizing productivity.
I hope this information helps you.
Más información / More information:



Deja un comentario