NCAL - Nepomuk Calendar Ontology

Namespace: http://www.semanticdesktop.org/ontologies/2007/04/02/ncal# (Version 0.9.0)

Authors:

Antoni Mylka

DFKI

Leo Sauermann

DFKI

Michael Sintek

DFKI

Ludger van Elst

DFKI

Maintainers:

Sebastian Trueg

Mandriva

Contributors:

Evgeny Egorochkin

KDE

Christiaan Fluit

Aduna

Abstract

The NEPOMUK Calendaring Ontology intends to provide vocabulary for describing calendaring data (events, tasks, journal entries) which is an important part of the body of information usually stored on a desktop. It is an adaptation of the ICALTZD ontology created by the W3C.

Table of Contents

Classes Overview
Properties Overview
Ontology Visualization
Introduction
Previous Work
Drawbacks of the ICALTZD ontology
Underspecification
Errors
Ranges of datatype properties
Design decisions unacceptable in Nepomuk
Alignment with contact ontology
NCAL Development process
Differences between NCAL and ICALTZD
Timezones
Alignment with NCO
Union Classes
Known limitations of NCAL
References
NCAL Vocabulary Summary
Description of Classes
Description of Properties

Classes Overview

ncal:AccessClassification - Access classification of a calendar component. Introduced to express the set of...
ncal:Alarm - Provide a grouping of component properties that define an alarm.
ncal:AlarmAction - Action to be performed on alarm. This class has been introduced to express the l...
ncal:Attachment - An object attached to a calendar entity. This class has been introduced to serve...
ncal:AttachmentEncoding - Attachment encoding. This class has been introduced to express the limited vocab...
ncal:Attendee - An attendee of an event. This class has been introduced to serve as the range fo...
ncal:AttendeeOrOrganizer - A common superclass for ncal:Attendee and ncal:Organizer.
ncal:AttendeeRole - A role the attendee is going to play during an event. This class has been introd...
ncal:BydayRulePart - Expresses the compound value of a byday part of a recurrence rule. It stores the...
ncal:Calendar - A calendar. Inspirations for this class can be traced to the VCALENDAR component...
ncal:CalendarDataObject - A DataObject found in a calendar. It is usually interpreted as one of the calend...
ncal:CalendarScale - A calendar scale. This class has been introduced to provide the limited vocabula...
ncal:CalendarUserType - A calendar user type. This class has been introduced to express the limited voca...
ncal:Event - Provide a grouping of component properties that describe an event.
ncal:EventStatus - A status of an event. This class has been introduced to express the limited set ...
ncal:Freebusy - Provide a grouping of component properties that describe either a request for fr...
ncal:FreebusyPeriod - An aggregate of a period and a freebusy type. This class has been introduced to ...
ncal:FreebusyType - Type of a Freebusy indication. This class has been introduced to serve as a limi...
ncal:Journal - Provide a grouping of component properties that describe a journal entry.
ncal:JournalStatus - A status of a journal entry. This class has been introduced to express the limit...
ncal:NcalDateTime -
ncal:NcalPeriod - A period of time. Inspired by the PERIOD datatype specified in RFC 2445 sec. 4.3...
ncal:NcalTimeEntity - A time entity. Conceived as a common superclass for NcalDateTime and NcalPeriod....
ncal:Organizer - An organizer of an event. This class has been introduced to serve as a range of ...
ncal:ParticipationStatus - Participation Status. This class has been introduced to express the limited voca...
ncal:RecurrenceFrequency - Frequency of a recurrence rule. This class has been introduced to express a limi...
ncal:RecurrenceIdentifier - Recurrence Identifier. Introduced to provide a structure for the value of ncal:r...
ncal:RecurrenceIdentifierRange - Recurrence Identifier Range. This class has been created to provide means to exp...
ncal:RecurrenceRule -
ncal:RequestStatus - Request Status. A class that was introduced to provide a structure for the value...
ncal:TimeTransparency - Time transparency. Introduced to provide a way to express the limited vocabulary...
ncal:Timezone - Provide a grouping of component properties that defines a time zone.
ncal:TimezoneObservance -
ncal:Todo - Provide a grouping of calendar properties that describe a to-do.
ncal:TodoStatus - A status of a calendar entity. This class has been introduced to express the lim...
ncal:Trigger - An alarm trigger. This class has been created to serve as the range of ncal:trig...
ncal:TriggerRelation - The relation between the trigger and its parent calendar component. This class h...
ncal:UnionOfAlarmEventFreebusyJournalTodo -
ncal:UnionOfAlarmEventFreebusyTodo -
ncal:UnionOfAlarmEventJournalTodo -
ncal:UnionOfAlarmEventTodo -
ncal:UnionOfEventFreebusy -
ncal:UnionOfEventFreebusyJournalTodo -
ncal:UnionOfEventJournalTimezoneTodo -
ncal:UnionOfEventJournalTodo -
ncal:UnionOfEventTodo -
ncal:UnionOfTimezoneObservanceEventFreebusyJournalTimezoneTodo -
ncal:UnionOfTimezoneObservanceEventFreebusyTimezoneTodo -
ncal:UnionOfTimezoneObservanceEventJournalTimezoneTodo -
ncal:UnionParentClass -
ncal:Weekday - Day of the week. This class has been created to provide the limited vocabulary f...

Properties Overview

