asp.net-mvc - ical net ics




Dov'รจ la documentazione ufficiale per la programmazione di un "abbonamento al calendario internet" di Outlook? (2)

Esistono fonti ufficiali per la programmazione di un " abbonamento al calendario internet " di Outlook, descritto nel collegamento come

Un abbonamento al calendario Internet è un calendario scaricato e visualizzato in Outlook. Tuttavia, a differenza di un'istantanea del calendario, le iscrizioni al calendario Internet vengono aggiornate automaticamente.

Sto usando ASP.NET MVC e la libreria DDay.iCal . Non sono riuscito a creare un calendario del genere. Ho bisogno di risposte a domande specifiche. Sono stanco di indovinare. E non accetterò codice casuale, link a articoli codeproject scaduti o qualsiasi altra cosa non autorevole.

L'unica informazione concreta che ho è che l'URL deve

  • iniziare con webcal://
  • terminare con un nome file .ics

Devo generare un calendario unico e aggiornato per utente, preferibilmente ogni volta che Outlook esegue il polling dell'indirizzo. Voglio evitare di agganciare gli aggiornamenti del calendario nelle parti CRUD del sito. Quindi, ho bisogno di sapere alcune specifiche su ciò che Outlook accetta.

  • Posso utilizzare un controller / azione che restituisce un FileResult (o una derivata: flusso, contenuto, percorso) per generare dinamicamente il calendario quando Outlook raggiunge l'indirizzo?

  • Posso "falsificare" la parte di file / nome file ICS dell'URL decorando l'azione, come [ActionName("iCalFeed.ics")] ?

  • Posso utilizzare ActionLink per creare il collegamento webcal per l'azione, ad esempio <%= Html.ActionLink("Connect to Outlook", "iCalFeed.ics", "Schedule", "webcal", null, null, null, null) %> ?

Ho provato alcune di queste cose in un modo ad hoc e Outlook ama apparire e gestire i collegamenti webcal , ma non mostra nulla e non visualizza messaggi di errore. C'è un posto dove scavare per gli errori di importazione del calendario Web di Outlook?

Se no alle domande precedenti, c'è un altro modo per offrire contenuti freschi ogni volta che Outlook esegue il polling dell'indirizzo? Preferirei non aggiornare il calendario in sincronia con le operazioni CRUD sul sito. Sembra più complicato del necessario.

In entrambi i casi, ho anche bisogno di sapere quali parti della specifica di iCalendar in Outlook richiede di avere un "abbonamento" che aggiorna correttamente. Ho importato un file ICS valido come una normale "istantanea" con una data / ora di inizio / fine, un riepilogo e una posizione. Ma, a quanto pare, ci sono alcune parti difficili delle specifiche, come

  • Devo impostare METHOD (metodo RFC2445 4.7.2)? Non riesco nemmeno a trovare una descrizione decente di questa proprietà o dei valori che accetta (è specifica del cliente?).

  • Devo tenere traccia degli UID degli eventi e modificare la loro disposizione in base alle operazioni CRUD del mio sistema? Oppure l'aggiunta / rimozione / aggiornamento degli eventi dal calendario al polling successivo è sufficiente per consentire a Outlook di capirlo? Se devo tenere traccia, ora devo aggiungere un intero livello di persistenza e consapevolezza dello stato alla mia applicazione.

  • Se tengo traccia, ho notato in altre domande su SO che Outlook è davvero pignolo riguardo alla proprietà ORGANIZER ... deve essere un indirizzo email o no? Un mailto: link o solo un indirizzo?

Sono alla fine della mia corda. Sono disposto a leggere la documentazione se risponde alle domande sulla creazione effettiva di un sito Web che genera abbonamenti di calendario appropriati. Non ho trovato nulla su MSDN tranne questo strano "algoritmo" di conversione . E, per quanto posso dire, è inutile.

Per essere chiari, posso generare un file ICS di base per qualsiasi utente e avviarlo manualmente in Outlook. Non riesco affatto a far funzionare nessuno dei miei collegamenti web.

Entrano in gioco queste altre RFC di calendario: iTIP e iMIP ?


Devo impostare METHOD (metodo RFC2445 4.7.2)? Non riesco nemmeno a trovare una descrizione decente di questa proprietà o dei valori che accetta (è specifica del cliente?).

Per i metodi, consultare le specifiche WebDav e CalDav .

Calendaring Estensioni su WebDAV (CalDAV

Questo documento definisce le estensioni del protocollo Web Distributed Authoring and Versioning (WebDAV) per specificare un metodo standard di accesso, gestione e condivisione delle informazioni di calendario e di pianificazione in base al formato iCalendar. Questo documento definisce la funzione "calendario-accesso" di CalDAV.

METODO (metodo RFC2445 4.7.2)?

RFC 2445 è stato reso obsoleto dalla RFC 5545, quindi potresti essere interessato alle differenze tra il 5545 e il 2445 in modo che tu possa provare ad adattarsi all'intersezione dei due.

Sono alla fine della mia corda. Sono disposto a leggere la documentazione se risponde alle domande sulla creazione effettiva di un sito Web che genera abbonamenti di calendario appropriati.

Tutti questi standard sono gestiti da CalConnect che ha elenchi di discussione che potresti trovare utile.

Mi spiace di non poter essere più utile, dal momento che ho pochissima esperienza pratica personale con Outlook, ma ci sono molte persone coinvolte con CalConnect che conoscono tutte le minuzie di interopzione.


Non ho ancora trovato alcuna documentazione adeguata, ma ho scoperto alcuni dei comportamenti di Outlook. Riguardo al requisito di web / ics per un "abbonamento al calendario internet"

  • Outlook può utilizzare un indirizzo http://
  • Outlook può utilizzare una route che non termina con .ics

Puoi provarli tu stesso in Outlook | Apri calendario | Da Internet. Probabilmente vorrai comunque utilizzare un link ActionLink / webcal in modo che il tuo browser ti chieda di avviare un'applicazione in grado di gestire la richiesta.

Per quanto riguarda il resto del controller / requisiti di azione ...

  • Outlook fa una richiesta anonima *
  • Outlook può accettare un tipo di azione di controller binario / stream / stringa FileResult

* Probabilmente dovrai consentire l'anonimato esplicitamente per quella rotta. Nel mio sistema, ho dovuto ignorare l'autenticazione dei miei moduli utilizzando un tag <location> con <allow users="?" /> <allow users="?" /> . Se hai bisogno di sicurezza, guarda cosa fa Google. Creano un URL contenente un token GUID per utente / calendario e ti chiedono di proteggerlo.





icalendar