2008-12-02 2 views
15

Ich muss zulassen, dass ein Benutzer ein Ereignis mit mehreren Besprechungsterminen herunterladen kann. Um dies zu tun, habe ich einen Speicherstream erstellt, der heruntergeladen werden soll und eine .ics-Datei erzeugt. Zum Beispiel:So erstellen Sie eine .ICS-Datei mit mehreren VEVENTs, die in einen vorhandenen Outlook-Kalender importiert werden sollen

 
BEGIN:VCALENDAR 
PRODID:-//Company//Product//EN 
VERSION:2.0 
METHOD:PUBLISH 
BEGIN:VEVENT 
SUMMARY:Subject of Event 
LOCATION:Location of Event 
UID:[email protected] 
DESCRIPTION:Some description 
DTEND:20081101T200000Z 
DTSTART:20081101T200000Z 
PRIORITY:3 
END:VEVENT 
BEGIN:VEVENT 
    ... 
END:VEVENT 
END:VCALENDAR 

Wenn ich nur eine VEVENT in dieser Datei enthalten wird es in meinem vorhandenen Outlook-Kalender speichern. Wenn ich jedoch mehrere VEVENTs habe, möchte ich sie als neuen Kalender öffnen und unter "Andere Kalender" ablegen.

Gibt es einen Weg (ohne Datei - Import aus Outlook), um anzugeben, dass der Kalender beim Öffnen automatisch in den vorhandenen Kalender importiert werden soll?

UPDATE: Um zu klären, bezieht sich jeder VEVENT auf einen einzigen "Termin". Es kann jedoch ein wiederkehrendes Muster geben oder auch nicht.

-Mike

+0

Ist es der gleiche Termin, mit einem Wiederholungsmuster oder sind die Termine nicht miteinander verbunden? – Tomalak

+0

Es ist der gleiche Termin ... leider kann es ein wiederkehrendes Muster geben oder auch nicht. Zum Beispiel trifft es sich am Dienstag diese Woche und Mittwoch die nächste Woche, usw. – mwilkes

+0

Ich nehme an, dass "VBEGIN" ein Tippfehler ist? – Tomalak

Antwort

3

Ich glaube nicht, dass dies funktioniert. Outlook ist beim Importieren dieser "offenen" Spezifikationen eingeschränkt. Ich hatte ein ähnliches Problem beim Importieren einer vCard-Datei mit mehreren Kontakten. Ich habe die Datei aufgeteilt und ein Skript in Outlook geschrieben, um alle Dateien in einem Verzeichnis zu importieren.

+1

Ja, ich dachte die gleiche Sache. Mehrere Ereignisse funktionieren jedoch für einen abonnierten ICS-Kalender. – Tomalak

3

Dies ist möglich, mit einem Internet-Kalender (wie von Google). Outlook 2007 bietet die Möglichkeit, einen Internetkalender (unter Kontoeinstellungen) zu abonnieren, und Outlook 2003 verfügt über ein Open-Source-Plug-in. Sie könnten einen barrierefreien Feed erstellen, der schreibgeschützt ist. Das Format ist wie

BEGIN:VCALENDAR 
PRODID:-//XYZ Corp//My Product//EN 
VERSION:2.0 
CALSCALE:GREGORIAN 
METHOD:PUBLISH 
X-WR-CALNAME:My Calendar 
X-WR-TIMEZONE:(GMT-05:00) Eastern Time (US & Canada) 
BEGIN:VEVENT 
DTSTART:20061021T100000Z 
DTEND:20061021T130000Z 
DTSTAMP:20090211T175526Z 
UID:5f98dfd5-ac72-4ae1-b3c2-799a4e7c91f9 
CLASS:PUBLIC 
CREATED:20071104T183833Z 
DESCRIPTION: My description text. 
LAST-MODIFIED:20071104T183833Z 
LOCATION: 123 Anywhere Street\; Anyplace, NJ 12345\; US 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY: My summary text. 
TRANSP:OPAQUE 
END:VEVENT 
BEGIN:VEVENT 
DTSTART:20061101T170000Z 
DTEND:20061101T180000Z 
DTSTAMP:20090211T175526Z 
UID:6eaef015-eb90-4e94-8e6c-0003b928969a 
CLASS:PUBLIC 
CREATED:20071104T183833Z 
DESCRIPTION: My description for number 2. 
LAST-MODIFIED:20071104T183833Z 
LOCATION: 123 Anywhere Street\; Anyplace, NJ 12345\; US 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY: My summary for #2. 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 
+0

Versucht mit dieser und bekam einen Fehler, dass es keine gültige ics-Datei ist. – jcaruso

1

dies ein Beispiel für drei Fußball-WM 2010 Matches auf Aussichten, ich vermute, dass das ist, was Sie suchen ...

BEGIN:VCALENDAR 

PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN 

VERSION:2.0 

METHOD:PUBLISH 

X-CALSTART:20100611T140000Z 

X-CALEND:20100711T201500Z 

X-WR-RELCALID:{0000002E-5A22-AA75-713B-5C3715764495} 

X-WR-CALNAME: World Cup Football Complete Match Schedule 2010 South Africa 

