Das vEvent-Datenset ist ein Subset des iCalendar-Formats oder vCalendar-Formats, dem Vorläufer des iCalender-Formats. Der Aufbau folgt den gleichen Regeln wie beim vCard-Format. Auch vCalendar/iCalendar kennen Sie vielleicht aus Microsoft Outlook oder vergleichbaren Anwendungen als Export- und Import-Format für Terminkalendereinträge. Entsprechende Dateien haben die Standardendung .vcs oder .ics.

vEvent-Beispiel 1 (Tagesereignis)

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART:20110422
DTEND:20110422
SUMMARY:Karfreitag
END:VEVENT
END:VCALENDAR

vEvent-Beispiel 2 (Termin)

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART:20110510T200000+0100
DTEND:20110510T235959+0100
LOCATION:Nirvana Club
SUMMARY:Jahresversammlung 2011 der gescheiterten Existenzen
END:VEVENT
END:VCALENDAR

Erläuterung

Die gewählten Beispiele sind recht einfach und beschreiben nur wenige typische Daten.
Die offizielle Spezifikation und Dokumentation des iCalendar-Formats finden Sie unter:
http://tools.ietf.org/html/rfc2445
RFC (Request for Comment) 2445

Der gesamte Kalendereintrag wird durch BEGIN:VCALENDAR eingeleitet und durch END:VCALENDAR abgeschlossen. Durch BEGIN:VEVENT bzw. END:VEVENT wird das Subset für die Kerndaten markiert. Termine und Tagesereignisse fallen unter die Kategorie VEVENT. Andere Kategorien sind VTODO (für Aufgaben) oder VJOURNAL für Journaleinträge.

Terminanfang und -ende werden durch DTSTART bzw. DTEND definiert. Bei Tagesereignissen wie im ersten der obigen Beispiele wird das Datum ausschließlich in Ziffernform notiert, wobei die ersten vier Ziffern für das Jahr stehen, die nächsten zwei Ziffern für den Monat und die letzten beiden für den Monatstag. Bei Uhrzeit-Terminen wie in unserem zweiten Beispiel folgt hinter der Datumsangabe ein T und dahinter die Uhrzeit als Folge von sechs Ziffern, wobei die ersten beiden Ziffern die Stunde bedeuten, die zweiten beiden die Minuten und die letzten beiden die Sekunden. Bei Uhrzeitangaben ist auch die Angabe der Zeitzone sinnvoll. Deutschland beispielsweise hat die Zeitzone + 1 Stunde gegenüber der UTC-Zeit (Greenwich-Zeit). Notiert wird das in der Form +0100.

Wenn es für einen Termin einen Veranstaltungsort gibt, kann dieser durch LOCATION angegeben werden. Falls mit dem Ereignis auch eine Webadresse verknüpfbar ist, kann zusätzlich ein Feld URL notiert werden. SUMMARY ist das Feld für den Titel des Kalenderereignisses.

Beispiel einer Umsetzung des Tagesereignisses in HTML5-Mikrodatensyntax

Nachfolgender HTML-Ausschnitt setzt das erste der obige VEVENT-Beispiele in Mikrodaten um:

<ul>
<!-- andere Feiertage -->
<li itemscope itemtype="http://microformats.org/profile/hcalendar#vevent">
   <span itemprop="summary">Karfreitag</span>: 
   <time itemprop="dtstart" datetime="2011-04-22">22. April 2011</time>
   <meta itemprop="dtend" content="2011-04-22">
</li>
</ul>

Erläuterung

Das Element, in dem Sie das itemscope-Attribut für das Ereignis oder den Termin notieren, erhält ein itemtype-Attribut, dem die Identifikaitons-URL http://microformats.org/profile/hcalendar#vevent zugewiesen wird. Es handelt sich dabei um das XMDP-Profil für das Mikroformat hCalendar.