ncal:action - This property defines the action to be invoked when an alarm is triggered. Inspi...
ncal:attach - The property provides the capability to associate a document object with a calen...
ncal:attachmentContent - The uri of the attachment. Created to express the actual value of the ATTACH pro...
ncal:attachmentUri - The uri of the attachment. Created to express the actual value of the ATTACH pro...
ncal:attendee - The property defines an "Attendee" within a calendar component. Inspired by RFC ...
ncal:byday - Weekdays the recurrence should occur. Defined in RFC 2445 sec. 4.3.10
ncal:bydayModifier - An integer modifier for the BYDAY rule part. Each BYDAY value can also be pre...
ncal:bydayWeekday - Connects a BydayRulePath with a weekday.
ncal:byhour - Hour of recurrence. Defined in RFC 2445 sec. 4.3.10
ncal:byminute - Minute of recurrence. Defined in RFC 2445 sec. 4.3.10
ncal:bymonth - Number of the month of the recurrence. Valid values are integers from 1 (January...
ncal:bymonthday - Day of the month when the event should recur. Defined in RFC 2445 sec. 4.3.10
ncal:bysecond - Second of a recurrence. Defined in RFC 2445 sec. 4.3.10
ncal:bysetpos - The BYSETPOS rule part specify values which correspond to the nth occurrence wit...
ncal:byweekno - The number of the week an event should recur. Defined in RFC 2445 sec. 4.3.10
ncal:byyearday - Day of the year the event should occur. Defined in RFC 2445 sec. 4.3.10
ncal:calscale - This property defines the calendar scale used for the calendar information speci...
ncal:categories - Categories for a calendar component. Inspired by RFC 2445 sec 4.8.1.2 with the f...
ncal:class - Defines the access classification for a calendar component. Inspired by RFC 2445...
ncal:comment - Non-processing information intended to provide a comment to the calendar user. I...
ncal:commentAltRep - Alternate representation of the comment. Introduced to cover the ALTREP paramet...
ncal:completed - This property defines the date and time that a to-do was actually completed. Ins...
ncal:component - Links the Vcalendar instance with the calendar components. This property has no ...
ncal:contact - The property is used to represent contact information or alternately a reference...
ncal:contactAltRep - Alternate representation of the contact property. Introduced to cover the ALTRE...
ncal:count - How many times should an event be repeated. Defined in RFC 2445 sec. 4.3.10
ncal:created - This property specifies the date and time that the calendar information was crea...
ncal:cutype - To specify the type of calendar user specified by the property. Inspired by RFC ...
ncal:date - Date an instance of NcalDateTime refers to. It was conceived to express values i...
ncal:dateTime - Representation of a date an instance of NcalDateTime actually refers to. It's pu...
ncal:daylight - Links a timezone with it's daylight observance. This property has no direct equi...
ncal:delegatedFrom - To specify the calendar users that have delegated their participation to the cal...
ncal:delegatedTo - To specify the calendar users to whom the calendar user specified by the propert...
ncal:description - A more complete description of the calendar component, than that provided by th...
ncal:descriptionAltRep - Alternate representation of the calendar entity description. Introduced to cover...
ncal:dir - Specifies a reference to a directory entry associated with the calendar user spe...
ncal:dtend - This property specifies the date and time that a calendar component ends. Inspir...
ncal:dtstamp - The property indicates the date/time that the instance of the iCalendar object w...
ncal:dtstart - This property specifies when the calendar component begins. Inspired by RFC 2445...
ncal:due - This property defines the date and time that a to-do is expected to be completed...
ncal:duration - The property specifies a positive duration of time. Inspired by RFC 2445 sec. 4....
ncal:encoding - To specify an alternate inline encoding for the property value. Inspired by RFC ...
ncal:eventStatus - Defines the overall status or confirmation for an Event. Based on the STATUS pro...
ncal:exdate - This property defines the list of date/time exceptions for a recurring calendar ...
ncal:exrule - This property defines a rule or repeating pattern for an exception to a recurren...
ncal:fbtype - To specify the free or busy time type. Inspired by RFC 2445 sec. 4.2.9. The RFC ...
ncal:fmttype - To specify the content type of a referenced object. Inspired by RFC 2445 sec. 4....
ncal:freebusy - The property defines one or more free or busy time intervals. Inspired by RFC 24...
ncal:freq - Frequency of a recurrence rule. Defined in RFC 2445 sec. 4.3.10
ncal:geo - This property specifies information related to the global position for the activ...
ncal:hasAlarm - Links an event or a todo with a DataObject that can be interpreted as an alarm. ...
ncal:interval - The INTERVAL rule part contains a positive integer representing how often the re...
ncal:involvedContact - A contact of the Attendee or the organizer involved in an event or other calenda...
ncal:journalStatus - Defines the overall status or confirmation for a journal entry. Based on the STA...
ncal:lastModified - The property specifies the date and time that the information associated with th...
ncal:location - Defines the intended venue for the activity defined by a calendar component. Ins...
ncal:locationAltRep - Alternate representation of the event or todo location. Introduced to cover the...
ncal:member - To specify the group or list membership of the calendar user specified by the pr...
ncal:method - This property defines the iCalendar object method associated with the calendar o...
ncal:ncalRelation - A common superproperty for all types of ncal relations. It is not to be used dir...
ncal:ncalTimezone - The timezone instance that should be used to interpret an NcalDateTime. The purp...
ncal:organizer - The property defines the organizer for a calendar component. Inspired by RFC 244...
ncal:partstat - To specify the participation status for the calendar user specified by the prope...
ncal:percentComplete - This property is used by an assignee or delegatee of a to-do to convey the perce...
ncal:periodBegin - Beginng of a period. Inspired by the first part of a structured value of the PER...
ncal:periodDuration - Duration of a period of time. Inspired by the second part of a structured value ...
ncal:periodEnd - End of a period of time. Inspired by the second part of a structured value of a ...
ncal:priority - The property defines the relative priority for a calendar component. Inspired by...
ncal:prodid - This property specifies the identifier for the product that created the iCalenda...
ncal:range - To specify the effective range of recurrence instances from the instance specifi...
ncal:rdate - This property defines the list of date/times for a recurrence set. Inspired by R...
ncal:recurrenceId - This property is used in conjunction with the "UID" and "SEQUENCE" property to i...
ncal:recurrenceIdDateTime - The date and time of a recurrence identifier. Provided to express the actual val...
ncal:related - To specify the relationship of the alarm trigger with respect to the start or en...
ncal:relatedToChild - The property is used to represent a relationship or reference between one calend...
ncal:relatedToParent - The property is used to represent a relationship or reference between one calend...
ncal:relatedToSibling - The property is used to represent a relationship or reference between one calend...
ncal:repeat - This property defines the number of time the alarm should be repeated, after the...
ncal:requestStatus - This property defines the status code returned for a scheduling request. Inspire...
ncal:requestStatusData - Additional data associated with a request status. Inspired by the third part of ...
ncal:resources - Defines the equipment or resources anticipated for an activity specified by a ca...
ncal:resourcesAltRep - Alternate representation of the resources needed for an event or todo. Introduce...
ncal:returnStatus - Short return status. Inspired by the first element of the structured value of th...
ncal:role - To specify the participation role for the calendar user specified by the propert...
ncal:rrule - This property defines a rule or repeating pattern for recurring events, to-dos, ...
ncal:rsvp - To specify whether there is an expectation of a favor of a reply from the calend...
ncal:sentBy - To specify the calendar user that is acting on behalf of the calendar user speci...
ncal:sequence - This property defines the revision sequence number of the calendar component wit...
ncal:standard - Links the timezone with the standard timezone observance. This property has no d...
ncal:statusDescription - Longer return status description. Inspired by the second part of the structured ...
ncal:summary - Defines a short summary or subject for the calendar component. Inspired by RFC 2...
ncal:summaryAltRep - Alternate representation of the comment. Introduced to cover the ALTREP paramet...
ncal:todoStatus - Defines the overall status or confirmation for a todo. Based on the STATUS prope...
ncal:transp - Defines whether an event is transparent or not to busy time searches. Inspired ...
ncal:trigger - This property specifies when an alarm will trigger. Inspired by RFC 2445 sec. 4....
ncal:triggerDateTime - The exact date and time of the trigger. This property has been created to expres...
ncal:triggerDuration - The duration of a trigger. This property has been created to express the VALUE=D...
ncal:tzid - This property specifies the text value that uniquely identifies the "VTIMEZONE" ...
ncal:tzname - Specifies the customary designation for a timezone description. Inspired by RFC ...
ncal:tzoffsetfrom - This property specifies the offset which is in use prior to this time zone obser...
ncal:tzoffsetto - This property specifies the offset which is in use in this time zone observance....
ncal:tzurl - The TZURL provides a means for a VTIMEZONE component to point to a network locat...
ncal:uid - This property defines the persistent, globally unique identifier for the calenda...
ncal:until - The UNTIL rule part defines a date-time value which bounds the recurrence rule i...
ncal:url - This property defines a Uniform Resource Locator (URL) associated with the iCale...
ncal:version - This property specifies the identifier corresponding to the highest version numb...
ncal:wkst - The day that's counted as the start of the week. It is used to disambiguate the ...

Ontology Visualization

Figure 15. 


Introduction

Nepomuk Calendar Ontology (NCAL) has been designed to describe various entries usually found in calendars. These include events, tasks (todo's) and journal entries. It is an adaptation of the well known iCalendar specification published in 2002 as RFC 2445 [RFC2445]. This section begins with an outline of the previous attempts in adapting RFC 2445 to RDF. It gives an account of the issues with existing ICAL ontologies that make them unusable within Nepomuk. Following subsections describe the process adopted for the creation of NCAL and it's result - the classes and properties of the ontology. Proposed solutions to problems found in existing ICAL ontologies are presented. At the end, a list of known limitations of NCAL is given, followed by ideas for future work on improving NCAL.

The following sections make use of the vocabulary specified in RFC 2445. The reader is advised to get acquainted with it before continuing reading. A nice outline of the structure of iCalendar specification can be found in [ TIMBLICAL].

Previous Work

The need for a common vocabulary for describing calendaring information in RDF has been recognized early within the W3C RDF Interest Group. Organized activity has been started on 9th of October 2002 at the SWAD-Europe Workshop on the Semantic web and Calendaring in Bristol, UK. The report from this workshop [SWAD37] mentions earlier attempts by Tim Berners-Lee ([TIMBLICAL]), Arick and Miller ([ HYBRIDICAL]) and Dan Connoly ([ ANOTHERICAL ], [ PALMICAL]).

Work continued through a series of meetings. Numerous discussions were held using the www-rdf-calendar@w3.org mailing list. The archive is available at hereand the #rdfig channel on the Freenode IRC network. Logs of these discussions are available here.

After three years of research the group has produced two ontologies in OWL and a W3C Interest Group Note ([ ICALNOTE]) describing the design decisions that have been made. The first ontology, hosted under http://www.w3.org/2002/12/cal/icalis more popular, semantic web enthusiasts try to publish their calendars with this vocabulary, even though the creators themselves have abandoned it in favour of a newer one, hosted under http://www.w3.org/2002/12/cal/icaltzd. The main difference between these two lies in treatment of timezones. Many entities in the iCalendar data model contain various dates and times. They are usually accompanied by a timezone that should serve as a context to interpret them. The older ontology represents this fact with a 'tzid' property more in-line with the original representation. The newer one uses a controversial approach of representing the timezones as datatypes for literals.

In the rest of this section the older ontology will be referred to as ICAL ontology, whereas the newer one will be called the ICALTZD ontology to avoid confusion. TZD stands for ``TimeZones as Datatypes''. Whenever concrete properties from the ICAL ontology are referred, they will be given with the 'ical' prefix (e.g. ical:attendee). ICALTZD properties will use the 'icaltzd' prefix (e.g. icaltzd:component).

Drawbacks of the ICALTZD ontology

The ICALTZD ontology is newer and better developed. Therefore it was chosen to serve as a the model for NCAL. Numerous drawbacks have been identified in it though. This section gives an account of them. It is intended to provide justification for the decision not to use ICALTZD directly.

Most of the deficiencies of ICALTZD have been caused by the automatic process of its creation. It is automatically generated from the text of the RFC itself using a combination of a python script and an XSLT transformation. (Refer to [ ICALNOTE] for details). This process overlooks many details that cannot be extracted with a simple analysis of the structure of the document. They would require deeper understanding of the text itself, which is certainly beyond the capabilities of such simple tools. Following subsections explain four kinds of problems encountered when trying to use ICALTZD within Nepomuk: underspecification, bugs, superfluous elements and pieces of design that certainly cannot be considered errors in themselves but are nevertheless against the guidelines for NIE.

Underspecification

ICALTZD is underspecified. There are many places, where certain structural information is not explicitly stated within the ontology. The user needs to be aware of the 'conventions' adopted by the authors.

Property values and parameters

RFC 2445 specifies a generic model where each calendar property can be adorned with any number of parameters. Some properties (e.g. UID) don't accept any parameters. These can easily be modelled in RDF. Their ranges can be set to appropriate XML Schema datatypes. Other properties (e.g. Attendee) accept a number of parameters. They cannot be easily modelled in RDF because literals cannot serve as subjects of RDF triples. An intermediary node is necessary.

Using intermediary nodes to express property values poses two problems. The first one being the type of that node. ICALTZD uses untyped blank nodes for this purpose. This is against the recomendations for using property domains and ranges within Nepomuk Representational Language (See [ NRLSPEC] sec. 2.3.1). The Closed-World assumption adopted in NRL implies that domains and ranges are constrains that must be met. Untyped resources cannot be related in NRL.

Whenever such intermediary blank nodes are used as property values, the ICALTZD ontology doesn't specify the ranges of those properties at all. (e.g. in icaltzd:attach, icaltzd:dtend, icaltzd:dtstart, icaltzd:due, icaltzd:duration, icaltzd:exdate, icaltzd:exdate, icaltzd:rdate, icaltzd:recurrenceId, icaltzd:trigger, icaltzd:tzurl, icaltzd:url). It is worth noting that in some cases the ICALTZD ontology simplifies the model defined in RFC 2445 and discards some parameters. This happens for instance in 8 properties that use parameters for alternate representation (ALTREP) and language (LANGUAGE) namely: icaltzd:comment, icaltzd:description, icaltzd:location, icaltzd:resources, icaltzd:summary and icaltzd:contact. These simplifications are not documented anywhere. They can only be learned by observing the example files provided with the ontology.

An attempt has been made to develop a utility that would convert raw iCalendar files to an RDF representation conforming to the ICALTZD ontology. It was developed as an element of the Aperture Framework. Due to the underspecification of properties the developers had to document the conventions by themselves. Each property has been characterised with following attributes:

  • Possible parameters (according to the RFC 2445). Information if those parameters are allowed in the RDF representation or not, which is the case if the model has been simplified.

  • Information if a property points to a literal value (in which case all parameters specified in RFC 2445 are discarded) or to an untyped blank node.

  • URI of the property.

  • URI of a property used to link the intermediary blank node with the actual value of the property.

The last of those four characteristics is especially important since it constitutes the second of those two problems mentioned above. RFC 2445 allows for a property to have multiple value types. The actual type is indicated by a special parameter (VALUE). It is difficult to model this behavior in a general case. ICALTZD makes no attempt to formalize it and forces to user to learn the conventions expressed in examples.

Property parameters are modelled in ICALTZD as rdf properties with no domains and ranges specified at all. Because of that each parameter can just as well be applied to any property. The same applies to parameters of recurrence rules (RRULE and EXRULE property values). Their usage must be learned from the RFC 2445 or from the example files. The ontology itself contains too little information.

Domains of calendar properties

RFC 2445 specifies four properties that apply directly to the central Vcalendar object. These are icaltzd: prodid, icaltzd: calscale, icaltzd: method and icaltzd: version. They don't have their domain specified at all.

Missing Entity Types

As said before many properties that accept parameters deserve to have a special classes as their ranges. From these four deserve to be mentioned separately. They are different from other structured values because they are described with their own vocabulary i.e. not with 'normal' ical parameters as defined in sec. 4.2 of RFC 2445.

RFC 2445 defines the concept of a timezone observance. Each timezone can have two observances - daylight and standard. This models a common practice to use different time in the winter and in the summer. Properties responsible for this in the ICALTZD ontology are icaltzd:daylight and icaltzd:standard. They don't have their ranges specified, even though RFC 2445 treats them as separate subcomponents within the timezone component. They are marked with a separate pair of BEGIN and END constructs. The ontology makes no provision for it being a separate class.

A similar situation occurs with recurrence rules i.e. values of RRULE and EXRULE properties. They define patterns for the repetition of a calendar event. ICALTZD doesn't mention them specifically. They are expressed as untyped blank nodes. Recurrence rule properties are attached to untyped blank nodes.

There are also two properties that don't accept any parameters, but their values are structured. That is a comma separated value of the GEO property, which signifies coordinates of a point, and a semicolon-separated value of the REQUEST-STATUS property.

No limited vocabulary

Many properties and parameters defined in RFC 2445 (e.g. CLASS, STATUS, TRANSP, PARTSTAT, RELTYPE etc.) have a limited set of values. This is not expressed in the ICALTZD ontology. The user needs to learn those acceptable values by him- or herself in order to generate RDF that can be exported to a valid iCalendar file.

Vague semantics of the component property

ICALTZD defines an icaltzd: component property to link the calendar with the components it contains. It is also used to link the events with their alarms but even though Timezone Observances also have their own BEGIN and END constructs, the icaltzd:component property is not used there. These usage patterns have been extracted from the example files provided by the authors of the ICALTZD ontology. The ontology itself doesn't define any domain or range for the icaltzd:component property.

Errors

Two problems have been identified when working with the ICALTZD ontology. The first one concerns the domain of the icaltzd:rrule property. It is defined as an anonymous owl union class.

<rdf:Description rdf:ID="rrule">
    <rdfs:domain> <owl:Class
    rdf:nodeID="DomainOf_rrule"> .... </owl:Class>
    <rdfs:domain>
    ...</rdf:Description>

We see that the nodeID construct has been used. This means an identifier of a blank node. This might not have been the intention of the author though since two other properties icaltzd:recurrenceId and icaltzd:exdate refer to it, but they do it wrong.

<rdf:Description rdf:ID="recurrenceId">
    <rdfs:domain> <owl:Class
    rdf:about="#DomainOf_rrule"/>
    </rdfs:domain></rdf:Description>

This construct refers to an URI, not to a blank node. The W3C RDF validatorinterprets the first example as:

subject:
    http://www.w3.org/2002/12/cal/icaltzd#rrulepredicate:
    http://www.w3.org/2000/01/rdf-schema#domainobject:
    genid:UDomainOf_rrule

Whereas the second example is interpreted as:

subject:
    http://www.w3.org/2002/12/cal/icaltzd#recurrenceIdpredicate:
    http://www.w3.org/2000/01/rdf-schema#domainobject:
    http://www.w3.org/2002/12/cal/icaltzd#DomainOf_rrule

Which is clearly not the same.

The second problem with ICALTZD are multiply defined ID's. The W3C RDF Validator finds 53 redefinitions of a previously defined identifiers. This fact has caused problems when working with the RIO 1.0 RDF Parser. It could potentially cause problems with other tools, even though semantically it makes no difference if a statement occurs once or multiple times within an RDF document.

There are also repetitions in OWL unions that describe the domains of properties.

Ranges of datatype properties

An attempt has been made to model the datatypes of literals that serve as property values. A set of datatypes has been defined. These include icaltzd: Value_DATE-TIME, icaltzd: Value_CAL-ADDRESS, icaltzd: Value_PERIOD, icaltzd: Value_RECUR etc. They have been defined as rdfs: Datatype but there are no additional characteristics of them. In most cases they can safely be expressed with either xml schema datatypes or special-purpose classes. It is worth noting that the datatype for dates and times is defined twice: as icaltzd: Value_DATE-TIME and icaltzd: dateTime.

Design decisions unacceptable in Nepomuk

OWL

The most important fact, that inhibits the usability of ICALTZD within Nepomuk is that it is expressed in OWL. This violates the guideline expressed in Use NEPOMUK Representational Language. Even though OWL classes and properties could theoretically be interpreted as RDFS constructs, ICALTZD makes use of OWL unions, which have no equivalent in RDFS.

Timezones as datatypes

A second design decision that may be considered controversial is the timezones-as-datatypes idea. Whenever point in time is referenced it is described with a date, time and a timezone. The first two parts can be expressed with a single literal, formatted according to the XML Schema 'dateTime' format. The timezone though is expressed as the datatype of that literal. Example files provided with the ICALTZD ontology contain many entries similar to the following one:

<Vevent
      rdf:about="#D4F0202E-2F2F-11D7-A96C-000393161A98">
      <summary>#rdfig calendar meeting</summary>
      <tstart
      rdf:datatype="http://www.w3.org/2002/12/cal/tzd/Europe/London#tz">
      2003-02-05T17:00:00 </dtstart> <dtend
      rdf:datatype="http://www.w3.org/2002/12/cal/tzd/Europe/London#tz">
      2003-02-05T18:00:00 </dtend> <description>
      Email www-rdf-calendar@w3.org with agenda suggestions.
      </description></Vevent>

As you can see the values dtstart and dtend properties have their timezones expressed as URIs. This approach has following disadvantages:

  • It relies on the timezone database provided by the authors.Available here. This database was created by converting the well-known Olson timezone databaseto RDF. This assumption works as long as the timezone identifiers used in in iCalendar files can easily be translated into URIs from that database. This is often the case, but there are no constraints specified in the RFC 2445 to reinforce that claim. The timezone identifiers are plain strings. The specification states that they should refer to timezone definitions that within the same file. RFC 2445 doesn't mention any centralised timezone database. There are perfectly correct iCalendar files that use timezone identifiers that cannot be easily (that is by simple string operations) mapped to those from the Olson database.

  • Instances of icaltzd:Vtimezone gathered in the timezone database are not instances of rdfs:Datatype. Using them as datatypes is dubious from the semantic point of view.

  • This approach makes it impossible to specify the datatype in the ontology itself. The user must learn to use this convention from other sources.

Alignment with contact ontology

Tight integration between ontologies has been identified as one of the core requirements for NIE (see Integration of ontologies). ICALTZD makes no references to any specific ontology that would make it possible to link calendar events with actual contact information about attendees and organizers.

NCAL Development process

Issues outlined in the previous section led to a decision to create a new calendaring ontology for Nepomuk. The main goal was to solve the problems described above while retaining compatibility with Nepomuk guidelines.

Development of NCAL began with the ICALTZD ontology. A Java program has been written that transformed it into RDFS and performed some basic transformations. These transformations included:
  • NCAL Development process

  • Solving the problem with the domain of rrule property. See

  • Errors

  • Adding the TimezoneObservance class and including it in domains of appropriated properties.

  • Removing the cardinality restrictions from class definitions.

  • Converting the owl unions to appropriate superclasses and adding the rdfs:subClassOf links.

  • Changing OWL classes and properties into RDFS classes and properties.

  • Converting all property ranges to XML Schema datatypes

  • Creating the RecurrenceRule class, adding it as a range of icaltzd:rrule and icaltzd:exrule properties. Setting the domain of all recurrence rule parameters appropriately.

  • Setting the domain of all four Vcalendar properties correctly.

It became clear that some properties require special classes as their ranges. They would provide explicit hooks to attach the property parameters. In order to get an overview of the needs the definitions of properties in RFC 2445 have been examined carefully. A table has been created with basic information about each property. It had following columns:

  • Name of the property.

  • Domain of the property.

  • Default type of the property value.

  • Additional possible types of the property value (does the property accept the VALUE parameter).

  • Does the value accept the timezone identifier parameter?

  • Other parameters (apart from VALUE and TZID).

  • Possible values. (If the property has a limited set of possible values).

  • Multiplicity. Whenever the RFC mentioned the fact that a property can be specified multiple times (or only once), or that it can have many comma-separated values - this fact was recorded.

  • Other important information.

This table quickly visualised the actual relations between properties and parameters. It enabled us to divide the ical properties into six groups. For each group an approach to represent it in RDF has been chosen.

  • Properties that accept the ALTREP and LANGUAGE parameters. It has been decided that creating a separate class just to have means to express the alternate representation would not be an elegant solution. Therefore for each property that can accept the ALTREP parameter (i.e. COMMENT, DESCRIPTION, LOCATION, RESOURCES, SUMMARY and CONTACT) a new 'altRep' property has been introduced (i.e. ncal:commentAltRep, ncal:descriptionAltRep, etc.). The LANGUAGE parameter has been removed from the ontology altogether. The user can express the same with language literals available in RDF.

  • Properties that accept no parameters, but have a limited set of values. This included CLASS, STATUS, TRANSP and ACTION. For each a separate class has been introduced. For each of those classes a set of instances has been created to represent the possible values of each property.

  • Properties that don't accept and don't have any restrictions on the set of possible values. This was the simplest case. The ranges of those properties have been set to an appropriate XML Schema datatype. (Apart from RRULE and EXRULE, which refer to a RecurrenceRule).

  • Properties that refer to a Universal Coordinated Time point. (COMPLETED, CREATED, DTSTAMP, LAST-MODIFIED). Their ranges have been set to the dateTime datatype defined in the XML Schema Definition.

  • Properties that refer to a time point in a concrete timezone (DTEND, DUE, DTSTART, EXDATE, RDATE). The problem of representing the timezone has been solved with the NcalDateTime class. Its properties enable it to be used whenever a DATE-TIME or DATE value is needed. It also provides three ways to express the timezone - a reference to a ncal:Timezoneinstance or a simple string.

  • Properties that require separate solutions. These included RECURRENCE-ID, TRIGGER, FREEBUSY, ATTENDEE, ORGANIZER, ATTACH, GEO, RELATED-TO. For each of those a separate class has been created and added to the range of the property and to the domain of appropriate parameters.

Differences between NCAL and ICALTZD

The overall structure of NCAL is in most respects similar to ICALTZD, which is thoroughly described in [ ICALNOTE]. NCAL only tries to clarify certain underspecified points, as outlined in the sections above. Following paragraphs describe two important changes that break the continuity with ICALTZD.

Timezones

As already mentioned, NCAL introduces the NcalDateTime class (see ncal:NcalDateTime). It's purpose is to provide a more elegant way to link the time values with their timezones. It can also represent plain dates, which models the fact that four properties have two possible value types: date and date-time. It allows for a clean link between the time value and the timezone (expressed with the ncal:ncalTimezone). Since RFC states that each icalendar document MUST contain exact definitions of all timezones used, it can safely be assumed that all time values can refer to those definitions.

Alignment with NCO

According to the guidelines for NIE (see Integration of ontologies), it is desirable to promote integration between ontologies. That's why ranges of two properties (namely: ncal:attendeeand ncal:organizerhave been equiped with links to the nco:Contact class from the Nepomuk Contact Ontology. This will facilitate integration between addressbooks and calendars.

Union Classes

ICALTZD used OWL unions to define domains of many properties. They don't have their equivalents in NRL, so another solution has been adopted. Each union is now represented as a separate class with whose name has been generated by concatenating the names of classes that comprise the union. (such as UnionOfEventFreebusy).

The reader may now feel the urge to give more "meaningful" (semantic) names to the union classes. It is difficult. The semantic meaning of a union class is defined by the properties that have it as a domain, and it was not possible for us to find a name for the Union classes based on the properies, as they are too diverse.

Known limitations of NCAL

Nepomuk Calendaring Ontology doesn't capture the whole complexity of the data model defined by RFC 2445. Following limitations have been identified.

  • Usually in places where a limited set of values is referred to, one of those values is considered default. NCAL doesn't distinguish between default and non-default values.

  • If a parameter or a property has multiple sets of acceptable values depending on the context - this information is lost. For example the STATUS property can have different values depending on whether it has been applied to a Event, a Todo or a Journal instance. NCAL makes no such distinctions. All possible values are represented as instances of the same class.

  • Sets of acceptable parameters can also differ between various classes in the domain of a property (e.g. attendee of an alarm cannot have any parameters). NCAL doesn't capture this.

  • Extension tokens have been altogether ignored.

References

[ICALNOTE]

Rdf calendar - an application of the resource description framework to icalendar datal, Dan Connolly and Libby Miller, W3C Interest Group Note 29 September 2005 http://www.w3.org/TR/rdfcal/

[HYBRIDICAL]

Hybrid ical rdf schema, Michael Arick and Libby Miller http://www.ilrt.bris.ac.uk/discovery/2001/06/schemas/ical-full/hybrid.rdf

[TIMBLICAL]

A quick look at icalendar, Tim Berners-Lee http://www.w3.org/2000/01/foo

[ANOTHERICAL]

Another icalendar model, Dan Connoly http://www.w3.org/2000/10/swap/pim/ical.rdf

[PALMICAL]

Palm datebook, Dan Connoly http://www.w3.org/2000/08/palm56/datebook

[RFC2445]

Internet calendaring and scheduling core objects specification, Frank Dawson and Derik Stenerson http://www.ietf.org/rfc/rfc2445.txt

[SWAD37]

Swad-europe deliverable 3.7: Developer workshop report 2 - semantic web calendaring, Libby Miller http://www.w3.org/2001/sw/Europe/reports/dev_workshop_report_2/

[NRLSPEC]

Nepomuk Representational Language (NRL) Vocabulary Specification., Nepomuk Task-Force Ontologies, http://www.semanticdesktop.org/ontologies/nrl

NCAL Vocabulary Summary

Description of Classes

ncal:AccessClassification

LabelAccessClassification
DescriptionAccess classification of a calendar component. Introduced to express the set of values for the ncal:class property. The user may use instances provided with this ontology or create his/her own with desired semantics. See the documentation of ncal:class for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:class
Instancesncal:confidentialClassification, ncal:privateClassification, ncal:publicClassification

ncal:Alarm

LabelAlarm
DescriptionProvide a grouping of component properties that define an alarm.
Super-classesncal:UnionOfAlarmEventTodo (direct), ncal:UnionParentClass, ncal:UnionOfAlarmEventFreebusyTodo (direct), nie:InformationElement (direct), ncal:UnionOfAlarmEventJournalTodo (direct), ncal:UnionOfAlarmEventFreebusyJournalTodo (direct)
Sub-classes 
In domain ofncal:repeat, ncal:action
In range of 

ncal:AlarmAction

LabelAlarmAction
DescriptionAction to be performed on alarm. This class has been introduced to express the limited set of values of the ncal:action property. Please refer to the documentation of ncal:action for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:action
Instancesncal:audioAction, ncal:procedureAction, ncal:emailAction, ncal:displayAction

ncal:Attachment

LabelAttachment
DescriptionAn object attached to a calendar entity. This class has been introduced to serve as a structured value of the ncal:attach property. See the documentation of ncal:attach for details.
Super-classesnfo:EmbeddedFileDataObject, nie:DataObject, nfo:Attachment (direct), nfo:FileDataObject
Sub-classes 
In domain ofncal:attachmentUri, ncal:attachmentContent, ncal:fmttype, ncal:encoding
In range ofncal:attach

ncal:AttachmentEncoding

LabelAttachmentEncoding
DescriptionAttachment encoding. This class has been introduced to express the limited vocabulary of values for the ncal:encoding property. See the documentation of ncal:encoding for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:encoding
Instancesncal:_8bitEncoding, ncal:base64Encoding

ncal:Attendee

LabelAttendee
DescriptionAn attendee of an event. This class has been introduced to serve as the range for ncal:attendee property. See documentation of ncal:attendee for details.
Super-classesncal:AttendeeOrOrganizer (direct)
Sub-classes 
In domain ofncal:member, ncal:partstat, ncal:cutype, ncal:delegatedTo, ncal:rsvp, ncal:delegatedFrom, ncal:role
In range ofncal:attendee

ncal:AttendeeOrOrganizer

LabelAttendeeOrOrganizer
DescriptionA common superclass for ncal:Attendee and ncal:Organizer.
Super-classes 
Sub-classesncal:Organizer (direct), ncal:Attendee (direct)
In domain ofncal:sentBy, ncal:dir, ncal:involvedContact
In range of 

ncal:AttendeeRole

LabelAttendeeRole
DescriptionA role the attendee is going to play during an event. This class has been introduced to express the limited vocabulary for the values of ncal:role property. Please refer to the documentation of ncal:role for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:role
Instancesncal:chairRole, ncal:reqParticipantRole, ncal:nonParticipantRole, ncal:optParticipantRole

ncal:BydayRulePart

LabelBydayRulePart
DescriptionExpresses the compound value of a byday part of a recurrence rule. It stores the weekday and the integer modifier. Inspired by RFC 2445 sec. 4.3.10
Super-classes 
Sub-classes 
In domain ofncal:bydayWeekday, ncal:bydayModifier
In range ofncal:byday

ncal:Calendar

LabelCalendar
DescriptionA calendar. Inspirations for this class can be traced to the VCALENDAR component defined in RFC 2445 sec. 4.4, but it may just as well be used to represent any kind of Calendar.
Super-classesnie:InformationElement (direct)
Sub-classes 
In domain ofncal:component, ncal:method, ncal:calscale, ncal:version, ncal:prodid
In range of 

ncal:CalendarDataObject

LabelCalendarDataObject
DescriptionA DataObject found in a calendar. It is usually interpreted as one of the calendar entity types (e.g. Event, Journal, Todo etc.)
Super-classesnie:DataObject (direct)
Sub-classes 
In domain of 
In range ofncal:component, ncal:hasAlarm

ncal:CalendarScale

LabelCalendarScale
DescriptionA calendar scale. This class has been introduced to provide the limited vocabulary for the ncal:calscale property.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:calscale
Instancesncal:gregorianCalendarScale

ncal:CalendarUserType

LabelCalendarUserType
DescriptionA calendar user type. This class has been introduced to express the limited vocabulary for the ncal:cutype property. See documentation of ncal:cutype for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:cutype
Instancesncal:individualUserType, ncal:roomUserType, ncal:resourceUserType, ncal:unknownUserType, ncal:groupUserType

ncal:EventStatus

LabelEventStatus
DescriptionA status of an event. This class has been introduced to express the limited set of values for the ncal:status property. The user may use the instances provided with this ontology or create his/her own. See the documentation for ncal:eventStatus for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:eventStatus
Instancesncal:cancelledEventStatus, ncal:confirmedStatus, ncal:tentativeStatus

ncal:Freebusy

LabelFreebusy
DescriptionProvide a grouping of component properties that describe either a request for free/busy time, describe a response to a request for free/busy time or describe a published set of busy time.
Super-classesncal:UnionOfAlarmEventFreebusyTodo (direct), ncal:UnionParentClass, nie:InformationElement (direct), ncal:UnionOfEventFreebusyJournalTodo (direct), ncal:UnionOfEventFreebusy (direct), ncal:UnionOfTimezoneObservanceEventFreebusyTimezoneTodo (direct), ncal:UnionOfAlarmEventFreebusyJournalTodo (direct), ncal:UnionOfTimezoneObservanceEventFreebusyJournalTimezoneTodo (direct)
Sub-classes 
In domain ofncal:freebusy
In range of 

ncal:FreebusyPeriod

LabelFreebusyPeriod
DescriptionAn aggregate of a period and a freebusy type. This class has been introduced to serve as a range of the ncal:freebusy property. See documentation for ncal:freebusy for details. Note that the specification of freebusy property states that the period is to be expressed using UTC time, so the timezone properties should NOT be used for instances of this class.
Super-classesncal:NcalTimeEntity, ncal:NcalPeriod (direct)
Sub-classes 
In domain ofncal:fbtype
In range ofncal:freebusy

ncal:FreebusyType

LabelFreebusyType
DescriptionType of a Freebusy indication. This class has been introduced to serve as a limited set of values for the ncal:fbtype property. See the documentation of ncal:fbtype for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:fbtype
Instancesncal:busyFreebusyType, ncal:busyUnavailableFreebusyType, ncal:freeFreebusyType, ncal:busyTentativeFreebusyType

ncal:Journal

LabelJournal
DescriptionProvide a grouping of component properties that describe a journal entry.
Super-classesncal:UnionOfTimezoneObservanceEventFreebusyJournalTimezoneTodo (direct), ncal:UnionParentClass, nie:InformationElement (direct), ncal:UnionOfEventFreebusyJournalTodo (direct), ncal:UnionOfEventJournalTimezoneTodo (direct), ncal:UnionOfAlarmEventFreebusyJournalTodo (direct), ncal:UnionOfAlarmEventJournalTodo (direct), ncal:UnionOfEventJournalTodo (direct), ncal:UnionOfTimezoneObservanceEventJournalTimezoneTodo (direct)
Sub-classes 
In domain ofncal:journalStatus
In range of 

ncal:JournalStatus

LabelJournalStatus
DescriptionA status of a journal entry. This class has been introduced to express the limited set of values for the ncal:status property. The user may use the instances provided with this ontology or create his/her own. See the documentation for ncal:journalStatus for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:journalStatus
Instancesncal:finalStatus, ncal:cancelledJournalStatus, ncal:draftStatus

ncal:NcalDateTime

LabelNcalDateTime
Description
Super-classesncal:NcalTimeEntity (direct)
Sub-classes 
In domain ofncal:date, ncal:dateTime, ncal:ncalTimezone
In range ofncal:due, ncal:dtstart, ncal:dtend, ncal:recurrenceIdDateTime, ncal:exdate
Mentioned inTimezones

ncal:NcalPeriod

LabelNcalPeriod
DescriptionA period of time. Inspired by the PERIOD datatype specified in RFC 2445 sec. 4.3.9
Super-classesncal:NcalTimeEntity (direct)
Sub-classesncal:FreebusyPeriod (direct)
In domain ofncal:periodEnd, ncal:periodDuration, ncal:periodBegin
In range of 

ncal:NcalTimeEntity

LabelNcalTimeEntity
DescriptionA time entity. Conceived as a common superclass for NcalDateTime and NcalPeriod. According to RFC 2445 both DateTime and Period can be interpreted in different timezones. The first case is explored in many properties. The second case is theoretically possible in ncal:rdate property. Therefore the timezone properties have been defined at this level.
Super-classes 
Sub-classesncal:FreebusyPeriod, ncal:NcalPeriod (direct), ncal:NcalDateTime (direct)
In domain of 
In range ofncal:rdate

ncal:Organizer

LabelOrganizer
DescriptionAn organizer of an event. This class has been introduced to serve as a range of ncal:organizer property. See documentation of ncal:organizer for details.
Super-classesncal:AttendeeOrOrganizer (direct)
Sub-classes 
In domain of 
In range ofncal:organizer

ncal:ParticipationStatus

LabelParticipationStatus
DescriptionParticipation Status. This class has been introduced to express the limited vocabulary of values for the ncal:partstat property. See the documentation of ncal:partstat for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:partstat
Instancesncal:declinedParticipationStatus, ncal:inProcessParticipationStatus, ncal:needsActionParticipationStatus, ncal:tentativeParticipationStatus, ncal:completedParticipationStatus, ncal:delegatedParticipationStatus, ncal:acceptedParticipationStatus

ncal:RecurrenceFrequency

LabelRecurrenceFrequency
DescriptionFrequency of a recurrence rule. This class has been introduced to express a limited set of allowed values for the ncal:freq property. See the documentation of ncal:freq for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:freq
Instancesncal:hourly, ncal:secondly, ncal:monthly, ncal:minutely, ncal:daily, ncal:yearly, ncal:weekly

ncal:RecurrenceIdentifier

LabelRecurrenceIdentifier
DescriptionRecurrence Identifier. Introduced to provide a structure for the value of ncal:recurrenceId property. See the documentation of ncal:recurrenceId for details.
Super-classes 
Sub-classes 
In domain ofncal:recurrenceIdDateTime, ncal:range
In range ofncal:recurrenceId

ncal:RecurrenceIdentifierRange

LabelRecurrenceIdentifierRange
DescriptionRecurrence Identifier Range. This class has been created to provide means to express the limited set of values for the ncal:range property. See documentation for ncal:range for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:range
Instancesncal:thisAndPriorRange, ncal:thisAndFutureRange

ncal:RecurrenceRule

ncal:RequestStatus

LabelRequestStatus
DescriptionRequest Status. A class that was introduced to provide a structure for the value of ncal:requestStatus property. See documentation for ncal:requestStatus for details.
Super-classes 
Sub-classes 
In domain ofncal:requestStatusData, ncal:returnStatus, ncal:statusDescription
In range ofncal:requestStatus

ncal:TimeTransparency

LabelTimeTransparency
DescriptionTime transparency. Introduced to provide a way to express the limited vocabulary for the values of ncal:transp property. See documentation of ncal:transp for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:transp
Instancesncal:transparentTransparency, ncal:opaqueTransparency

ncal:Timezone

ncal:TodoStatus

LabelTodoStatus
DescriptionA status of a calendar entity. This class has been introduced to express the limited set of values for the ncal:status property. The user may use the instances provided with this ontology or create his/her own. See the documentation for ncal:todoStatus for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:todoStatus
Instancesncal:cancelledTodoStatus, ncal:needsActionStatus, ncal:completedStatus, ncal:inProcessStatus

ncal:Trigger

LabelTrigger
DescriptionAn alarm trigger. This class has been created to serve as the range of ncal:trigger property. See the documentation for ncal:trigger for more details.
Super-classes 
Sub-classes 
In domain ofncal:related, ncal:triggerDateTime, ncal:triggerDuration
In range ofncal:trigger

ncal:TriggerRelation

LabelTriggerRelation
DescriptionThe relation between the trigger and its parent calendar component. This class has been introduced to express the limited vocabulary for the ncal:related property. See the documentation for ncal:related for more details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:related
Instancesncal:endTriggerRelation, ncal:startTriggerRelation

ncal:UnionOfAlarmEventFreebusyJournalTodo

LabelUnionOfAlarmEventFreebusyJournalTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Freebusy (direct), ncal:Event (direct), ncal:Journal (direct), ncal:Alarm (direct), ncal:Todo (direct)
In domain ofncal:attendee
In range of 

ncal:UnionOfAlarmEventFreebusyTodo

LabelUnionOfAlarmEventFreebusyTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Freebusy (direct), ncal:Event (direct), ncal:Alarm (direct), ncal:Todo (direct)
In domain ofncal:duration
In range of 

ncal:UnionOfAlarmEventJournalTodo

LabelUnionOfAlarmEventJournalTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Journal (direct), ncal:Event (direct), ncal:Alarm (direct), ncal:Todo (direct)
In domain ofncal:summaryAltRep, ncal:attach, ncal:descriptionAltRep, ncal:description, ncal:summary
In range of 

ncal:UnionOfAlarmEventTodo

LabelUnionOfAlarmEventTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Event (direct), ncal:Alarm (direct), ncal:Todo (direct)
In domain ofncal:trigger
In range of 

ncal:UnionOfEventFreebusy

LabelUnionOfEventFreebusy
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Freebusy (direct), ncal:Event (direct)
In domain ofncal:dtend
In range of 

ncal:UnionOfEventFreebusyJournalTodo

LabelUnionOfEventFreebusyJournalTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Freebusy (direct), ncal:Journal (direct), ncal:Event (direct), ncal:Todo (direct)
In domain ofncal:contactAltRep, ncal:dtstamp, ncal:organizer, ncal:requestStatus, ncal:contact, ncal:url, ncal:uid
In range of 

ncal:UnionOfEventJournalTimezoneTodo

LabelUnionOfEventJournalTimezoneTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Journal (direct), ncal:Event (direct), ncal:Timezone (direct), ncal:Todo (direct)
In domain ofncal:recurrenceId, ncal:lastModified, ncal:exdate
In range of 

ncal:UnionOfEventJournalTodo

LabelUnionOfEventJournalTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Event (direct), ncal:Journal (direct), ncal:Todo (direct)
In domain ofncal:class, ncal:relatedToChild, ncal:exrule, ncal:relatedToSibling, ncal:categories, ncal:created, ncal:sequence, ncal:relatedToParent, ncal:ncalRelation
In range of 

ncal:UnionOfEventTodo

LabelUnionOfEventTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Event (direct), ncal:Todo (direct)
In domain ofncal:locationAltRep, ncal:resourcesAltRep, ncal:resources, ncal:hasAlarm, ncal:priority, ncal:location, ncal:geo
In range of 

ncal:UnionOfTimezoneObservanceEventFreebusyJournalTimezoneTodo

LabelUnionOfTimezoneObservanceEventFreebusyJournalTimezoneTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Timezone (direct), ncal:Freebusy (direct), ncal:Todo (direct), ncal:Event (direct), ncal:TimezoneObservance (direct), ncal:Journal (direct)
In domain ofncal:commentAltRep, ncal:comment
In range of 

ncal:UnionOfTimezoneObservanceEventFreebusyTimezoneTodo

LabelUnionOfTimezoneObservanceEventFreebusyTimezoneTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Freebusy (direct), ncal:TimezoneObservance (direct), ncal:Event (direct), ncal:Timezone (direct), ncal:Todo (direct)
In domain ofncal:dtstart
In range of 

ncal:UnionOfTimezoneObservanceEventJournalTimezoneTodo

LabelUnionOfTimezoneObservanceEventJournalTimezoneTodo
Description
Super-classesncal:UnionParentClass (direct)
Sub-classesncal:Journal (direct), ncal:TimezoneObservance (direct), ncal:Event (direct), ncal:Timezone (direct), ncal:Todo (direct)
In domain ofncal:rdate, ncal:rrule
In range of 

ncal:Weekday

LabelWeekday
DescriptionDay of the week. This class has been created to provide the limited vocabulary for ncal:byday property. See the documentation for ncal:byday for details.
Super-classes 
Sub-classes 
In domain of 
In range ofncal:bydayWeekday, ncal:wkst
Instancesncal:monday, ncal:saturday, ncal:tuesday, ncal:wednesday, ncal:thursday, ncal:friday, ncal:sunday

Description of Properties

ncal:action

Labelaction
DescriptionThis property defines the action to be invoked when an alarm is triggered. Inspired by RFC 2445 sec 4.8.6.1. Originally this property had a limited set of values. They are expressed as instances of the AlarmAction class.
Domainncal:Alarm
Rangencal:AlarmAction
Cardinalitynone
Super-properties 
Sub-properties 

ncal:attach

Labelattach
DescriptionThe property provides the capability to associate a document object with a calendar component. Defined in the RFC 2445 sec. 4.8.1.1
Domainncal:UnionOfAlarmEventJournalTodo
Rangencal:Attachment
Cardinalitynone
Super-propertiesnie:hasPart (direct), nie:relatedTo
Sub-properties 

ncal:attachmentContent

LabelattachmentContent
DescriptionThe uri of the attachment. Created to express the actual value of the ATTACH property defined in RFC 2445 sec. 4.8.1.1. This property expresses the BINARY datatype of that property. see ncal:attachmentUri for the URI datatype.
Domainncal:Attachment
Rangexsd:string
Cardinalitynone
Super-properties 
Sub-properties 

ncal:attachmentUri

LabelattachmentUri
DescriptionThe uri of the attachment. Created to express the actual value of the ATTACH property defined in RFC 2445 sec. 4.8.1.1. This property expresses the default URI datatype of that property. see ncal:attachmentContents for the BINARY datatype.
Domainncal:Attachment
Rangerdfs:Resource
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:attendee

Labelattendee
DescriptionThe property defines an "Attendee" within a calendar component. Inspired by RFC 2445 sec. 4.8.4.1. Originally this property accepted many parameters. The Attendee class has been introduced to express them all. Note that NCAL is aligned with NCO. The actual value (of the CAL-ADDRESS type) is expressed as an instance of nco:Contact. Remember that the CN parameter has been removed from NCAL. Instead that value should be expressed using nco:fullname property of the above mentioned nco:Contact instance. The RFC stated that whenever this property is attached to a Valarm instance, the Attendee cannot have any parameters apart from involvedContact.
Domainncal:UnionOfAlarmEventFreebusyJournalTodo
Rangencal:Attendee
Cardinalitynone
Super-properties 
Sub-properties 
Mentioned inAlignment with NCO

ncal:byday

Labelbyday
DescriptionWeekdays the recurrence should occur. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangencal:BydayRulePart
Cardinalitynone
Super-properties 
Sub-properties 

ncal:bydayModifier

LabelbydayModifier
DescriptionAn integer modifier for the BYDAY rule part. Each BYDAY value can also be preceded by a positive (+n) or negative (-n) integer. If present, this indicates the nth occurrence of the specific day within the MONTHLY or YEARLY RRULE. For example, within a MONTHLY rule, +1MO (or simply 1MO) represents the first Monday within the month, whereas -1MO represents the last Monday of the month. If an integer modifier is not present, it means all days of this type within the specified frequency. For example, within a MONTHLY rule, MO represents all Mondays within the month. Inspired by RFC 2445 sec. 4.3.10
Domainncal:BydayRulePart
Rangexsd:integer
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:bydayWeekday

LabelbydayWeekday
DescriptionConnects a BydayRulePath with a weekday.
Domainncal:BydayRulePart
Rangencal:Weekday
Cardinalitynone
Super-properties 
Sub-properties 

ncal:byhour

Labelbyhour
DescriptionHour of recurrence. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Cardinalitynone
Super-properties 
Sub-properties 

ncal:byminute

Labelbyminute
DescriptionMinute of recurrence. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Cardinalitynone
Super-properties 
Sub-properties 

ncal:bymonth

Labelbymonth
DescriptionNumber of the month of the recurrence. Valid values are integers from 1 (January) to 12 (December). Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Cardinalitynone
Super-properties 
Sub-properties 

ncal:bymonthday

Labelbymonthday
DescriptionDay of the month when the event should recur. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Cardinalitynone
Super-properties 
Sub-properties 

ncal:bysecond

Labelbysecond
DescriptionSecond of a recurrence. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Cardinalitynone
Super-properties 
Sub-properties 

ncal:bysetpos

Labelbysetpos
DescriptionThe BYSETPOS rule part specify values which correspond to the nth occurrence within the set of events specified by the rule. Valid values are 1 to 366 or -366 to -1. It MUST only be used in conjunction with another BYxxx rule part. For example "the last work day of the month" could be represented as: RRULE: FREQ=MONTHLY; BYDAY=MO, TU, WE, TH, FR; BYSETPOS=-1. Each BYSETPOS value can include a positive (+n) or negative (-n) integer. If present, this indicates the nth occurrence of the specific occurrence within the set of events specified by the rule. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Cardinalitynone
Super-properties 
Sub-properties 

ncal:byweekno

Labelbyweekno
DescriptionThe number of the week an event should recur. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Cardinalitynone
Super-properties 
Sub-properties 

ncal:byyearday

Labelbyyearday
DescriptionDay of the year the event should occur. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Cardinalitynone
Super-properties 
Sub-properties 

ncal:calscale

Labelcalscale
DescriptionThis property defines the calendar scale used for the calendar information specified in the iCalendar object. Defined in RFC 2445 sec. 4.7.1
Domainncal:Calendar
Rangencal:CalendarScale
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:categories

Labelcategories
DescriptionCategories for a calendar component. Inspired by RFC 2445 sec 4.8.1.2 with the following reservations: The LANGUAGE parameter has been discarded. Please use xml:lang literals to express multiple languages. This property can specify multiple comma-separated categories. The order of categories doesn't matter. Please use a separate triple for each category.
Domainncal:UnionOfEventJournalTodo
Rangexsd:string
Cardinalitynone
Super-properties 
Sub-properties 

ncal:class

Labelclass
DescriptionDefines the access classification for a calendar component. Inspired by RFC 2445 sec. 4.8.1.3 with the following reservations: this property has limited vocabulary. Possible values are: PUBLIC, PRIVATE and CONFIDENTIAL. The default is PUBLIC. Those values are expressed as instances of the AccessClassification class. The user may create his/her own if necessary.
Domainncal:UnionOfEventJournalTodo
Rangencal:AccessClassification
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:comment

Labelcomment
DescriptionNon-processing information intended to provide a comment to the calendar user. Inspired by RFC 2445 sec. 4.8.1.4 with the following reservations: the LANGUAGE parameter has been discarded. Please use xml:lang literals to express language. For the ALTREP parameter use the commentAltRep property.
Domainncal:UnionOfTimezoneObservanceEventFreebusyJournalTimezoneTodo
Rangexsd:string
Cardinalitynone
Super-propertiesnie:comment (direct)
Sub-properties 

ncal:commentAltRep

LabelcommentAltRep
DescriptionAlternate representation of the comment. Introduced to cover the ALTREP parameter of the COMMENT property. See documentation of ncal:comment for details.
Domainncal:UnionOfTimezoneObservanceEventFreebusyJournalTimezoneTodo
Rangerdfs:Resource
Cardinalitynone
Super-properties 
Sub-properties 
Mentioned inNCAL Development process

ncal:completed

Labelcompleted
DescriptionThis property defines the date and time that a to-do was actually completed. Inspired by RFC 2445 sec. 4.8.2.1. Note that the RFC allows ONLY UTC time values for this property.
Domainncal:Todo
Rangexsd:dateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:component

Labelcomponent
DescriptionLinks the Vcalendar instance with the calendar components. This property has no direct equivalent in the RFC specification. It has been introduced to express the containmnent relations.
Domainncal:Calendar
Rangencal:CalendarDataObject
Cardinalitynone
Super-propertiesnie:hasPart (direct), nie:relatedTo
Sub-properties 

ncal:contact

Labelcontact
DescriptionThe property is used to represent contact information or alternately a reference to contact information associated with the calendar component. Inspired by RFC 2445 sec. 4.8.4.2 with the following reservations: the LANGUAGE parameter has been discarded. Please use xml:lang literals to express language. For the ALTREP parameter use the contactAltRep property.RFC doesn't define any format for the string.
Domainncal:UnionOfEventFreebusyJournalTodo
Rangexsd:string
Cardinalitynone
Super-properties 
Sub-properties 

ncal:contactAltRep

LabelcontactAltRep
DescriptionAlternate representation of the contact property. Introduced to cover the ALTREP parameter of the CONTACT property. See documentation of ncal:contact for details.
Domainncal:UnionOfEventFreebusyJournalTodo
Rangerdfs:Resource
Cardinalitynone
Super-properties 
Sub-properties 

ncal:count

Labelcount
DescriptionHow many times should an event be repeated. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:created

Labelcreated
DescriptionThis property specifies the date and time that the calendar information was created by the calendar user agent in the calendar store. Note: This is analogous to the creation date and time for a file in the file system. Inspired by RFC 2445 sec. 4.8.7.1. Note that this property is a subproperty of nie:created. The domain of nie:created is nie:DataObject. It is not a superclass of UnionOf_Vevent_Vjournal_Vtodo, but since that union is conceived as an 'abstract' class, and in real-life all resources referenced by this property will also be DataObjects, than this shouldn't cause too much of a problem. Note that RFC allows ONLY UTC time values for this property.
Domainncal:UnionOfEventJournalTodo
Rangexsd:dateTime
Maximum Cardinality1
Super-propertiesnao:created, nao:modified, nie:modified, nie:created (direct), nao:annotation
Sub-properties 

ncal:cutype

Labelcutype
DescriptionTo specify the type of calendar user specified by the property. Inspired by RFC 2445 sec. 4.2.3. This parameter has a limited vocabulary. The terms that may serve as values for this property have been expressed as instances of CalendarUserType class. The user may use instances provided with this ontology or create his own.
Domainncal:Attendee
Rangencal:CalendarUserType
Cardinalitynone
Super-properties 
Sub-properties 

ncal:date

Labeldate
DescriptionDate an instance of NcalDateTime refers to. It was conceived to express values in DATE datatype specified in RFC 2445 4.3.4
Domainncal:NcalDateTime
Rangexsd:date
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:dateTime

LabeldateTime
DescriptionRepresentation of a date an instance of NcalDateTime actually refers to. It's purpose is to express values in DATE-TIME datatype, as defined in RFC 2445 sec. 4.3.5
Domainncal:NcalDateTime
Rangexsd:dateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:daylight

Labeldaylight
DescriptionLinks a timezone with it's daylight observance. This property has no direct equivalent in the RFC 2445. It has been inspired by the structure of the Vtimezone component defined in sec.4.6.5
Domainncal:Timezone
Rangencal:TimezoneObservance
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:delegatedFrom

LabeldelegatedFrom
DescriptionTo specify the calendar users that have delegated their participation to the calendar user specified by the property. Inspired by RFC 2445 sec. 4.2.4. Originally the value type for this property was CAL-ADDRESS. This has been expressed as nco:Contact to promote integration between NCAL and NCO.
Domainncal:Attendee
Rangenco:Contact
Cardinalitynone
Super-properties 
Sub-properties 

ncal:delegatedTo

LabeldelegatedTo
DescriptionTo specify the calendar users to whom the calendar user specified by the property has delegated participation. Inspired by RFC 2445 sec. 4.2.5. Originally the value type for this parameter was CAL-ADDRESS. This has been expressed as nco:Contact to promote integration between NCAL and NCO.
Domainncal:Attendee
Rangenco:Contact
Cardinalitynone
Super-properties 
Sub-properties 

ncal:description

Labeldescription
DescriptionA more complete description of the calendar component, than that provided by the ncal:summary property.Inspired by RFC 2445 sec. 4.8.1.5 with following reservations: the LANGUAGE parameter has been discarded. Please use xml:lang literals to express language. For the ALTREP parameter use the descriptionAltRep property.
Domainncal:UnionOfAlarmEventJournalTodo
Rangexsd:string
Cardinalitynone
Super-propertiesnao:description, nao:annotation, nie:description (direct)
Sub-properties 

ncal:descriptionAltRep

LabeldescriptionAltRep
DescriptionAlternate representation of the calendar entity description. Introduced to cover the ALTREP parameter of the DESCRIPTION property. See documentation of ncal:description for details.
Domainncal:UnionOfAlarmEventJournalTodo
Rangerdfs:Resource
Cardinalitynone
Super-properties 
Sub-properties 
Mentioned inNCAL Development process

ncal:dir

Labeldir
DescriptionSpecifies a reference to a directory entry associated with the calendar user specified by the property. Inspired by RFC 2445 sec. 4.2.6. Originally the data type of the value of this parameter was URI (Usually an LDAP URI). This has been expressed as rdfs:resource.
Domainncal:AttendeeOrOrganizer
Rangerdfs:Resource
Cardinalitynone
Super-properties 
Sub-properties 

ncal:dtend

Labeldtend
DescriptionThis property specifies the date and time that a calendar component ends. Inspired by RFC 2445 sec. 4.8.2.2
Domainncal:UnionOfEventFreebusy
Rangencal:NcalDateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:dtstamp

Labeldtstamp
DescriptionThe property indicates the date/time that the instance of the iCalendar object was created. Inspired by RFC 2445 sec. 4.8.7.1. Note that the RFC allows ONLY UTC values for this property.
Domainncal:UnionOfEventFreebusyJournalTodo
Rangexsd:dateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:dtstart

Labeldtstart
DescriptionThis property specifies when the calendar component begins. Inspired by RFC 2445 sec. 4.8.2.4
Domainncal:UnionOfTimezoneObservanceEventFreebusyTimezoneTodo
Rangencal:NcalDateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:due

Labeldue
DescriptionThis property defines the date and time that a to-do is expected to be completed. Inspired by RFC 2445 sec. 4.8.2.3
Domainncal:Todo
Rangencal:NcalDateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:duration

Labelduration
DescriptionThe property specifies a positive duration of time. Inspired by RFC 2445 sec. 4.8.2.5
Domainncal:UnionOfAlarmEventFreebusyTodo
Rangexsd:duration
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:encoding

Labelencoding
DescriptionTo specify an alternate inline encoding for the property value. Inspired by RFC 2445 sec. 4.2.7. Originally this property had a limited vocabulary. ('8BIT' and 'BASE64'). The terms of this vocabulary have been expressed as instances of the AttachmentEncoding class
Domainncal:Attachment
Rangencal:AttachmentEncoding
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:eventStatus

Labelstatus
DescriptionDefines the overall status or confirmation for an Event. Based on the STATUS property defined in RFC 2445 sec. 4.8.1.11.
Domainncal:Event
Rangencal:EventStatus
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:exdate

Labelexdate
DescriptionThis property defines the list of date/time exceptions for a recurring calendar component. Inspired by RFC 2445 sec. 4.8.5.1
Domainncal:UnionOfEventJournalTimezoneTodo
Rangencal:NcalDateTime
Cardinalitynone
Super-properties 
Sub-properties 

ncal:exrule

Labelexrule
DescriptionThis property defines a rule or repeating pattern for an exception to a recurrence set. Inspired by RFC 2445 sec. 4.8.5.2.
Domainncal:UnionOfEventJournalTodo
Rangencal:RecurrenceRule
Cardinalitynone
Super-properties 
Sub-properties 

ncal:fbtype

Labelfbtype
DescriptionTo specify the free or busy time type. Inspired by RFC 2445 sec. 4.2.9. The RFC specified a limited vocabulary for the values of this property. The terms of this vocabulary have been expressed as instances of the FreebusyType class. The user can use instances provided with this ontology or create his own.
Domainncal:FreebusyPeriod
Rangencal:FreebusyType
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:fmttype

Labelfmttype
DescriptionTo specify the content type of a referenced object. Inspired by RFC 2445 sec. 4.2.8. The value of this property should be an IANA-registered content type (e.g. application/binary)
Domainncal:Attachment
Rangexsd:string
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:freebusy

Labelfreebusy
DescriptionThe property defines one or more free or busy time intervals. Inspired by RFC 2445 sec. 4.8.2.6. Note that the periods specified by this property can only be expressed with UTC times. Originally this property could have many comma-separated values. Please use a separate triple for each value.
Domainncal:Freebusy
Rangencal:FreebusyPeriod
Cardinalitynone
Super-properties 
Sub-properties 

ncal:freq

Labelfreq
DescriptionFrequency of a recurrence rule. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangencal:RecurrenceFrequency
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:geo

Labelgeo
DescriptionThis property specifies information related to the global position for the activity specified by a calendar component. Inspired by RFC 2445 sec. 4.8.1.6
Domainncal:UnionOfEventTodo
Rangehttp://www.w3.org/2003/01/geo/wgs84_pos#Point
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:hasAlarm

LabelhasAlarm
DescriptionLinks an event or a todo with a DataObject that can be interpreted as an alarm. This property has no direct equivalent in the RFC 2445. It has been provided to express this relation.
Domainncal:UnionOfEventTodo
Rangencal:CalendarDataObject
Cardinalitynone
Super-propertiesnie:hasPart (direct), nie:relatedTo
Sub-properties 

ncal:interval

Labelinterval
DescriptionThe INTERVAL rule part contains a positive integer representing how often the recurrence rule repeats. The default value is "1", meaning every second for a SECONDLY rule, or every minute for a MINUTELY rule, every hour for an HOURLY rule, every day for a DAILY rule, every week for a WEEKLY rule, every month for a MONTHLY rule andevery year for a YEARLY rule. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangexsd:integer
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:involvedContact

LabelinvolvedContact
DescriptionA contact of the Attendee or the organizer involved in an event or other calendar entity. This property has been introduced to express the actual value of the ATTENDEE and ORGANIZER properties. The contact will also represent the CN parameter of those properties. See documentation of ncal:attendee or ncal:organizer for more details.
Domainncal:AttendeeOrOrganizer
Rangenco:Contact
Cardinalitynone
Super-properties 
Sub-properties 

ncal:journalStatus

Labelstatus
DescriptionDefines the overall status or confirmation for a journal entry. Based on the STATUS property defined in RFC 2445 sec. 4.8.1.11.
Domainncal:Journal
Rangencal:JournalStatus
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:lastModified

LabellastModified
DescriptionThe property specifies the date and time that the information associated with the calendar component was last revised in the calendar store. Note: This is analogous to the modification date and time for a file in the file system. Inspired by RFC 2445 sec. 4.8.7.3. Note that the RFC allows ONLY UTC time values for this property.
Domainncal:UnionOfEventJournalTimezoneTodo
Rangexsd:dateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:location

Labellocation
DescriptionDefines the intended venue for the activity defined by a calendar component. Inspired by RFC 2445 sec 4.8.1.7 with the following reservations: the LANGUAGE parameter has been discarded. Please use xml:lang literals to express language. For the ALTREP parameter use the locationAltRep property.
Domainncal:UnionOfEventTodo
Rangexsd:string
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:locationAltRep

LabellocationAltRep
DescriptionAlternate representation of the event or todo location. Introduced to cover the ALTREP parameter of the LOCATION property. See documentation of ncal:location for details.
Domainncal:UnionOfEventTodo
Rangerdfs:Resource
Cardinalitynone
Super-properties 
Sub-properties 

ncal:member

Labelmember
DescriptionTo specify the group or list membership of the calendar user specified by the property. Inspired by RFC 2445 sec. 4.2.11. Originally this parameter had a value type of CAL-ADDRESS. This has been expressed as nco:Contact to promote integration between NCAL and NCO
Domainncal:Attendee
Rangenco:Contact
Cardinalitynone
Super-properties 
Sub-properties 

ncal:method

Labelmethod
DescriptionThis property defines the iCalendar object method associated with the calendar object. Defined in RFC 2445 sec. 4.7.2
Domainncal:Calendar
Rangexsd:string
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:ncalRelation

LabelncalRelation
DescriptionA common superproperty for all types of ncal relations. It is not to be used directly.
Domainncal:UnionOfEventJournalTodo
Rangexsd:string
Cardinalitynone
Super-properties 
Sub-propertiesncal:relatedToParent (direct), ncal:relatedToChild (direct), ncal:relatedToSibling (direct)

ncal:ncalTimezone

LabelncalTimezone
DescriptionThe timezone instance that should be used to interpret an NcalDateTime. The purpose of this property is similar to the TZID parameter specified in RFC 2445 sec. 4.2.19
Domainncal:NcalDateTime
Rangencal:Timezone
Maximum Cardinality1
Super-properties 
Sub-properties 
Mentioned inTimezones

ncal:organizer

Labelorganizer
DescriptionThe property defines the organizer for a calendar component. Inspired by RFC 2445 sec. 4.8.4.3. Originally this property accepted many parameters. The Organizer class has been introduced to express them all. Note that NCAL is aligned with NCO. The actual value (of the CAL-ADDRESS type) is expressed as an instance of nco:Contact. Remember that the CN parameter has been removed from NCAL. Instead that value should be expressed using nco:fullname property of the above mentioned nco:Contact instance.
Domainncal:UnionOfEventFreebusyJournalTodo
Rangencal:Organizer
Cardinalitynone
Super-properties 
Sub-properties 
Mentioned inAlignment with NCO

ncal:partstat

Labelpartstat
DescriptionTo specify the participation status for the calendar user specified by the property. Inspired by RFC 2445 sec. 4.2.12. Originally this parameter had three sets of allowed values. Which set applied to a particular case - depended on the type of calendar entity this parameter occured in. (event, todo, journal entry). This would be awkward to model in RDF so a single ParticipationStatus class has been introduced. Terms of the values vocabulary are expressed as instances of this class. Users are advised to pay attention which instances they use.
Domainncal:Attendee
Rangencal:ParticipationStatus
Cardinalitynone
Super-properties 
Sub-properties 

ncal:percentComplete

LabelpercentComplete
DescriptionThis property is used by an assignee or delegatee of a to-do to convey the percent completion of a to-do to the Organizer. Inspired by RFC 2445 sec. 4.8.1.8
Domainncal:Todo
Rangexsd:integer
Cardinalitynone
Super-properties 
Sub-properties 

ncal:periodBegin

LabelperiodBegin
DescriptionBeginng of a period. Inspired by the first part of a structured value of the PERIOD datatype specified in RFC 2445 sec. 4.3.9
Domainncal:NcalPeriod
Rangexsd:dateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:periodDuration

LabelperiodDuration
DescriptionDuration of a period of time. Inspired by the second part of a structured value of the PERIOD datatype specified in RFC 2445 sec. 4.3.9. Note that a single NcalPeriod instance shouldn't have the periodEnd and periodDuration properties specified simultaneously.
Domainncal:NcalPeriod
Rangexsd:duration
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:periodEnd

LabelperiodEnd
DescriptionEnd of a period of time. Inspired by the second part of a structured value of a PERIOD datatype specified in RFC 2445 sec. 4.3.9. Note that a single NcalPeriod instance shouldn't have the periodEnd and periodDuration properties specified simultaneously.
Domainncal:NcalPeriod
Rangexsd:dateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:priority

Labelpriority
DescriptionThe property defines the relative priority for a calendar component. Inspired by RFC 2445 sec. 4.8.1.9
Domainncal:UnionOfEventTodo
Rangexsd:integer
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:prodid

Labelprodid
DescriptionThis property specifies the identifier for the product that created the iCalendar object. Defined in RFC 2445 sec. 4.7.2
Domainncal:Calendar
Rangexsd:string
Cardinalitynone
Super-propertiesnie:generator (direct)
Sub-properties 

ncal:range

Labelrange
DescriptionTo specify the effective range of recurrence instances from the instance specified by the recurrence identifier specified by the property. It is intended to express the RANGE parameter specified in RFC 2445 sec. 4.2.13. The set of possible values for this property is limited. See also the documentation for ncal:recurrenceId for more details.
Domainncal:RecurrenceIdentifier
Rangencal:RecurrenceIdentifierRange
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:rdate

Labelrdate
DescriptionThis property defines the list of date/times for a recurrence set. Inspired by RFC 2445 sec. 4.8.5.3. Note that RFC allows both DATE, DATE-TIME and PERIOD values for this property. That's why the range has been set to NcalTimeEntity.
Domainncal:UnionOfTimezoneObservanceEventJournalTimezoneTodo
Rangencal:NcalTimeEntity
Cardinalitynone
Super-properties 
Sub-properties 

ncal:recurrenceId

LabelrecurrenceId
DescriptionThis property is used in conjunction with the "UID" and "SEQUENCE" property to identify a specific instance of a recurring "VEVENT", "VTODO" or "VJOURNAL" calendar component. The property value is the effective value of the "DTSTART" property of the recurrence instance. Inspired by the RFC 2445 sec. 4.8.4.4
Domainncal:UnionOfEventJournalTimezoneTodo
Rangencal:RecurrenceIdentifier
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:recurrenceIdDateTime

LabelrecurrenceIdDateTime
DescriptionThe date and time of a recurrence identifier. Provided to express the actual value of the ncal:recurrenceId property. See documentation for ncal:recurrenceId for details.
Domainncal:RecurrenceIdentifier
Rangencal:NcalDateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:related

Labelrelated
DescriptionTo specify the relationship of the alarm trigger with respect to the start or end of the calendar component. Inspired by RFC 2445 4.2.14. The RFC has specified two possible values for this property ('START' and 'END') they have been expressed as instances of the TriggerRelation class.
Domainncal:Trigger
Rangencal:TriggerRelation
Cardinalitynone
Super-properties 
Sub-properties 

ncal:relatedToChild

LabelrelatedToChild
DescriptionThe property is used to represent a relationship or reference between one calendar component and another. Inspired by RFC 2445 sec. 4.8.4.5. Originally this property had a RELTYPE parameter. It has been decided to introduce three different properties to express the values of that parameter. This property expresses the RELATED-TO property with RELTYPE=CHILD parameter.
Domainncal:UnionOfEventJournalTodo
Rangexsd:string
Cardinalitynone
Super-propertiesncal:ncalRelation (direct)
Sub-properties 

ncal:relatedToParent

LabelrelatedToParent
DescriptionThe property is used to represent a relationship or reference between one calendar component and another. Inspired by RFC 2445 sec. 4.8.4.5. Originally this property had a RELTYPE parameter. It has been decided that it is more natural to introduce three different properties to express the values of that parameter. This property expresses the RELATED-TO property with no RELTYPE parameter (the default value is PARENT), or with explicit RELTYPE=PARENT parameter.
Domainncal:UnionOfEventJournalTodo
Rangexsd:string
Cardinalitynone
Super-propertiesncal:ncalRelation (direct)
Sub-properties 

ncal:relatedToSibling

LabelrelatedToSibling
DescriptionThe property is used to represent a relationship or reference between one calendar component and another. Inspired by RFC 2445 sec. 4.8.4.5. Originally this property had a RELTYPE parameter. It has been decided that it is more natural to introduce three different properties to express the values of that parameter. This property expresses the RELATED-TO property with RELTYPE=SIBLING parameter.
Domainncal:UnionOfEventJournalTodo
Rangexsd:string
Cardinalitynone
Super-propertiesncal:ncalRelation (direct)
Sub-properties 

ncal:repeat

Labelrepeat
DescriptionThis property defines the number of time the alarm should be repeated, after the initial trigger. Inspired by RFC 2445 sec. 4.8.6.2
Domainncal:Alarm
Rangexsd:integer
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:requestStatus

LabelrequestStatus
DescriptionThis property defines the status code returned for a scheduling request. Inspired by RFC 2445 sec. 4.8.8.2. Original value of this property was a four-element structure. The RequestStatus class has been introduced to express it. In RFC 2445 this property could have the LANGUAGE parameter. This has been discarded in this ontology. Use xml:lang literals to express it if necessary.
Domainncal:UnionOfEventFreebusyJournalTodo
Rangencal:RequestStatus
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:requestStatusData

LabelrequestStatusData
DescriptionAdditional data associated with a request status. Inspired by the third part of the structured value for the REQUEST-STATUS property defined in RFC 2445 sec. 4.8.8.2 ("Textual exception data. For example, the offending property name and value or complete property line")
Domainncal:RequestStatus
Rangexsd:string
Cardinalitynone
Super-properties 
Sub-properties 

ncal:resources

Labelresources
DescriptionDefines the equipment or resources anticipated for an activity specified by a calendar entity. Inspired by RFC 2445 sec. 4.8.1.10 with the following reservations: the LANGUAGE parameter has been discarded. Please use xml:lang literals to express language. For the ALTREP parameter use the resourcesAltRep property. This property specifies multiple resources. The order is not important. it is recommended to introduce a separate triple for each resource.
Domainncal:UnionOfEventTodo
Rangexsd:string
Cardinalitynone
Super-properties 
Sub-properties 

ncal:resourcesAltRep

LabelresourcesAltRep
DescriptionAlternate representation of the resources needed for an event or todo. Introduced to cover the ALTREP parameter of the resources property. See documentation for ncal:resources for details.
Domainncal:UnionOfEventTodo
Rangerdfs:Resource
Cardinalitynone
Super-properties 
Sub-properties 

ncal:returnStatus

LabelreturnStatus
DescriptionShort return status. Inspired by the first element of the structured value of the REQUEST-STATUS property described in RFC 2445 sec. 4.8.8.2. The short return status is a PERIOD character (US-ASCII decimal 46) separated 3-tuple of integers. For example, "3.1.1". The successive levels of integers provide for a successive level of status code granularity. The following are initial classes for the return status code. Individual iCalendar object methods will define specific return status codes for these classes. In addition, other classes for the return status code may be defined using the registration process defined later in this memo. 1.xx - Preliminary success. This class of status of status code indicates that the request has request has been initially processed but that completion is pending. 2.xx -Successful. This class of status code indicates that the request was completed successfuly. However, the exact status code can indicate that a fallback has been taken. 3.xx - Client Error. This class of status code indicates that the request was not successful. The error is the result of either a syntax or a semantic error in the client formatted request. Request should not be retried until the condition in the request is corrected. 4.xx - Scheduling Error. This class of status code indicates that the request was not successful. Some sort of error occurred within the calendaring and scheduling service, not directly related to the request itself.
Domainncal:RequestStatus
Rangexsd:string
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:role

Labelrole
DescriptionTo specify the participation role for the calendar user specified by the property. Inspired by the RFC 2445 sec. 4.2.16. Originally this property had a limited vocabulary for values. The terms of that vocabulary have been expressed as instances of the AttendeeRole class.
Domainncal:Attendee
Rangencal:AttendeeRole
Cardinalitynone
Super-properties 
Sub-properties 

ncal:rrule

Labelrrule
DescriptionThis property defines a rule or repeating pattern for recurring events, to-dos, or time zone definitions. sec. 4.8.5.4
Domainncal:UnionOfTimezoneObservanceEventJournalTimezoneTodo
Rangencal:RecurrenceRule
Cardinalitynone
Super-properties 
Sub-properties 

ncal:rsvp

Labelrsvp
DescriptionTo specify whether there is an expectation of a favor of a reply from the calendar user specified by the property value. Inspired by RFC 2445 sec. 4.2.17
Domainncal:Attendee
Rangexsd:boolean
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:sentBy

LabelsentBy
DescriptionTo specify the calendar user that is acting on behalf of the calendar user specified by the property. Inspired by RFC 2445 sec. 4.2.18. The original data type of this property was a mailto: URI. This has been changed to nco:Contact to promote integration between NCO and NCAL.
Domainncal:AttendeeOrOrganizer
Rangenco:Contact
Cardinalitynone
Super-properties 
Sub-properties 

ncal:sequence

Labelsequence
DescriptionThis property defines the revision sequence number of the calendar component within a sequence of revisions. Inspired by RFC 2445 sec. 4.8.7.4
Domainncal:UnionOfEventJournalTodo
Rangexsd:integer
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:standard

Labelstandard
DescriptionLinks the timezone with the standard timezone observance. This property has no direct equivalent in the RFC 2445. It has been inspired by the structure of the Vtimezone component defined in sec.4.6.5
Domainncal:Timezone
Rangencal:TimezoneObservance
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:statusDescription

LabelstatusDescription
DescriptionLonger return status description. Inspired by the second part of the structured value of the REQUEST-STATUS property defined in RFC 2445 sec. 4.8.8.2
Domainncal:RequestStatus
Rangexsd:string
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:summary

Labelsummary
DescriptionDefines a short summary or subject for the calendar component. Inspired by RFC 2445 sec 4.8.1.12 with the following reservations: the LANGUAGE parameter has been discarded. Please use xml:lang literals to express language. For the ALTREP parameter use the summaryAltRep property.
Domainncal:UnionOfAlarmEventJournalTodo
Rangexsd:string
Cardinalitynone
Super-properties 
Sub-properties 

ncal:summaryAltRep

LabelsummaryAltRep
DescriptionAlternate representation of the comment. Introduced to cover the ALTREP parameter of the SUMMARY property. See documentation of ncal:summary for details.
Domainncal:UnionOfAlarmEventJournalTodo
Rangerdfs:Resource
Cardinalitynone
Super-properties 
Sub-properties 

ncal:todoStatus

Labelstatus
DescriptionDefines the overall status or confirmation for a todo. Based on the STATUS property defined in RFC 2445 sec. 4.8.1.11.
Domainncal:Todo
Rangencal:TodoStatus
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:transp

Labeltransp
DescriptionDefines whether an event is transparent or not to busy time searches. Inspired by RFC 2445 sec.4.8.2.7. Values for this property can be chosen from a limited vocabulary. To express this a TimeTransparency class has been introduced.
Domainncal:Event
Rangencal:TimeTransparency
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:trigger

Labeltrigger
DescriptionThis property specifies when an alarm will trigger. Inspired by RFC 2445 sec. 4.8.6.3 Originally the value of this property could accept two types : duration and date-time. To express this fact a Trigger class has been introduced. It also has a related property to account for the RELATED parameter.
Domainncal:UnionOfAlarmEventTodo
Rangencal:Trigger
Cardinalitynone
Super-properties 
Sub-properties 

ncal:triggerDateTime

LabeltriggerDateTime
DescriptionThe exact date and time of the trigger. This property has been created to express the VALUE=DATE, and VALUE=DATE-TIME parameters of the TRIGGER property. See the documentation for ncal:trigger for more details
Domainncal:Trigger
Rangexsd:dateTime
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:triggerDuration

LabeltriggerDuration
DescriptionThe duration of a trigger. This property has been created to express the VALUE=DURATION parameter of the TRIGGER property. See documentation for ncal:trigger for more details.
Domainncal:Trigger
Rangexsd:duration
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:tzid

Labeltzid
DescriptionThis property specifies the text value that uniquely identifies the "VTIMEZONE" calendar component. Inspired by RFC 2445 sec 4.8.3.1
Domainncal:Timezone
Rangexsd:string
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:tzname

Labeltzname
DescriptionSpecifies the customary designation for a timezone description. Inspired by RFC 2445 sec. 4.8.3.2 The LANGUAGE parameter has been discarded. Please xml:lang literals to express languages. Original specification for the domain of this property stated that it must appear within the timezone component. In this ontology the TimezoneObservance class has been itroduced to clarify this specification.
Domainncal:TimezoneObservance
Rangexsd:string
Cardinalitynone
Super-properties 
Sub-properties 

ncal:tzoffsetfrom

Labeltzoffsetfrom
DescriptionThis property specifies the offset which is in use prior to this time zone observance. Inspired by RFC 2445 sec. 4.8.3.3. The original domain was underspecified. It said that this property must appear within a Timezone component. In this ontology a TimezoneObservance class has been introduced to clarify this specification. The original range was UTC-OFFSET. There is no equivalent among the XSD datatypes so plain string was chosen.
Domainncal:TimezoneObservance
Rangexsd:string
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:tzoffsetto

Labeltzoffsetto
DescriptionThis property specifies the offset which is in use in this time zone observance. nspired by RFC 2445 sec. 4.8.3.4. The original domain was underspecified. It said that this property must appear within a Timezone component. In this ontology a TimezoneObservance class has been introduced to clarify this specification. The original range was UTC-OFFSET. There is no equivalent among the XSD datatypes so plain string was chosen.
Domainncal:TimezoneObservance
Rangexsd:string
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:tzurl

Labeltzurl
DescriptionThe TZURL provides a means for a VTIMEZONE component to point to a network location that can be used to retrieve an up-to- date version of itself. Inspired by RFC 2445 sec. 4.8.3.5. Originally the range of this property had been specified as URI.
Domainncal:Timezone
Rangerdfs:Resource
Cardinalitynone
Super-properties 
Sub-properties 

ncal:uid

Labeluid
DescriptionThis property defines the persistent, globally unique identifier for the calendar component. Inspired by the RFC 2445 sec 4.8.4.7
Domainncal:UnionOfEventFreebusyJournalTodo
Rangexsd:string
Maximum Cardinality1
Super-propertiesnie:identifier (direct), nao:identifier
Sub-properties 

ncal:until

Labeluntil
DescriptionThe UNTIL rule part defines a date-time value which bounds the recurrence rule in an inclusive manner. If the value specified by UNTIL is synchronized with the specified recurrence, this date or date-time becomes the last instance of the recurrence. If specified as a date-time value, then it MUST be specified in an UTC time format. If not present, and the COUNT rule part is also not present, the RRULE is considered to repeat forever.
Domainncal:RecurrenceRule
Rangexsd:dateTime
Cardinalitynone
Super-properties 
Sub-properties 

ncal:url

Labelurl
DescriptionThis property defines a Uniform Resource Locator (URL) associated with the iCalendar object. Inspired by the RFC 2445 sec. 4.8.4.6. Original range had been specified as URI.
Domainncal:UnionOfEventFreebusyJournalTodo
Rangerdfs:Resource
Maximum Cardinality1
Super-properties 
Sub-properties 

ncal:version

Labelversion
DescriptionThis property specifies the identifier corresponding to the highest version number or the minimum and maximum range of the iCalendar specification that is required in order to interpret the iCalendar object. Defined in RFC 2445 sec. 4.7.4
Domainncal:Calendar
Rangexsd:string
Cardinalitynone
Super-propertiesnie:generatorOption (direct)
Sub-properties 

ncal:wkst

Labelwkst
DescriptionThe day that's counted as the start of the week. It is used to disambiguate the byweekno rule. Defined in RFC 2445 sec. 4.3.10
Domainncal:RecurrenceRule
Rangencal:Weekday
Maximum Cardinality1
Super-properties 
Sub-properties