Wie erstelle ich eine UID für iCal/ics?

Jenseits

Cadet 3rd Year
Registriert
Okt. 2003
Beiträge
48
Hi!

Ich habe ein Terminerinnerungsprogramm geschrieben, dass neuerdings auch ics-Dateien abspeichert. Diese kann ich auch beim Windows Live Kalender importieren, wodurch sie auf meinem Windows Phone 7 landen. Was ich aber leider nicht kann, ist meine ics-Datei von meiner HP aus zu abonnieren, denn dann sagt WL, das die Termine keine UID-Eigenschaft besitzen würden. Ich habe hier schon einiges ausprobiert und alle UIDs, die ich verwendet habe waren auch unique (z.B. verschiedene Daten mit fortlaufender Nummer u.ä.).

Wie kann ich nun eine UID erstellen, die Windows Live akzeptiert?

Grüße,
Jens
 
Ich weiss ja nicht wie genau du die UIDs erzzeugt hast aber in der RFC steht ganz klar drin wie die auszusehen haben. Ich habe auch schon mit ICS gearbeitet und alle meine erzeugten UIDs wurden von allen gaengigen Kalendersoftwares gefressen.

Adobe Live Docs schrieb:
Die UID weist das Format "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" auf, wobei X einem hexadezimalen Zeichen (0-9, A-F) entspricht.

So muss die UID aussehen wenn sie akzeptiert werden soll und wirklich jedes Framework bietet eine Moeglichkeit dies zu generieren. Wenn du mit .net arbeiten solltest dann waere es beispielsweise System.Guid.NewGuid().
 
Danke für die Antwort! (Was für eine Uhrzeit!!)

Mir war nicht bewusst, dass die UID ein bestimmtes Format haben muss.
Hier http://de.wikipedia.org/wiki/ICalendar und hier http://www.kanzaki.com/docs/ical/uid.html sind die ja frei wählbar.

Egal. Ich hab zwei Termine erstellt mit den UIDs 11111111-1111-1111-1111-111111111111 und 11111111-1111-1111-1111-111111111112, aber auch hier sagt er, dass keine UID-Eigenschaft vorhanden ist. Was soll das?
 
Ich merke auch gerade, dass ich mich geirrt habe. Das war nur eine Empfehlung. Wichtig ist, dass du in der RFC nachschlaegst und nicht bei Wiki.
RFC schrieb:
The "UID" itself MUST be a globally unique identifier.
The generator of the identifier MUST guarantee that the identifier
is unique. There are several algorithms that can be used to
accomplish this.[...]

Dafuer schonmal sorry :)
Dann kann es eigetlich nur am Encoding liegen. Welches Encoding nutzt du bzw wie und womit programmierst du ueberhaupt?
 
Hi!

Ich glaube, ich habe den Fehler gefunden. Die UIDs waren alle in Ordnung, das Problem war, dass meine ics Datei einen Namen hatte, wie ein anderer von mir benutzter Kalender. Ich hatte beim Abonnieren für meine ics-Datei zwar einen anderen Kalendernamen angegeben, aber das hat Windows Live wohl nicht gereicht.
Jetzt warten ich seit über 24 Stunden darauf, dass Windows Live meinen abonnierten Kalender endlich aktualisiert, damit ich weiß, dass es auch WIRKLICH klappt. Dauert ja ewig - leider zeigt er nicht an, wann er das tut...

Also, danke für die Hilfe,
Jens
 
The identifier is RECOMMENDED to be the identical syntax to the
[RFC 822] addr-spec. A good method to assure uniqueness is to put the
domain name or a domain literal IP address of the host on which the
identifier was created on the right hand side of the "@", and on the
left hand side, put a combination of the current calendar date and
time of day (i.e., formatted in as a DATE-TIME value) along with some
other currently unique (perhaps sequential) identifier available on
the system (for example, a process id number).

http://www.kanzaki.com/docs/ical/uid.html

alleine auf Grund der Tatsache, dass es sicherlich schlecht implementierte Clients gibt, die eine UID nach dieser Empfehlung erwarten, würde ich mich da strikt an das RFC822 halten und weder UUIDs noch GUIDs einsetzen.
Gegen eine GUID oder UUID in RFC822-Form gibt es jedoch keine Einwände.
 
Zurück
Oben