Im obigen Beispiel wird eine ungeordnete Liste mit einer Aufzählung von Feiertagen angedeutet. Jeder Listeneintrag, also jedes li-Element, zählt einen Feiertag auf. Deshalb ist das li-Element jeweils der Behälter für die Daten des Feiertags und erhält das itemscope-Attribut sowie das itemtype-Attribut, das den vEvent identifiziert.

Die vEvent-spezifischen Eigenschaften wie summary, dtstart und dtend werden itemprop-Attributen zugewiesen. Da die maschinenlesbaren Zeitangaben von dtstart und dtend für Menschen nicht so gut lesbar sind, werden die Werte dieser Eigenschaften nicht als Elementinhalt notiert, sondern in erkannten Attributen. Ideal geeignet ist das HTML5-Element time, wie es im Beispiel für die dtstart-Eigenschaft verwendet wird. Für die dtend-Eigenschaft kommt dagegen im Beispiel ein <meta>-Tag zum Einsatz. Der Grund ist, dass das Ereignisende zwar semantisch definiert, jedoch im auszugebenden Text nicht sichtbar sein soll.

Beispiel einer Umsetzung des Terminkalendereintrags in HTML5-Mikrodatensyntax

Nachfolgender HTML-Ausschnitt setzt das zweite der obige VEVENT-Beispiele in Mikrodaten um:

<section itemscope itemtype="http://microformats.org/profile/hcalendar#vevent">
<h1 itemprop="summary">Jahresversammlung 2011 der gescheiterten Existenzen</h1>
<p>Wie immer im <span itemprop="location">Nirvana Club</span></p>
<table>
<tr>
<td>Offizieller Beginn:</td>
<td><time itemprop="dtstart" 
     datetime="2011-05-10T20:00:00+01:00">10.05.2011, 20.00 Uhr</time></td>
</tr><tr>
<td>Offizielles Ende:</td>        
<td><time itemprop="dtend" 
     datetime="2011-05-10T23:59:00+01:00">Mitternacht</time></td>
</tr>
</table>
</section>

Erläuterung

In diesem Fall sollen Anfang und Ende der Veranstaltung explizit im Text genannt werden. Deshalb wird die itemprop-Eigenschaft dtend ebenso wie dtstart in ein time-Element gepackt. Die summary-Eigenschaft, die den Termin benennt, ist in diesem Fall durchaus typisch in einer Überschrift untergebracht. Der Veranstaltungsort wird durch itemprop="location" definiert. Der Wert, der dieser Eigenschaft zugeordnet wird, soll zum Redaktionszeitpunkt laut HTML5-Spezifikation nur aus Text bestehen. Eine Aussage zu einer möglichen inneren vCard-Datenstruktur, die im Fall einer vollständigen Adresse des Veranstaltungsorts nahe liegen würde, fehlt.

Liste möglicher itemprop-Eigenschaften

Nachfolgende Tabelle listet die zum Redaktionszeitpunkt in der HTML5-Spezifikation explizit erwähnten vEvent-Eigenschaften für itemprop-Attribute auf.

