read office asp.net-mvc outlook icalendar

asp.net mvc - office - ¿Dónde está la documentación oficial para programar una "suscripción al calendario de Internet" de Outlook?



outlook oauth2 (2)

¿Hay alguna fuente oficial para programar una " suscripción al calendario de Internet " de Outlook, descrita en el enlace como

Una suscripción a Internet Calendar es un calendario que descarga y ve en Outlook. Sin embargo, a diferencia de una instantánea de calendario, las suscripciones de calendario de Internet se actualizan automáticamente.

Estoy usando ASP.NET MVC y la biblioteca DDay.iCal . No he tenido éxito al crear un calendario así. Necesito respuestas a preguntas específicas. Estoy cansado de adivinar. Y no aceptaré código aleatorio, enlaces a artículos obsoletos del proyecto de código ni nada que no sea de autoridad.

La única información concreta que tengo es que la URL debe

  • comenzar con webcal://
  • terminar con un nombre de archivo .ics

Tengo que generar un calendario único y actualizado por usuario, preferiblemente cada vez que Outlook sondea la dirección. Quiero evitar enganchar las actualizaciones del calendario en las partes CRUD del sitio. Entonces, necesito saber algunos detalles sobre lo que acepta Outlook.

  • ¿Puedo usar un controlador / acción que devuelve un FileResult (o derivado: secuencia, contenido, ruta) para generar dinámicamente el calendario cuando Outlook golpea la dirección?

  • ¿Puedo "falsificar" la parte del archivo ICS / nombre de archivo de la URL decorando la acción, como [ActionName("iCalFeed.ics")] la acción [ActionName("iCalFeed.ics")] ?

  • ¿Puedo usar un ActionLink para crear el enlace webcal para la acción, como <%= Html.ActionLink("Connect to Outlook", "iCalFeed.ics", "Schedule", "webcal", null, null, null, null) %> ?

He intentado algunas de estas cosas de forma ad-hoc y Outlook adora abrir y manejar enlaces webcal , pero no muestra nada y no muestra ningún mensaje de error. ¿Hay algún lugar para buscar errores de importación en el calendario web de Outlook?

Si no a las preguntas anteriores, ¿hay alguna otra manera de mostrar contenido nuevo cada vez que Outlook sondea la dirección? Prefiero no actualizar el calendario sincronizado con las operaciones CRUD en el sitio. Eso parece más complicado de lo necesario.

De cualquier manera, también necesito saber qué partes de la especificación iCalendar requiere Outlook para tener una "suscripción" que se actualice correctamente. Importé un archivo ICS válido como una "instantánea" regular con tan solo una fecha de inicio / finalización, un resumen y una ubicación. Pero, aparentemente, hay algunas partes complicadas de la especificación, como

  • ¿Tengo que configurar el METHOD ( METHOD RFC2445 4.7.2)? Ni siquiera puedo encontrar una descripción decente de esta propiedad o los valores que acepta (¿es específica del cliente?).

  • ¿Debo hacer un seguimiento de los UID de eventos y cambiar su disposición en función de las operaciones CRUD de mi sistema? ¿O es agregar / eliminar / actualizar los eventos del calendario en una encuesta posterior lo suficientemente buena como para que Outlook lo descubra? Si tengo que hacer un seguimiento, ahora tengo que agregar una capa completa de persistencia y conocimiento del estado a mi aplicación.

  • Si estoy haciendo un seguimiento, me he dado cuenta en otras preguntas de SO de que Outlook es muy exigente con la propiedad de ORGANIZER ... ¿tiene que ser una dirección de correo electrónico o no? Un mailto: enlace o solo una dirección?

Estoy al final de mi cuerda. Estoy dispuesto a leer la documentación si responde preguntas sobre la construcción de un sitio web que genere suscripciones de calendario. No he encontrado nada en MSDN excepto este extraño "algoritmo" de conversión . Y, por lo que puedo decir, es inútil.

Para que quede claro, puedo generar un archivo ICS básico para cualquier usuario y ejecutarlo manualmente en Outlook. No puedo obtener ninguno de mis enlaces webcales para trabajar, en absoluto. ¿Estos otros calendarios RFC entran en juego: iTIP e iMIP ?

¿Tengo que configurar el MÉTODO (método RFC2445 4.7.2)? Ni siquiera puedo encontrar una descripción decente de esta propiedad o los valores que acepta (¿es específica del cliente?).

Para los métodos, vea las especificaciones de WebDav y CalDav .

Extensiones de calendario a WebDAV (CalDAV

Este documento define las extensiones del protocolo de creación y control de versiones distribuidas (WebDAV) para especificar una forma estándar de acceder, administrar y compartir información de calendario y programación basada en el formato iCalendar. Este documento define la función de "acceso al calendario" de CalDAV.

MÉTODO (Método RFC2445 4.7.2)?

RFC 2445 fue obsoleto por RFC 5545 por lo que podría estar interesado en las diferencias entre 5545 y 2445 para que pueda tratar de encajar en la intersección de los dos.

Estoy al final de mi cuerda. Estoy dispuesto a leer la documentación si responde preguntas sobre la construcción de un sitio web que genere suscripciones de calendario.

Todos estos estándares son mantenidos por CalConnect que tiene listas de discusión que puede encontrar de uso.

Lo siento, no puedo ser más útil, ya que tengo muy poca experiencia práctica personal con Outlook, pero hay muchas personas involucradas con CalConnect que conocen todas las minucias de la interoperabilidad.


Todavía no he encontrado ninguna documentación adecuada, pero he descubierto algunos de los comportamientos de Outlook. En cuanto al requisito de webcal / ics para una "suscripción a un calendario de Internet"

  • Outlook puede usar una dirección http://
  • Outlook puede usar una ruta que no termina con .ics

Puede probar esto usted mismo en Outlook | Calendario abierto | De Internet. Probablemente aún desee utilizar un enlace ActionLink / webcal para que su navegador le solicite iniciar una aplicación que pueda gestionar la solicitud.

En cuanto al resto de los requisitos de controlador / acción ...

  • Outlook realiza una solicitud anónima *
  • Outlook puede aceptar un tipo de acción de controlador binario / secuencia / cadena FileResult
* Es probable que deba permitir el anonimato explícitamente para esa ruta. En mi sistema, tuve que pasar por alto mi auth de formularios utilizando una etiqueta <location> con <allow users="?" /> <allow users="?" /> . Si necesita seguridad, mire lo que hace Google. Crean una URL que contiene un token GUID por usuario / calendario y le piden que lo proteja.