Files
win8phoneApp/CampusAppWP8/CampusAppWP8/Utility/ICSObjectConst.cs
Christian Fiedler f73d722555 ics classes, statics
2013-09-03 18:49:52 +02:00

678 lines
30 KiB
C#

//-----------------------------------------------------------------------------
// <copyright file="ICSObjectConst.cs" company="BTU/IIT">
// Company copyright tag.
// </copyright>
// <author>fiedlchr</author>
// <sience>27.08.2013</sience>
//-----------------------------------------------------------------------------
namespace CampusAppWP8.Utility
{
using System.Collections.Generic;
public class ICSDict
{
public class ICSDesc
{
private string name = string.Empty;
public ICSDesc()
{
}
public string Name
{
get
{
return this.name;
}
protected set
{
this.name = value;
}
}
public bool Is(string tag)
{
return this.name.Equals(tag);
}
}
public class ICSParamDesc : ICSDesc
{
private List<string> types = null;
public ICSParamDesc(string name, string[] typeList) : base()
{
this.Name = name;
if((typeList != null) && (typeList.Length > 0))
{
this.types = new List<string>();
this.types.AddRange(types);
}
}
public List<string> List
{
get
{
return this.types;
}
private set
{
this.types = value;
}
}
public bool HasList()
{
return ((this.types != null) && (this.types.Count > 0));
}
}
public class ICSValueDesc : ICSDesc
{
private List<ICSElemDesc> subs = null;
public ICSValueDesc(string name, ICSElemDesc[] elemList) : base()
{
this.Name = name;
if((elemList != null) && (elemList.Length > 0))
{
this.subs = new List<ICSElemDesc>();
this.subs.AddRange(elemList);
}
}
public List<ICSElemDesc> List
{
get
{
return this.subs;
}
private set
{
this.subs = value;
}
}
public bool HasList()
{
return ((this.subs != null) && (this.subs.Count > 0));
}
public bool IsInList(string tagName)
{
bool retValue = false;
if (this.HasList() == true)
{
foreach (ICSElemDesc e in this.subs)
{
if (e.Is(tagName) == true)
{
retValue = true;
}
}
}
return retValue;
}
public ICSElemDesc GetValue(string tagName)
{
ICSElemDesc retValue = null;
if (this.HasList() == true)
{
foreach (ICSElemDesc e in this.subs)
{
if (e.Is(tagName) == true)
{
retValue = e;
}
}
}
return retValue;
}
}
public class ICSElemDesc : ICSDesc
{
private List<ICSParamDesc> param = null;
private List<ICSValueDesc> value = null;
public ICSElemDesc(string name, ICSParamDesc[] paramList, ICSValueDesc[] valueList) : base()
{
this.Name = name;
if ((paramList != null) && (paramList.Length > 0))
{
this.param = new List<ICSParamDesc>();
this.param.AddRange(paramList);
}
if ((valueList != null) && (valueList.Length > 0))
{
this.value = new List<ICSValueDesc>();
this.value.AddRange(valueList);
}
}
public List<ICSParamDesc> ParamList
{
get
{
return this.param;
}
private set
{
this.param = value;
}
}
public List<ICSValueDesc> ValueList
{
get
{
return this.value;
}
private set
{
this.value = value;
}
}
public bool HasParams()
{
return ((this.param != null) && (this.param.Count > 0));
}
public bool HasValues()
{
return ((this.value != null) && (this.value.Count > 0));
}
public ICSValueDesc GetValue(string tagName)
{
ICSValueDesc retValue = null;
if (this.HasValues() == true)
{
foreach (ICSValueDesc e in this.value)
{
if (e.Is(tagName) == true)
{
retValue = e;
}
}
}
return retValue;
}
}
public static ICSValueDesc Root = new ICSValueDesc("ROOT", new ICSElemDesc[] {
new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VCALENDAR, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.VERSION, null, null),
new ICSElemDesc(ICSTag.PRODUCT_ID, null, null),
new ICSElemDesc(ICSTag.CAL_SCALE, null, new ICSValueDesc[] {
new ICSValueDesc(ICSValue.GREGORIAN, null)
}),
new ICSElemDesc(ICSTag.METHOD, null, null),
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VCALENDAR, null)
}),
new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VEVENT, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.DT_STAMP, null, null),
new ICSElemDesc(ICSTag.USER_ID, null, null),
new ICSElemDesc(ICSTag.DT_START, null, null),
new ICSElemDesc(ICSTag.ACCESS_CLASS, null, null),
new ICSElemDesc(ICSTag.DT_CREATED, null, null),
new ICSElemDesc(ICSTag.DESCRIPTION, null, null),
new ICSElemDesc(ICSTag.GEO, null, null),
new ICSElemDesc(ICSTag.DT_MODIFIED, null, null),
new ICSElemDesc(ICSTag.LOCATION, null, null),
new ICSElemDesc(ICSTag.ORGANIZER, null, null),
new ICSElemDesc(ICSTag.PRIORITY, null, null),
new ICSElemDesc(ICSTag.SEQ, null, null),
new ICSElemDesc(ICSTag.STATUS, null, null),
new ICSElemDesc(ICSTag.SUMMARY, null, null),
new ICSElemDesc(ICSTag.TRANSP, null, null),
new ICSElemDesc(ICSTag.URL, null, null),
new ICSElemDesc(ICSTag.RECURRENCE_ID, null, null),
new ICSElemDesc(ICSTag.RRULE, null, null),
new ICSElemDesc(ICSTag.DT_END, null, null),
new ICSElemDesc(ICSTag.DURATION, null, null),
new ICSElemDesc(ICSTag.ATTACHMENT, null, null),
new ICSElemDesc(ICSTag.ATTENDEE, null, null),
new ICSElemDesc(ICSTag.CATEGORIES, null, null),
new ICSElemDesc(ICSTag.COMMENT, null, null),
new ICSElemDesc(ICSTag.CONTACT, null, null),
new ICSElemDesc(ICSTag.EXDATE, null, null),
new ICSElemDesc(ICSTag.RSTATUS, null, null),
new ICSElemDesc(ICSTag.RELATED, null, null),
new ICSElemDesc(ICSTag.RESOURCES, null, null),
new ICSElemDesc(ICSTag.RDATE, null, null),
new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VALARM, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.ACTION, null, new ICSValueDesc[] { // audio, display, email
new ICSValueDesc(ICSValue.AUDIO, null),
new ICSValueDesc(ICSValue.DISP, null),
new ICSValueDesc(ICSValue.EMAIL, null)
}),
new ICSElemDesc(ICSTag.TRIGGER, null, null), // audio, display, email
new ICSElemDesc(ICSTag.DURATION, null, null), // audio, display, email
new ICSElemDesc(ICSTag.REPEAT, null, null), // audio, display, email
new ICSElemDesc(ICSTag.ATTACHMENT, null, null), // audio, email
new ICSElemDesc(ICSTag.DESCRIPTION, null, null),// display, eamil
new ICSElemDesc(ICSTag.SUMMARY, null, null), // email
new ICSElemDesc(ICSTag.ATTENDEE, null, null), // email
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { // audio, display, email
new ICSValueDesc(ICSTag.VALARM, null)
})
})
}),
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VEVENT, null)
})
}),
new ICSValueDesc(ICSTag.VTODO, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.DT_STAMP, null, null),
new ICSElemDesc(ICSTag.USER_ID, null, null),
new ICSElemDesc(ICSTag.ACCESS_CLASS, null, null),
new ICSElemDesc(ICSTag.COMPLETED, null, null),
new ICSElemDesc(ICSTag.DT_CREATED, null, null),
new ICSElemDesc(ICSTag.DESCRIPTION, null, null),
new ICSElemDesc(ICSTag.DT_START, null, null),
new ICSElemDesc(ICSTag.GEO, null, null),
new ICSElemDesc(ICSTag.DT_MODIFIED, null, null),
new ICSElemDesc(ICSTag.LOCATION, null, null),
new ICSElemDesc(ICSTag.ORGANIZER, null, null),
new ICSElemDesc(ICSTag.PERCENT, null, null),
new ICSElemDesc(ICSTag.PRIORITY, null, null),
new ICSElemDesc(ICSTag.RECURRENCE_ID, null, null),
new ICSElemDesc(ICSTag.SEQ, null, null),
new ICSElemDesc(ICSTag.STATUS, null, null),
new ICSElemDesc(ICSTag.SUMMARY, null, null),
new ICSElemDesc(ICSTag.URL, null, null),
new ICSElemDesc(ICSTag.RRULE, null, null),
new ICSElemDesc(ICSTag.DUE, null, null),
new ICSElemDesc(ICSTag.DURATION, null, null),
new ICSElemDesc(ICSTag.ATTACHMENT, null, null),
new ICSElemDesc(ICSTag.ATTENDEE, null, null),
new ICSElemDesc(ICSTag.CATEGORIES, null, null),
new ICSElemDesc(ICSTag.COMMENT, null, null),
new ICSElemDesc(ICSTag.CONTACT, null, null),
new ICSElemDesc(ICSTag.EXDATE, null, null),
new ICSElemDesc(ICSTag.RSTATUS, null, null),
new ICSElemDesc(ICSTag.RELATED, null, null),
new ICSElemDesc(ICSTag.RESOURCES, null, null),
new ICSElemDesc(ICSTag.RDATE, null, null),
new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VALARM, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.ACTION, null, new ICSValueDesc[] { // audio, display, email
new ICSValueDesc(ICSValue.AUDIO, null),
new ICSValueDesc(ICSValue.DISP, null),
new ICSValueDesc(ICSValue.EMAIL, null)
}),
new ICSElemDesc(ICSTag.TRIGGER, null, null), // audio, display, email
new ICSElemDesc(ICSTag.DURATION, null, null), // audio, display, email
new ICSElemDesc(ICSTag.REPEAT, null, null), // audio, display, email
new ICSElemDesc(ICSTag.ATTACHMENT, null, null), // audio, email
new ICSElemDesc(ICSTag.DESCRIPTION, null, null),// display, eamil
new ICSElemDesc(ICSTag.SUMMARY, null, null), // email
new ICSElemDesc(ICSTag.ATTENDEE, null, null), // email
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { // audio, display, email
new ICSValueDesc(ICSTag.VALARM, null)
})
})
}),
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VTODO, null)
})
}),
new ICSValueDesc(ICSTag.VJOURNAL, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.DT_STAMP, null, null),
new ICSElemDesc(ICSTag.USER_ID, null, null),
new ICSElemDesc(ICSTag.ACCESS_CLASS, null, null),
new ICSElemDesc(ICSTag.DT_CREATED, null, null),
new ICSElemDesc(ICSTag.DT_START, null, null),
new ICSElemDesc(ICSTag.DT_MODIFIED, null, null),
new ICSElemDesc(ICSTag.ORGANIZER, null, null),
new ICSElemDesc(ICSTag.RECURRENCE_ID, null, null),
new ICSElemDesc(ICSTag.SEQ, null, null),
new ICSElemDesc(ICSTag.STATUS, null, null),
new ICSElemDesc(ICSTag.SUMMARY, null, null),
new ICSElemDesc(ICSTag.URL, null, null),
new ICSElemDesc(ICSTag.RRULE, null, null),
new ICSElemDesc(ICSTag.ATTACHMENT, null, null),
new ICSElemDesc(ICSTag.ATTENDEE, null, null),
new ICSElemDesc(ICSTag.CATEGORIES, null, null),
new ICSElemDesc(ICSTag.COMMENT, null, null),
new ICSElemDesc(ICSTag.CONTACT, null, null),
new ICSElemDesc(ICSTag.DESCRIPTION, null, null),
new ICSElemDesc(ICSTag.EXDATE, null, null),
new ICSElemDesc(ICSTag.RELATED, null, null),
new ICSElemDesc(ICSTag.RDATE, null, null),
new ICSElemDesc(ICSTag.RSTATUS, null, null),
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VJOURNAL, null)
})
}),
new ICSValueDesc(ICSTag.VFREEBUSY, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.DT_STAMP, null, null),
new ICSElemDesc(ICSTag.USER_ID, null, null),
new ICSElemDesc(ICSTag.CONTACT, null, null),
new ICSElemDesc(ICSTag.DT_START, null, null),
new ICSElemDesc(ICSTag.DT_END, null, null),
new ICSElemDesc(ICSTag.ORGANIZER, null, null),
new ICSElemDesc(ICSTag.URL, null, null),
new ICSElemDesc(ICSTag.ATTENDEE, null, null),
new ICSElemDesc(ICSTag.COMMENT, null, null),
new ICSElemDesc(ICSTag.FREEBUSY, null, null),
new ICSElemDesc(ICSTag.RSTATUS, null, null),
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VFREEBUSY, null)
})
}),
new ICSValueDesc(ICSTag.VTIMEZONE, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.TIME_ZONE_ID, null, null),
new ICSElemDesc(ICSTag.DT_MODIFIED, null, null),
new ICSElemDesc(ICSTag.TIME_ZONE_URL, null, null),
new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.STANDARD, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.DT_START, null, null),
new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_TO, null, null),
new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_FROM, null, null),
new ICSElemDesc(ICSTag.RRULE, null, null),
new ICSElemDesc(ICSTag.COMMENT, null, null),
new ICSElemDesc(ICSTag.RDATE, null, null),
new ICSElemDesc(ICSTag.TIME_ZONE_NAME, null, null),
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.STANDARD, null)
})
}),
new ICSValueDesc(ICSTag.DAYLIGHT, new ICSElemDesc[] {
new ICSElemDesc(ICSTag.DT_START, null, null),
new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_TO, null, null),
new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_FROM, null, null),
new ICSElemDesc(ICSTag.RRULE, null, null),
new ICSElemDesc(ICSTag.COMMENT, null, null),
new ICSElemDesc(ICSTag.RDATE, null, null),
new ICSElemDesc(ICSTag.TIME_ZONE_NAME, null, null),
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.STANDARD, null)
})
})
}),
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
new ICSValueDesc(ICSTag.VTIMEZONE, null)
})
})
})
})
})
});
}
public class ICSTag
{
public const string BEGIN = "BEGIN";
public const string END = "END";
// Calendar Components
public const string VCALENDAR = "VCALENDAR";
// 1-*
public const string VERSION = "VERSION";
public const string PRODUCT_ID = "PRODID";
// 0-1
public const string CAL_SCALE = "CALSCALE";
public const string METHOD = "METHOD";
// 0-*
public const string X_WR_CALNAME = "X-WR-CALNAME";
// Event Component
public const string VEVENT = "VEVENT";
// 1-1
public const string DT_STAMP = "DTSTAMP";
public const string UNIQUE_ID = "UID";
// if METHOD is NOT set: 1-1
// otherwise: 0-1
public const string DT_START = "DTSTART";
// 0-1
public const string ACCESS_CLASS = "CLASS";
public const string DT_CREATED = "CREATED";
public const string DESCRIPTION = "DESCRIPTION";
public const string GEO = "GEO"; // value-format: float;float
public const string DT_MODIFIED = "LAST-MODIFIED";
public const string LOCATION = "LOCATION";
public const string ORGANIZER = "ORGANIZER";
public const string PRIORITY = "PRIORITY";
public const string SEQ = "SEQ";
public const string STATUS = "STATUS";
public const string SUMMARY = "SUMMARY";
public const string TRANSP = "TRANSP";
public const string URL = "URL";
public const string RECURRENCE_ID = "RECURID"; // "RECURRENCE-ID"; ???
public const string RRULE = "RRULE";
// one of them can (0-1), but NOT both
public const string DT_END = "DTEND";
public const string DURATION = "DURATION";
// 0-*
public const string ATTACHMENT = "ATTACH";
public const string ATTENDEE = "ATTENDEE";
public const string CATEGORIES = "CATEGORIES";
public const string COMMENT = "COMMENT";
public const string CONTACT = "CONTACT";
public const string EXDATE = "EXDATE";
public const string RSTATUS = "RSTATUS";
public const string RELATED = "RELATED";
public const string RESOURCES = "RESOURCES";
public const string RDATE = "RDATE";
// To-Do Component
public const string VTODO = "VTODO";
public const string COMPLETED = "COMPLETED";
public const string PERCENT = "PERCENT-COMPLETE";
public const string DUE = "DUE";
// Journal Component
public const string VJOURNAL = "VJOURNAL";
// Free/Busy Component
public const string VFREEBUSY = "VFREEBUSY";
// 0-*
public const string FREEBUSY = "FREEBUSY";
// Time Zone Component
public const string VTIMEZONE = "VTIMEZONE";
// 1-1
public const string TIME_ZONE_ID = "TZID";
// 0-1
// DT_MODIFIED
public const string TIME_ZONE_URL = "TZURL";
// one of both MUST occure: 1-*
// Time Zone: Standardc/Daylightc
public const string STANDARD = "STANDARD";
public const string DAYLIGHT = "DAYLIGHT";
// 1-1
// DT_START
public const string TIME_ZONE_OFFSET_TO = "TZOFFSETTO";
public const string TIME_ZONE_OFFSET_FROM = "TZOFFSETFROM";
// 0-1
// RRULE
// 0-*
// COMMENT
// RDATE
public const string TIME_ZONE_NAME = "TZNAME";
// Alarm Component
public const string VALARM = "VALARM";
// Alarm by audio
// 1-1
public const string TRIGGER = "TRIGGER";
public const string ACTION = "ACTION"; // (AUDIO)
// 0-1 , when one occure so MUST the other
// DURATION
public const string REPEAT = "REPEAT";
// 0-1
// ATTACHMENT
// Alarm by disp
// 1-1
// ACTION (DISPLAY)
// DESCRIPTION
// TRIGGER
// 0-1, when one occure so MUST the other
// DURATION
// REPEAT
// Alarm by email
// 1-1
// ACTION (EMAIL)
// DESCRIPTION
// TRIGGER
// SUMMARY
// 1-*
// ATTENDEE
// 0-1, when one occure so MUST the other
// DURATION
// REPEAT
// 0-*
// ATTACH
// ???
// public const string RELATED_TO = "RELATED-TO";
}
public class ICSParam
{
// see http://tools.ietf.org/html/rfc5545 3.2.
public const string ALT_REPRESENTATION = "ALTREP";
public const string COMMON_NAME = "CN";
public const string CALENDAR_USER_TYPE = "CUTYPE";
public const string DELEGATORS = "DELEGATED-FROM";
public const string DELEGATEES = "DELEGATED-TO";
public const string DIR_REFERENCE = "DIR";
public const string ENCODING = "ENCODING";
public const string FORMAT_TYPE = "FMTTYPE";
public const string FREE_BUSY_TIME_TYPE = "FBTYPE";
public const string LANGUAGE = "LANGUAGE";
public const string MEMBER = "MEMBER";
public const string PARTICIPATION_STATUS = "PARTSTAT";
public const string RECUR_ID_RANGE = "RANGE";
public const string ALARM_TRIGGER_RELATIONSHIP = "RELATED";
public const string RELATIONSHIP_TYPE = "RELTYPE";
public const string PARTICIPATION_ROLE = "ROLE";
public const string REPLY_EXPECTATION = "RSVP";
public const string SENT_BY = "SENT-BY";
public const string TIME_ZONE_ID = "TZID";
public const string VALUE_TYPE = "VALUE";
public const string NONE = "";
}
public class ICSValue
{
// CAL_SCALE (see 3.7.1.)
public const string GREGORIAN = "GREGORIAN";
// VALARM.ACTION
public const string AUDIO = "AUDIO";
public const string DISP = "DISPLAY";
public const string EMAIL = "EMAIL";
// ACCESS_CLASS
public const string PUBLIC = "PUBLIC";
public const string PRIVATE = "PRIVATE";
public const string CONFIDENTIAL = "CONFIDENTIAL";
// STATUS
// (in vevent)
public const string TENTATIVE = "TENTATIVE";
public const string CONFIRMED = "CONFIRMED";
public const string CANCELLED = "CANCELLED";
// (in vtodo)
public const string NEEDS_ACTION = "NEEDS-ACTION";
public const string COMPLETED = "COMPLETED";
public const string IN_PROCESS = "IN-PROCESS";
// public const string CANCELLED = "CANCELLED";
// (in vjournal)
public const string DRAFT = "DRAFT";
public const string FINAL = "FINAL";
// public const string CANCELLED = "CANCELLED";
// TRANSP
public const string OPAQUE = "OPAQUE";
public const string TRANSPARENT = "TRANSPARENT";
}
public class ICSParamValue
{
// CALENDAR_USER_TYPE
public const string INDIVIDUAL = "INDIVIDUAL"; // default
public const string GROUP = "GROUP";
public const string RESOURCE = "RESOURCE";
public const string ROOM = "ROOM";
public const string UNKNOWN = "UNKNOWN";
// ENCODING
public const string BIT8 = "8BIT"; // default
public const string BASE64 = "BASE64";
// FREE_BUSY_TIME_TYPE
public const string FREE = "FREE";
public const string BUSY = "BUSY";
public const string BUSY_UNAVAILABLE = "BUSY-UNAVAILABLE";
public const string BUSY_TENTATIVE = "BUSY-TENTATIVE";
// PARTICIPATION_STATUS
public const string NEEDS_ACTION = "NEEDS_ACTION"; // default
public const string ACCEPTED = "ACCEPTED";
public const string DECLINED = "DECLINED";
public const string TENTATIVE = "TENTATIVE";
public const string DELEGATED = "DELEGATED";
public const string COMPLETED = "COMPLETED";
// RECUR_ID_RANGE
public const string THIS_AND_FUTURE = "THISANDFUTURE";
public const string THIS_AND_PRIOR = "THISANDPRIOR";
// ALARM_TRIGGER_RELATIONSHIP
public const string START = "START";
public const string END = "END";
// RELATIONSHIP_TYPE
public const string PARENT = "PARENT"; // default
public const string CHILD = "CHILD";
public const string SIBLING = "SIBLING";
// PARTICIPATION_ROLE
public const string CHAIR = "CHAIR";
public const string REQ_PARTICIPANT = "REQ-PARTICIPANT"; //default
public const string OPT_PARTICIPANT = "OPT-PARTICIPANT";
public const string NON_PARTICIPANT = "NON-PARTICIPANT";
// REPLY_EXPECTATION
public const string TRUE = "TRUE";
public const string FALSE = "FALSE"; // default
// VALUE_TYPE (see http://tools.ietf.org/html/rfc5545 3.3.)
public const string BINARY = "BINARY";
public const string BOOLEAN = "BOOLEAN";
public const string CAL_ADDRESS = "CAL-ADDRESS";
public const string DATE = "DATE";
public const string DATE_TIME = "DATE-TIME";
public const string DURATION = "DURATION";
public const string FLOAT = "FLOAT";
public const string INTEGER = "INTEGER";
public const string PERIOD = "PERIOD";
public const string RECUR = "RECUR";
public const string TEXT = "TEXT";
public const string TIME = "TIME";
public const string URI = "URI";
public const string UTC_OFFSET = "UTC-OFFSET";
// PARTSTAT
public const string IN_PROCESS = "IN-PROCESS";
}
}