Eigenschaft Bedeutung u. mögliche Werte
attach URL-Adresse eines Dokuments mit näheren Informationen zum Event, etwa in der Form <a href="URL" itemprop="attach">…</a>
categories Liste von Kategorien, Tags, Stichwörtern, die sich dem Event zuordnen lassen. Eigenschaft darf auch mehrfach innerhalb eines Events vorkommen.
class Klassifizierung des Events: erlaubt sind die Werte public (öffentlich), private (privat) oder confidential (vertraulich). Achtung: dies ist natürlich nur eine formale Einordnung und hat keinerlei Auswirkungen auf die Sichtbarkeit oder Nichtsichtbarkeit des so ausgezeichneten Inhalts auf der Webseite!
commentar Kommentar zum Event. Darf mehrfach innerhalb eines Events vorkommen.
description Detaillierte Beschreibung des Events
geo Geographische Position des Veranstaltungsorts: dezimale Gradangabe zu Breite und Länge, z.B. +45.329293;-102.393921 (ca. 45 Grad Nord und 102 Grad West) oder -28.203942;+88.028938 (ca. 28 Grad Süd und 88 Grad Ost). Beide Werte müssen durch ein Semikolon getrennt werden. Entweder volle Gradzahlen angeben, oder volle 6 Nachkommastellen für Dezimalgradangaben
location Veranstaltungsort (z.B. Olympiahalle, bei Susi, IRC-Kanal #stubenfliegen)
ressources Erforderliche Ressourcen für den Event
status Bestätigungsstatus des Events: erlaubte Werte sind tentative (findet mit Vorbehalt statt), confirmed (findet sicher statt) oder cancelled (wurde abgesagt)
summary Überschrift, Titel, Zusammenfassung des Events
dtstart Start des Events, in Formen wie 2011-12-31 oder 2011-12-31T20:00+0100
dtend Ende des Events, in Formen wie 2012-01-01 oder 2011-01-01T06:00+0100
duration Dauer des Events - alternative Angabe zu dtend: erlaubt sind Werte wie 3W (Beispiel: 3 Wochen), 4D (Beispiel: 4 Tage), T3H (Beispiel: 3 Stunden), T3H30M (Beispiel: 3 Stunden und 30 Minuten), oder T4M33S (Beispiel: 4 Minuten und 33 Sekunden)
transp Angabe, ob der Event Zeit-Ressourcen eines Terminkalenders beansprucht (für Suche nach freien Terminen wichtig): erlaubte Angaben sind opac (verbraucht Zeit im Kalender - z.B. ein Meeting) und transparent (verbraucht keine Zeit im Kalender - z.B. ein Jahrestag)
contact Kontaktdaten zum Ansprechpartner für den Event (reiner Text, kein vCard!)
url URL-Adresse im Zusammenhang mit dem Event, typischerweise in der Form <a itemprop="url" href="…">…</a>
rrule Regel für sich wiederholende Events: erlaubt sind Angaben wie FREQ=YEARLY (jährliche Wiederholung), FREQ=MONTHLY (monatliche Wiederholung), FREQ=WEEKLY (wöchentliche Wiederholung) oder FREQ=DAILY (tägliche Wiederholung). Alle der umfangreichen Definitionsmöglichkeiten werden im RFC2445 (http://www.ietf.org/rfc/rfc2445.txt) beschrieben.
rdate bestimmter Zeitpunkt, an dem der Event wiederholt wird: Angaben wie bei dtstart. Diese Eigenschaft kann mehrfach notiert werden.
exrule Regel dafür, wann eine Regel zur Wiederholung von Events ausnahmsweise nicht gültig ist. Angaben wie bei rrule.
exdate bestimmte Zeitpunkte, an denen ein Event, der wiederholt wird, ausnahmsweise nicht wiederholt wird: Angaben wie bei rdate. Diese Eigenschaft kann mehrfach notiert werden.
created Zeitpunkt, an dem der Eintrag im Kalender erfolgte. Angaben mit der gleichen Syntax wie bei dtstart.
last-modified Zeitpunkt, an dem der Eintrag im Kalender zuletzt geändert wurde. Angaben mit der gleichen Syntax wie bei dtstart.
sequence Laufende Nummer für den Stand der Änderungen (wird mit jeder Änderung an dem Termin um 1 erhöht).

 


Korrekturen, Hinweise und Ergänzungen
Bitte scheut euch nicht und meldet, was auf dieser Seite sachlich falsch oder irreführend ist, was ergänzt werden sollte, was fehlt usw. Dazu bitte oben aus dem Menü Seite den Eintrag Diskutieren wählen. Es ist keine Anmeldung erforderlich, um Anmerkungen zu posten. Unpassende Postings, Spam usw. werden allerdings kommentarlos entfernt.