BEGIN:VEVENT 

CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa 

CLASS:PUBLIC 

CREATED:20100608T231102Z 

DESCRIPTION:Group A\nFollow MarkThisDate on Twitter 

    markthisdate 

DTEND:20100611T154500Z 

DTSTAMP:20100513T100200Z 

DTSTART:20100611T140000Z 

LAST-MODIFIED:20100608T231102Z 

LOCATION:Johannesburg 

PRIORITY:5 

SEQUENCE:0 

SUMMARY:South Africa - Mexico 

TRANSP:TRANSPARENT 

UID:[email protected] 

X-MICROSOFT-CDO-BUSYSTATUS:FREE 

X-MICROSOFT-CDO-IMPORTANCE:1 

END:VEVENT 

BEGIN:VEVENT 

CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa 

CLASS:PUBLIC 

CREATED:20100608T231102Z 

DESCRIPTION:Group A\nFollow MarkThisDate on Twitter 

    markthisdate 

DTEND:20100611T201500Z 

DTSTAMP:20100513T100200Z 

DTSTART:20100611T183000Z 

LAST-MODIFIED:20100608T231102Z 

LOCATION:Cape Town 

PRIORITY:5 

SEQUENCE:0 

SUMMARY:Uruguay - France 

TRANSP:TRANSPARENT 

UID:[email protected] 

X-MICROSOFT-CDO-BUSYSTATUS:FREE 

X-MICROSOFT-CDO-IMPORTANCE:1 

END:VEVENT 

BEGIN:VEVENT 

CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa 

CLASS:PUBLIC 

CREATED:20100608T231102Z 

DESCRIPTION:Group B\nFollow MarkThisDate on Twitter 

    markthisdate 

DTEND:20100612T131500Z 

DTSTAMP:20100513T100200Z 

DTSTART:20100612T113000Z 

LAST-MODIFIED:20100608T231102Z 

LOCATION:Nelson Mandela Bay/Port Elizabeth 

PRIORITY:5 

SEQUENCE:0 

SUMMARY:Korea Republic - Greece 

TRANSP:TRANSPARENT 

UID:[email protected] 

X-MICROSOFT-CDO-BUSYSTATUS:FREE 

X-MICROSOFT-CDO-IMPORTANCE:1 

END:VEVENT 

END:VCALENDAR 
+0

Ich bin daran interessiert, diese Methode zu überprüfen. Sieht so aus, als könnten Sie mehr Beispiele bei markthisdate bekommen.com (woher kommt die Quelle dieses Beispiels?), obwohl ich nicht sicher bin, ob es auf Outlook funktioniert oder nicht (auf einem Mac) – cwd

+0

Nein, es ist nicht, weil es nicht in den aktuellen Kalender importiert wird . – jcaruso

1

Stellen Sie sicher, Sie verwenden eine einzigartige UID für jeden VEVENT. Wenn Sie für jeden VEVENT dieselbe UID verwenden, würden Sie genau das Verhalten sehen, das Sie beschreiben, da nur eindeutige UIDs verarbeitet und dem Kalender hinzugefügt werden.

HTH.

1

Dies sollte möglich sein:/das folgende funktioniert mit Google, und lädt in Entourage fein. Outlook scheint einige Probleme zu haben, wird aber weiter schauen.

HINWEIS - Dies importiert korrekt in Outlook, wenn Sie Datei> importieren usw. verwenden, es ist nur ein Doppelklick, der bewirkt, dass es nur das erste Ereignis lädt.

BEGIN:VCALENDAR 
PRODID:-//Google Inc//Google Calendar 70.9054//EN 
VERSION:2.0 
CALSCALE:GREGORIAN 
METHOD:PUBLISH 
X-WR-CALNAME:Insert something 
X-WR-TIMEZONE:Insert something 
X-WR-CALDESC: 

BEGIN:VEVENT 
DTSTART:20110909T180000Z 
DTEND:20110909T200000Z 
DTSTAMP:20110722T004312Z 
UID:[email protected] 
CREATED:20110721T105553Z 
DESCRIPTION: 
LAST-MODIFIED:20110721T105554Z 
LOCATION:Insert something 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:Insert something 
TRANSP:OPAQUE 
BEGIN:VALARM 
ACTION:DISPLAY 
DESCRIPTION:This is an event reminder 
TRIGGER:-P0DT0H10M0S 
END:VALARM 
END:VEVENT 

BEGIN:VEVENT 
DTSTART:20110909T083000Z 
DTEND:20110909T103000Z 
DTSTAMP:20110722T004312Z 
UID:[email protected] 
CREATED:20110721T105410Z 
DESCRIPTION: 
LAST-MODIFIED:20110721T111008Z 
LOCATION:Auckland 
SEQUENCE:1 
STATUS:CONFIRMED 
SUMMARY:Insert something 
TRANSP:OPAQUE 
BEGIN:VALARM 
ACTION:DISPLAY 
DESCRIPTION:Insert something 
TRIGGER:-P0DT0H10M0S 
END:VALARM 
END:VEVENT 

END:VCALENDAR