source: npl/overig/libical/libical-win32-add-generated-files.diff @ 21d4867

perl-5.22
Last change on this file since 21d4867 was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100644
File size: 534.9 KB
RevLine 
[c5c522c]1diff -Nurb libical-0.42.orig/src/libical/icalderivedparameter.c libical-0.42/src/libical/icalderivedparameter.c
2--- libical-0.42.orig/src/libical/icalderivedparameter.c        1970-01-01 01:00:00.000000000 +0100
3+++ libical-0.42/src/libical/icalderivedparameter.c     2009-01-13 13:31:50.000000000 +0100
4@@ -0,0 +1,1528 @@
5+/* -*- Mode: C -*-
6+  ======================================================================
7+  FILE: icalderivedparameters.{c,h}
8+  CREATOR: eric 09 May 1999
9
10+  $Id: icalderivedparameter.c.in,v 1.9 2008-01-15 23:17:40 dothebart Exp $
11+  $Locker:  $
12+   
13+
14+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
15+
16+ This program is free software; you can redistribute it and/or modify
17+ it under the terms of either:
18+
19+    The LGPL as published by the Free Software Foundation, version
20+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
21+
22+  Or:
23+
24+    The Mozilla Public License Version 1.0. You may obtain a copy of
25+    the License at http://www.mozilla.org/MPL/
26+
27+  The original code is icalderivedparameters.{c,h}
28+
29+  Contributions from:
30+     Graham Davison (g.m.davison@computer.org)
31+
32+ ======================================================================*/
33+/*#line 29 "icalparameter.c.in"*/
34+#ifdef HAVE_CONFIG_H
35+#include <config.h>
36+#endif
37+
38+
39+#include "icalparameter.h"
40+#include "icalparameterimpl.h"
41+
42+#include "icalproperty.h"
43+#include "icalerror.h"
44+#include "icalmemory.h"
45+
46+#include <stdlib.h> /* for malloc() */
47+#include <errno.h>
48+#include <string.h> /* for memset() */
49+
50+#ifdef WIN32
51+#define strcasecmp      stricmp
52+#endif
53+
54+icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
55+
56+struct icalparameter_impl* icalparameter_new_impl(icalparameter_kind kind);
57+
58+/* This map associates each of the parameters with the string
59+   representation of the parameter's name */
60+struct icalparameter_kind_map {
61+    icalparameter_kind kind;
62+    const char *name;
63+   
64+};
65+
66+/* This map associates the enumerations for the VALUE parameter with
67+   the kinds of VALUEs. */
68+
69+struct icalparameter_value_kind_map {
70+    icalparameter_value value;
71+    icalvalue_kind kind;
72+};
73+
74+/* This map associates the parameter enumerations with a specific parameter and the string representation of the enumeration */
75+
76+struct icalparameter_map {
77+    icalparameter_kind kind;
78+    int enumeration;
79+    const char* str;
80+};
81+
82+
83+
84+static const struct icalparameter_value_kind_map value_kind_map[15] = {
85+    {ICAL_VALUE_BINARY,ICAL_BINARY_VALUE},
86+    {ICAL_VALUE_BOOLEAN,ICAL_BOOLEAN_VALUE},
87+    {ICAL_VALUE_DATE,ICAL_DATE_VALUE},
88+    {ICAL_VALUE_DURATION,ICAL_DURATION_VALUE},
89+    {ICAL_VALUE_FLOAT,ICAL_FLOAT_VALUE},
90+    {ICAL_VALUE_INTEGER,ICAL_INTEGER_VALUE},
91+    {ICAL_VALUE_PERIOD,ICAL_PERIOD_VALUE},
92+    {ICAL_VALUE_RECUR,ICAL_RECUR_VALUE},
93+    {ICAL_VALUE_TEXT,ICAL_TEXT_VALUE},
94+    {ICAL_VALUE_URI,ICAL_URI_VALUE},
95+    {ICAL_VALUE_DATETIME,ICAL_DATETIME_VALUE},
96+    {ICAL_VALUE_UTCOFFSET,ICAL_UTCOFFSET_VALUE},
97+    {ICAL_VALUE_CALADDRESS,ICAL_CALADDRESS_VALUE},
98+    {ICAL_VALUE_X,ICAL_X_VALUE},
99+    {ICAL_VALUE_NONE,ICAL_NO_VALUE}
100+};
101+
102+static const struct icalparameter_kind_map parameter_map[32] = {
103+    {ICAL_ACTIONPARAM_PARAMETER,"ACTIONPARAM"},
104+    {ICAL_ALTREP_PARAMETER,"ALTREP"},
105+    {ICAL_CHARSET_PARAMETER,"CHARSET"},
106+    {ICAL_CN_PARAMETER,"CN"},
107+    {ICAL_CUTYPE_PARAMETER,"CUTYPE"},
108+    {ICAL_DELEGATEDFROM_PARAMETER,"DELEGATED-FROM"},
109+    {ICAL_DELEGATEDTO_PARAMETER,"DELEGATED-TO"},
110+    {ICAL_DIR_PARAMETER,"DIR"},
111+    {ICAL_ENABLE_PARAMETER,"ENABLE"},
112+    {ICAL_ENCODING_PARAMETER,"ENCODING"},
113+    {ICAL_FBTYPE_PARAMETER,"FBTYPE"},
114+    {ICAL_FMTTYPE_PARAMETER,"FMTTYPE"},
115+    {ICAL_ID_PARAMETER,"ID"},
116+    {ICAL_LANGUAGE_PARAMETER,"LANGUAGE"},
117+    {ICAL_LATENCY_PARAMETER,"LATENCY"},
118+    {ICAL_LOCAL_PARAMETER,"LOCAL"},
119+    {ICAL_LOCALIZE_PARAMETER,"LOCALIZE"},
120+    {ICAL_MEMBER_PARAMETER,"MEMBER"},
121+    {ICAL_OPTIONS_PARAMETER,"OPTIONS"},
122+    {ICAL_PARTSTAT_PARAMETER,"PARTSTAT"},
123+    {ICAL_RANGE_PARAMETER,"RANGE"},
124+    {ICAL_RELATED_PARAMETER,"RELATED"},
125+    {ICAL_RELTYPE_PARAMETER,"RELTYPE"},
126+    {ICAL_ROLE_PARAMETER,"ROLE"},
127+    {ICAL_RSVP_PARAMETER,"RSVP"},
128+    {ICAL_SENTBY_PARAMETER,"SENT-BY"},
129+    {ICAL_TZID_PARAMETER,"TZID"},
130+    {ICAL_VALUE_PARAMETER,"VALUE"},
131+    {ICAL_X_PARAMETER,"X"},
132+    {ICAL_XLICCOMPARETYPE_PARAMETER,"X-LIC-COMPARETYPE"},
133+    {ICAL_XLICERRORTYPE_PARAMETER,"X-LIC-ERRORTYPE"},
134+    { ICAL_NO_PARAMETER, ""}
135+};
136+
137+static const struct icalparameter_map icalparameter_map[] = {
138+{ICAL_ANY_PARAMETER,0,""},
139+    {ICAL_ACTIONPARAM_PARAMETER,ICAL_ACTIONPARAM_ASK,"ASK"},
140+    {ICAL_ACTIONPARAM_PARAMETER,ICAL_ACTIONPARAM_ABORT,"ABORT"},
141+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_INDIVIDUAL,"INDIVIDUAL"},
142+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_GROUP,"GROUP"},
143+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_RESOURCE,"RESOURCE"},
144+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_ROOM,"ROOM"},
145+    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_UNKNOWN,"UNKNOWN"},
146+    {ICAL_ENABLE_PARAMETER,ICAL_ENABLE_TRUE,"TRUE"},
147+    {ICAL_ENABLE_PARAMETER,ICAL_ENABLE_FALSE,"FALSE"},
148+    {ICAL_ENCODING_PARAMETER,ICAL_ENCODING_8BIT,"8BIT"},
149+    {ICAL_ENCODING_PARAMETER,ICAL_ENCODING_BASE64,"BASE64"},
150+    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_FREE,"FREE"},
151+    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_BUSY,"BUSY"},
152+    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_BUSYUNAVAILABLE,"BUSY-UNAVAILABLE"},
153+    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_BUSYTENTATIVE,"BUSY-TENTATIVE"},
154+    {ICAL_LOCAL_PARAMETER,ICAL_LOCAL_TRUE,"TRUE"},
155+    {ICAL_LOCAL_PARAMETER,ICAL_LOCAL_FALSE,"FALSE"},
156+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_NEEDSACTION,"NEEDS-ACTION"},
157+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_ACCEPTED,"ACCEPTED"},
158+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_DECLINED,"DECLINED"},
159+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_TENTATIVE,"TENTATIVE"},
160+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_DELEGATED,"DELEGATED"},
161+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_COMPLETED,"COMPLETED"},
162+    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_INPROCESS,"INPROCESS"},
163+    {ICAL_RANGE_PARAMETER,ICAL_RANGE_THISANDPRIOR,"THISANDPRIOR"},
164+    {ICAL_RANGE_PARAMETER,ICAL_RANGE_THISANDFUTURE,"THISANDFUTURE"},
165+    {ICAL_RELATED_PARAMETER,ICAL_RELATED_START,"START"},
166+    {ICAL_RELATED_PARAMETER,ICAL_RELATED_END,"END"},
167+    {ICAL_RELTYPE_PARAMETER,ICAL_RELTYPE_PARENT,"PARENT"},
168+    {ICAL_RELTYPE_PARAMETER,ICAL_RELTYPE_CHILD,"CHILD"},
169+    {ICAL_RELTYPE_PARAMETER,ICAL_RELTYPE_SIBLING,"SIBLING"},
170+    {ICAL_ROLE_PARAMETER,ICAL_ROLE_CHAIR,"CHAIR"},
171+    {ICAL_ROLE_PARAMETER,ICAL_ROLE_REQPARTICIPANT,"REQ-PARTICIPANT"},
172+    {ICAL_ROLE_PARAMETER,ICAL_ROLE_OPTPARTICIPANT,"OPT-PARTICIPANT"},
173+    {ICAL_ROLE_PARAMETER,ICAL_ROLE_NONPARTICIPANT,"NON-PARTICIPANT"},
174+    {ICAL_RSVP_PARAMETER,ICAL_RSVP_TRUE,"TRUE"},
175+    {ICAL_RSVP_PARAMETER,ICAL_RSVP_FALSE,"FALSE"},
176+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_BINARY,"BINARY"},
177+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_BOOLEAN,"BOOLEAN"},
178+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_DATE,"DATE"},
179+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_DURATION,"DURATION"},
180+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_FLOAT,"FLOAT"},
181+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_INTEGER,"INTEGER"},
182+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_PERIOD,"PERIOD"},
183+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_RECUR,"RECUR"},
184+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_TEXT,"TEXT"},
185+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_URI,"URI"},
186+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_ERROR,"ERROR"},
187+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_DATETIME,"DATE-TIME"},
188+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_UTCOFFSET,"UTC-OFFSET"},
189+    {ICAL_VALUE_PARAMETER,ICAL_VALUE_CALADDRESS,"CAL-ADDRESS"},
190+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_EQUAL,"EQUAL"},
191+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_NOTEQUAL,"NOTEQUAL"},
192+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_LESS,"LESS"},
193+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_GREATER,"GREATER"},
194+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_LESSEQUAL,"LESSEQUAL"},
195+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_GREATEREQUAL,"GREATEREQUAL"},
196+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_REGEX,"REGEX"},
197+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_ISNULL,"ISNULL"},
198+    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_ISNOTNULL,"ISNOTNULL"},
199+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_COMPONENTPARSEERROR,"COMPONENT-PARSE-ERROR"},
200+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_PROPERTYPARSEERROR,"PROPERTY-PARSE-ERROR"},
201+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR,"PARAMETER-NAME-PARSE-ERROR"},
202+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR,"PARAMETER-VALUE-PARSE-ERROR"},
203+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_VALUEPARSEERROR,"VALUE-PARSE-ERROR"},
204+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_INVALIDITIP,"INVALID-ITIP"},
205+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR,"UNKNOWN-VCAL-PROP-ERROR"},
206+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_MIMEPARSEERROR,"MIME-PARSE-ERROR"},
207+    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_VCALPROPPARSEERROR,"VCAL-PROP-PARSE-ERROR"},
208+    {ICAL_NO_PARAMETER,0,""}};
209+
210+/* ID */
211+icalparameter* icalparameter_new_id(const char* v)
212+{
213+   struct icalparameter_impl *impl;
214+   icalerror_clear_errno();
215+   icalerror_check_arg_rz( (v!=0),"v");
216+   impl = icalparameter_new_impl(ICAL_ID_PARAMETER);
217+   if (impl == 0) {
218+      return 0;
219+   }
220+
221+   icalparameter_set_id((icalparameter*) impl,v);
222+   if (icalerrno != ICAL_NO_ERROR) {
223+      icalparameter_free((icalparameter*) impl);
224+      return 0;
225+   }
226+
227+   return (icalparameter*) impl;
228+}
229+
230+const char* icalparameter_get_id(const icalparameter* param)
231+{
232+   icalerror_clear_errno();
233+    icalerror_check_arg_rz( (param!=0), "param");
234+    return param->string;
235+}
236+
237+void icalparameter_set_id(icalparameter* param, const char* v)
238+{
239+   icalerror_check_arg_rv( (v!=0),"v");
240+   icalerror_check_arg_rv( (param!=0), "param");
241+   icalerror_clear_errno();
242+   
243+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
244+}
245+
246+/* LOCALIZE */
247+icalparameter* icalparameter_new_localize(const char* v)
248+{
249+   struct icalparameter_impl *impl;
250+   icalerror_clear_errno();
251+   icalerror_check_arg_rz( (v!=0),"v");
252+   impl = icalparameter_new_impl(ICAL_LOCALIZE_PARAMETER);
253+   if (impl == 0) {
254+      return 0;
255+   }
256+
257+   icalparameter_set_localize((icalparameter*) impl,v);
258+   if (icalerrno != ICAL_NO_ERROR) {
259+      icalparameter_free((icalparameter*) impl);
260+      return 0;
261+   }
262+
263+   return (icalparameter*) impl;
264+}
265+
266+const char* icalparameter_get_localize(const icalparameter* param)
267+{
268+   icalerror_clear_errno();
269+    icalerror_check_arg_rz( (param!=0), "param");
270+    return param->string;
271+}
272+
273+void icalparameter_set_localize(icalparameter* param, const char* v)
274+{
275+   icalerror_check_arg_rv( (v!=0),"v");
276+   icalerror_check_arg_rv( (param!=0), "param");
277+   icalerror_clear_errno();
278+   
279+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
280+}
281+
282+/* LANGUAGE */
283+icalparameter* icalparameter_new_language(const char* v)
284+{
285+   struct icalparameter_impl *impl;
286+   icalerror_clear_errno();
287+   icalerror_check_arg_rz( (v!=0),"v");
288+   impl = icalparameter_new_impl(ICAL_LANGUAGE_PARAMETER);
289+   if (impl == 0) {
290+      return 0;
291+   }
292+
293+   icalparameter_set_language((icalparameter*) impl,v);
294+   if (icalerrno != ICAL_NO_ERROR) {
295+      icalparameter_free((icalparameter*) impl);
296+      return 0;
297+   }
298+
299+   return (icalparameter*) impl;
300+}
301+
302+const char* icalparameter_get_language(const icalparameter* param)
303+{
304+   icalerror_clear_errno();
305+    icalerror_check_arg_rz( (param!=0), "param");
306+    return param->string;
307+}
308+
309+void icalparameter_set_language(icalparameter* param, const char* v)
310+{
311+   icalerror_check_arg_rv( (v!=0),"v");
312+   icalerror_check_arg_rv( (param!=0), "param");
313+   icalerror_clear_errno();
314+   
315+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
316+}
317+
318+/* DIR */
319+icalparameter* icalparameter_new_dir(const char* v)
320+{
321+   struct icalparameter_impl *impl;
322+   icalerror_clear_errno();
323+   icalerror_check_arg_rz( (v!=0),"v");
324+   impl = icalparameter_new_impl(ICAL_DIR_PARAMETER);
325+   if (impl == 0) {
326+      return 0;
327+   }
328+
329+   icalparameter_set_dir((icalparameter*) impl,v);
330+   if (icalerrno != ICAL_NO_ERROR) {
331+      icalparameter_free((icalparameter*) impl);
332+      return 0;
333+   }
334+
335+   return (icalparameter*) impl;
336+}
337+
338+const char* icalparameter_get_dir(const icalparameter* param)
339+{
340+   icalerror_clear_errno();
341+    icalerror_check_arg_rz( (param!=0), "param");
342+    return param->string;
343+}
344+
345+void icalparameter_set_dir(icalparameter* param, const char* v)
346+{
347+   icalerror_check_arg_rv( (v!=0),"v");
348+   icalerror_check_arg_rv( (param!=0), "param");
349+   icalerror_clear_errno();
350+   
351+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
352+}
353+
354+/* RELTYPE */
355+icalparameter* icalparameter_new_reltype(icalparameter_reltype v)
356+{
357+   struct icalparameter_impl *impl;
358+   icalerror_clear_errno();
359+   icalerror_check_arg_rz(v >= ICAL_RELTYPE_X,"v");
360+    icalerror_check_arg_rz(v < ICAL_RELTYPE_NONE,"v");
361+   impl = icalparameter_new_impl(ICAL_RELTYPE_PARAMETER);
362+   if (impl == 0) {
363+      return 0;
364+   }
365+
366+   icalparameter_set_reltype((icalparameter*) impl,v);
367+   if (icalerrno != ICAL_NO_ERROR) {
368+      icalparameter_free((icalparameter*) impl);
369+      return 0;
370+   }
371+
372+   return (icalparameter*) impl;
373+}
374+
375+icalparameter_reltype icalparameter_get_reltype(const icalparameter* param)
376+{
377+   icalerror_clear_errno();
378+icalerror_check_arg( (param!=0), "param");
379+     if (param->string != 0){
380+        return ICAL_RELTYPE_X;
381+        }
382+
383+return (icalparameter_reltype)(param->data);
384+}
385+
386+void icalparameter_set_reltype(icalparameter* param, icalparameter_reltype v)
387+{
388+   icalerror_check_arg_rv(v >= ICAL_RELTYPE_X,"v");
389+    icalerror_check_arg_rv(v < ICAL_RELTYPE_NONE,"v");
390+   icalerror_check_arg_rv( (param!=0), "param");
391+   icalerror_clear_errno();
392+   
393+   ((struct icalparameter_impl*)param)->data = (int)v;
394+}
395+
396+/* FMTTYPE */
397+icalparameter* icalparameter_new_fmttype(const char* v)
398+{
399+   struct icalparameter_impl *impl;
400+   icalerror_clear_errno();
401+   icalerror_check_arg_rz( (v!=0),"v");
402+   impl = icalparameter_new_impl(ICAL_FMTTYPE_PARAMETER);
403+   if (impl == 0) {
404+      return 0;
405+   }
406+
407+   icalparameter_set_fmttype((icalparameter*) impl,v);
408+   if (icalerrno != ICAL_NO_ERROR) {
409+      icalparameter_free((icalparameter*) impl);
410+      return 0;
411+   }
412+
413+   return (icalparameter*) impl;
414+}
415+
416+const char* icalparameter_get_fmttype(const icalparameter* param)
417+{
418+   icalerror_clear_errno();
419+    icalerror_check_arg_rz( (param!=0), "param");
420+    return param->string;
421+}
422+
423+void icalparameter_set_fmttype(icalparameter* param, const char* v)
424+{
425+   icalerror_check_arg_rv( (v!=0),"v");
426+   icalerror_check_arg_rv( (param!=0), "param");
427+   icalerror_clear_errno();
428+   
429+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
430+}
431+
432+/* OPTIONS */
433+icalparameter* icalparameter_new_options(const char* v)
434+{
435+   struct icalparameter_impl *impl;
436+   icalerror_clear_errno();
437+   icalerror_check_arg_rz( (v!=0),"v");
438+   impl = icalparameter_new_impl(ICAL_OPTIONS_PARAMETER);
439+   if (impl == 0) {
440+      return 0;
441+   }
442+
443+   icalparameter_set_options((icalparameter*) impl,v);
444+   if (icalerrno != ICAL_NO_ERROR) {
445+      icalparameter_free((icalparameter*) impl);
446+      return 0;
447+   }
448+
449+   return (icalparameter*) impl;
450+}
451+
452+const char* icalparameter_get_options(const icalparameter* param)
453+{
454+   icalerror_clear_errno();
455+    icalerror_check_arg_rz( (param!=0), "param");
456+    return param->string;
457+}
458+
459+void icalparameter_set_options(icalparameter* param, const char* v)
460+{
461+   icalerror_check_arg_rv( (v!=0),"v");
462+   icalerror_check_arg_rv( (param!=0), "param");
463+   icalerror_clear_errno();
464+   
465+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
466+}
467+
468+/* TZID */
469+icalparameter* icalparameter_new_tzid(const char* v)
470+{
471+   struct icalparameter_impl *impl;
472+   icalerror_clear_errno();
473+   icalerror_check_arg_rz( (v!=0),"v");
474+   impl = icalparameter_new_impl(ICAL_TZID_PARAMETER);
475+   if (impl == 0) {
476+      return 0;
477+   }
478+
479+   icalparameter_set_tzid((icalparameter*) impl,v);
480+   if (icalerrno != ICAL_NO_ERROR) {
481+      icalparameter_free((icalparameter*) impl);
482+      return 0;
483+   }
484+
485+   return (icalparameter*) impl;
486+}
487+
488+const char* icalparameter_get_tzid(const icalparameter* param)
489+{
490+   icalerror_clear_errno();
491+    icalerror_check_arg_rz( (param!=0), "param");
492+    return param->string;
493+}
494+
495+void icalparameter_set_tzid(icalparameter* param, const char* v)
496+{
497+   icalerror_check_arg_rv( (v!=0),"v");
498+   icalerror_check_arg_rv( (param!=0), "param");
499+   icalerror_clear_errno();
500+   
501+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
502+}
503+
504+/* ENABLE */
505+icalparameter* icalparameter_new_enable(icalparameter_enable v)
506+{
507+   struct icalparameter_impl *impl;
508+   icalerror_clear_errno();
509+   icalerror_check_arg_rz(v >= ICAL_ENABLE_X,"v");
510+    icalerror_check_arg_rz(v < ICAL_ENABLE_NONE,"v");
511+   impl = icalparameter_new_impl(ICAL_ENABLE_PARAMETER);
512+   if (impl == 0) {
513+      return 0;
514+   }
515+
516+   icalparameter_set_enable((icalparameter*) impl,v);
517+   if (icalerrno != ICAL_NO_ERROR) {
518+      icalparameter_free((icalparameter*) impl);
519+      return 0;
520+   }
521+
522+   return (icalparameter*) impl;
523+}
524+
525+icalparameter_enable icalparameter_get_enable(const icalparameter* param)
526+{
527+   icalerror_clear_errno();
528+icalerror_check_arg( (param!=0), "param");
529+     if (param->string != 0){
530+        return ICAL_ENABLE_X;
531+        }
532+
533+return (icalparameter_enable)(param->data);
534+}
535+
536+void icalparameter_set_enable(icalparameter* param, icalparameter_enable v)
537+{
538+   icalerror_check_arg_rv(v >= ICAL_ENABLE_X,"v");
539+    icalerror_check_arg_rv(v < ICAL_ENABLE_NONE,"v");
540+   icalerror_check_arg_rv( (param!=0), "param");
541+   icalerror_clear_errno();
542+   
543+   ((struct icalparameter_impl*)param)->data = (int)v;
544+}
545+
546+/* RANGE */
547+icalparameter* icalparameter_new_range(icalparameter_range v)
548+{
549+   struct icalparameter_impl *impl;
550+   icalerror_clear_errno();
551+   icalerror_check_arg_rz(v >= ICAL_RANGE_X,"v");
552+    icalerror_check_arg_rz(v < ICAL_RANGE_NONE,"v");
553+   impl = icalparameter_new_impl(ICAL_RANGE_PARAMETER);
554+   if (impl == 0) {
555+      return 0;
556+   }
557+
558+   icalparameter_set_range((icalparameter*) impl,v);
559+   if (icalerrno != ICAL_NO_ERROR) {
560+      icalparameter_free((icalparameter*) impl);
561+      return 0;
562+   }
563+
564+   return (icalparameter*) impl;
565+}
566+
567+icalparameter_range icalparameter_get_range(const icalparameter* param)
568+{
569+   icalerror_clear_errno();
570+icalerror_check_arg( (param!=0), "param");
571+
572+return (icalparameter_range)(param->data);
573+}
574+
575+void icalparameter_set_range(icalparameter* param, icalparameter_range v)
576+{
577+   icalerror_check_arg_rv(v >= ICAL_RANGE_X,"v");
578+    icalerror_check_arg_rv(v < ICAL_RANGE_NONE,"v");
579+   icalerror_check_arg_rv( (param!=0), "param");
580+   icalerror_clear_errno();
581+   
582+   ((struct icalparameter_impl*)param)->data = (int)v;
583+}
584+
585+/* LATENCY */
586+icalparameter* icalparameter_new_latency(const char* v)
587+{
588+   struct icalparameter_impl *impl;
589+   icalerror_clear_errno();
590+   icalerror_check_arg_rz( (v!=0),"v");
591+   impl = icalparameter_new_impl(ICAL_LATENCY_PARAMETER);
592+   if (impl == 0) {
593+      return 0;
594+   }
595+
596+   icalparameter_set_latency((icalparameter*) impl,v);
597+   if (icalerrno != ICAL_NO_ERROR) {
598+      icalparameter_free((icalparameter*) impl);
599+      return 0;
600+   }
601+
602+   return (icalparameter*) impl;
603+}
604+
605+const char* icalparameter_get_latency(const icalparameter* param)
606+{
607+   icalerror_clear_errno();
608+    icalerror_check_arg_rz( (param!=0), "param");
609+    return param->string;
610+}
611+
612+void icalparameter_set_latency(icalparameter* param, const char* v)
613+{
614+   icalerror_check_arg_rv( (v!=0),"v");
615+   icalerror_check_arg_rv( (param!=0), "param");
616+   icalerror_clear_errno();
617+   
618+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
619+}
620+
621+/* DELEGATED-TO */
622+icalparameter* icalparameter_new_delegatedto(const char* v)
623+{
624+   struct icalparameter_impl *impl;
625+   icalerror_clear_errno();
626+   icalerror_check_arg_rz( (v!=0),"v");
627+   impl = icalparameter_new_impl(ICAL_DELEGATEDTO_PARAMETER);
628+   if (impl == 0) {
629+      return 0;
630+   }
631+
632+   icalparameter_set_delegatedto((icalparameter*) impl,v);
633+   if (icalerrno != ICAL_NO_ERROR) {
634+      icalparameter_free((icalparameter*) impl);
635+      return 0;
636+   }
637+
638+   return (icalparameter*) impl;
639+}
640+
641+const char* icalparameter_get_delegatedto(const icalparameter* param)
642+{
643+   icalerror_clear_errno();
644+    icalerror_check_arg_rz( (param!=0), "param");
645+    return param->string;
646+}
647+
648+void icalparameter_set_delegatedto(icalparameter* param, const char* v)
649+{
650+   icalerror_check_arg_rv( (v!=0),"v");
651+   icalerror_check_arg_rv( (param!=0), "param");
652+   icalerror_clear_errno();
653+   
654+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
655+}
656+
657+/* LOCAL */
658+icalparameter* icalparameter_new_local(icalparameter_local v)
659+{
660+   struct icalparameter_impl *impl;
661+   icalerror_clear_errno();
662+   icalerror_check_arg_rz(v >= ICAL_LOCAL_X,"v");
663+    icalerror_check_arg_rz(v < ICAL_LOCAL_NONE,"v");
664+   impl = icalparameter_new_impl(ICAL_LOCAL_PARAMETER);
665+   if (impl == 0) {
666+      return 0;
667+   }
668+
669+   icalparameter_set_local((icalparameter*) impl,v);
670+   if (icalerrno != ICAL_NO_ERROR) {
671+      icalparameter_free((icalparameter*) impl);
672+      return 0;
673+   }
674+
675+   return (icalparameter*) impl;
676+}
677+
678+icalparameter_local icalparameter_get_local(const icalparameter* param)
679+{
680+   icalerror_clear_errno();
681+icalerror_check_arg( (param!=0), "param");
682+     if (param->string != 0){
683+        return ICAL_LOCAL_X;
684+        }
685+
686+return (icalparameter_local)(param->data);
687+}
688+
689+void icalparameter_set_local(icalparameter* param, icalparameter_local v)
690+{
691+   icalerror_check_arg_rv(v >= ICAL_LOCAL_X,"v");
692+    icalerror_check_arg_rv(v < ICAL_LOCAL_NONE,"v");
693+   icalerror_check_arg_rv( (param!=0), "param");
694+   icalerror_clear_errno();
695+   
696+   ((struct icalparameter_impl*)param)->data = (int)v;
697+}
698+
699+/* CN */
700+icalparameter* icalparameter_new_cn(const char* v)
701+{
702+   struct icalparameter_impl *impl;
703+   icalerror_clear_errno();
704+   icalerror_check_arg_rz( (v!=0),"v");
705+   impl = icalparameter_new_impl(ICAL_CN_PARAMETER);
706+   if (impl == 0) {
707+      return 0;
708+   }
709+
710+   icalparameter_set_cn((icalparameter*) impl,v);
711+   if (icalerrno != ICAL_NO_ERROR) {
712+      icalparameter_free((icalparameter*) impl);
713+      return 0;
714+   }
715+
716+   return (icalparameter*) impl;
717+}
718+
719+const char* icalparameter_get_cn(const icalparameter* param)
720+{
721+   icalerror_clear_errno();
722+    icalerror_check_arg_rz( (param!=0), "param");
723+    return param->string;
724+}
725+
726+void icalparameter_set_cn(icalparameter* param, const char* v)
727+{
728+   icalerror_check_arg_rv( (v!=0),"v");
729+   icalerror_check_arg_rv( (param!=0), "param");
730+   icalerror_clear_errno();
731+   
732+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
733+}
734+
735+/* CHARSET */
736+icalparameter* icalparameter_new_charset(const char* v)
737+{
738+   struct icalparameter_impl *impl;
739+   icalerror_clear_errno();
740+   icalerror_check_arg_rz( (v!=0),"v");
741+   impl = icalparameter_new_impl(ICAL_CHARSET_PARAMETER);
742+   if (impl == 0) {
743+      return 0;
744+   }
745+
746+   icalparameter_set_charset((icalparameter*) impl,v);
747+   if (icalerrno != ICAL_NO_ERROR) {
748+      icalparameter_free((icalparameter*) impl);
749+      return 0;
750+   }
751+
752+   return (icalparameter*) impl;
753+}
754+
755+const char* icalparameter_get_charset(const icalparameter* param)
756+{
757+   icalerror_clear_errno();
758+    icalerror_check_arg_rz( (param!=0), "param");
759+    return param->string;
760+}
761+
762+void icalparameter_set_charset(icalparameter* param, const char* v)
763+{
764+   icalerror_check_arg_rv( (v!=0),"v");
765+   icalerror_check_arg_rv( (param!=0), "param");
766+   icalerror_clear_errno();
767+   
768+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
769+}
770+
771+/* ACTIONPARAM */
772+icalparameter* icalparameter_new_actionparam(icalparameter_action v)
773+{
774+   struct icalparameter_impl *impl;
775+   icalerror_clear_errno();
776+   icalerror_check_arg_rz(v >= ICAL_ACTIONPARAM_X,"v");
777+    icalerror_check_arg_rz(v < ICAL_ACTIONPARAM_NONE,"v");
778+   impl = icalparameter_new_impl(ICAL_ACTIONPARAM_PARAMETER);
779+   if (impl == 0) {
780+      return 0;
781+   }
782+
783+   icalparameter_set_actionparam((icalparameter*) impl,v);
784+   if (icalerrno != ICAL_NO_ERROR) {
785+      icalparameter_free((icalparameter*) impl);
786+      return 0;
787+   }
788+
789+   return (icalparameter*) impl;
790+}
791+
792+icalparameter_action icalparameter_get_actionparam(const icalparameter* param)
793+{
794+   icalerror_clear_errno();
795+icalerror_check_arg( (param!=0), "param");
796+     if (param->string != 0){
797+        return ICAL_ACTIONPARAM_X;
798+        }
799+
800+return (icalparameter_action)(param->data);
801+}
802+
803+void icalparameter_set_actionparam(icalparameter* param, icalparameter_action v)
804+{
805+   icalerror_check_arg_rv(v >= ICAL_ACTIONPARAM_X,"v");
806+    icalerror_check_arg_rv(v < ICAL_ACTIONPARAM_NONE,"v");
807+   icalerror_check_arg_rv( (param!=0), "param");
808+   icalerror_clear_errno();
809+   
810+   ((struct icalparameter_impl*)param)->data = (int)v;
811+}
812+
813+/* VALUE */
814+icalparameter* icalparameter_new_value(icalparameter_value v)
815+{
816+   struct icalparameter_impl *impl;
817+   icalerror_clear_errno();
818+   icalerror_check_arg_rz(v >= ICAL_VALUE_X,"v");
819+    icalerror_check_arg_rz(v < ICAL_VALUE_NONE,"v");
820+   impl = icalparameter_new_impl(ICAL_VALUE_PARAMETER);
821+   if (impl == 0) {
822+      return 0;
823+   }
824+
825+   icalparameter_set_value((icalparameter*) impl,v);
826+   if (icalerrno != ICAL_NO_ERROR) {
827+      icalparameter_free((icalparameter*) impl);
828+      return 0;
829+   }
830+
831+   return (icalparameter*) impl;
832+}
833+
834+icalparameter_value icalparameter_get_value(const icalparameter* param)
835+{
836+   icalerror_clear_errno();
837+icalerror_check_arg( (param!=0), "param");
838+     if (param->string != 0){
839+        return ICAL_VALUE_X;
840+        }
841+
842+return (icalparameter_value)(param->data);
843+}
844+
845+void icalparameter_set_value(icalparameter* param, icalparameter_value v)
846+{
847+   icalerror_check_arg_rv(v >= ICAL_VALUE_X,"v");
848+    icalerror_check_arg_rv(v < ICAL_VALUE_NONE,"v");
849+   icalerror_check_arg_rv( (param!=0), "param");
850+   icalerror_clear_errno();
851+   
852+   ((struct icalparameter_impl*)param)->data = (int)v;
853+}
854+
855+/* X-LIC-COMPARETYPE */
856+icalparameter* icalparameter_new_xliccomparetype(icalparameter_xliccomparetype v)
857+{
858+   struct icalparameter_impl *impl;
859+   icalerror_clear_errno();
860+   icalerror_check_arg_rz(v >= ICAL_XLICCOMPARETYPE_X,"v");
861+    icalerror_check_arg_rz(v < ICAL_XLICCOMPARETYPE_NONE,"v");
862+   impl = icalparameter_new_impl(ICAL_XLICCOMPARETYPE_PARAMETER);
863+   if (impl == 0) {
864+      return 0;
865+   }
866+
867+   icalparameter_set_xliccomparetype((icalparameter*) impl,v);
868+   if (icalerrno != ICAL_NO_ERROR) {
869+      icalparameter_free((icalparameter*) impl);
870+      return 0;
871+   }
872+
873+   return (icalparameter*) impl;
874+}
875+
876+icalparameter_xliccomparetype icalparameter_get_xliccomparetype(const icalparameter* param)
877+{
878+   icalerror_clear_errno();
879+icalerror_check_arg( (param!=0), "param");
880+
881+return (icalparameter_xliccomparetype)(param->data);
882+}
883+
884+void icalparameter_set_xliccomparetype(icalparameter* param, icalparameter_xliccomparetype v)
885+{
886+   icalerror_check_arg_rv(v >= ICAL_XLICCOMPARETYPE_X,"v");
887+    icalerror_check_arg_rv(v < ICAL_XLICCOMPARETYPE_NONE,"v");
888+   icalerror_check_arg_rv( (param!=0), "param");
889+   icalerror_clear_errno();
890+   
891+   ((struct icalparameter_impl*)param)->data = (int)v;
892+}
893+
894+/* X */
895+icalparameter* icalparameter_new_x(const char* v)
896+{
897+   struct icalparameter_impl *impl;
898+   icalerror_clear_errno();
899+   icalerror_check_arg_rz( (v!=0),"v");
900+   impl = icalparameter_new_impl(ICAL_X_PARAMETER);
901+   if (impl == 0) {
902+      return 0;
903+   }
904+
905+   icalparameter_set_x((icalparameter*) impl,v);
906+   if (icalerrno != ICAL_NO_ERROR) {
907+      icalparameter_free((icalparameter*) impl);
908+      return 0;
909+   }
910+
911+   return (icalparameter*) impl;
912+}
913+
914+const char* icalparameter_get_x(const icalparameter* param)
915+{
916+   icalerror_clear_errno();
917+    icalerror_check_arg_rz( (param!=0), "param");
918+    return param->string;
919+}
920+
921+void icalparameter_set_x(icalparameter* param, const char* v)
922+{
923+   icalerror_check_arg_rv( (v!=0),"v");
924+   icalerror_check_arg_rv( (param!=0), "param");
925+   icalerror_clear_errno();
926+   
927+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
928+}
929+
930+/* MEMBER */
931+icalparameter* icalparameter_new_member(const char* v)
932+{
933+   struct icalparameter_impl *impl;
934+   icalerror_clear_errno();
935+   icalerror_check_arg_rz( (v!=0),"v");
936+   impl = icalparameter_new_impl(ICAL_MEMBER_PARAMETER);
937+   if (impl == 0) {
938+      return 0;
939+   }
940+
941+   icalparameter_set_member((icalparameter*) impl,v);
942+   if (icalerrno != ICAL_NO_ERROR) {
943+      icalparameter_free((icalparameter*) impl);
944+      return 0;
945+   }
946+
947+   return (icalparameter*) impl;
948+}
949+
950+const char* icalparameter_get_member(const icalparameter* param)
951+{
952+   icalerror_clear_errno();
953+    icalerror_check_arg_rz( (param!=0), "param");
954+    return param->string;
955+}
956+
957+void icalparameter_set_member(icalparameter* param, const char* v)
958+{
959+   icalerror_check_arg_rv( (v!=0),"v");
960+   icalerror_check_arg_rv( (param!=0), "param");
961+   icalerror_clear_errno();
962+   
963+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
964+}
965+
966+/* SENT-BY */
967+icalparameter* icalparameter_new_sentby(const char* v)
968+{
969+   struct icalparameter_impl *impl;
970+   icalerror_clear_errno();
971+   icalerror_check_arg_rz( (v!=0),"v");
972+   impl = icalparameter_new_impl(ICAL_SENTBY_PARAMETER);
973+   if (impl == 0) {
974+      return 0;
975+   }
976+
977+   icalparameter_set_sentby((icalparameter*) impl,v);
978+   if (icalerrno != ICAL_NO_ERROR) {
979+      icalparameter_free((icalparameter*) impl);
980+      return 0;
981+   }
982+
983+   return (icalparameter*) impl;
984+}
985+
986+const char* icalparameter_get_sentby(const icalparameter* param)
987+{
988+   icalerror_clear_errno();
989+    icalerror_check_arg_rz( (param!=0), "param");
990+    return param->string;
991+}
992+
993+void icalparameter_set_sentby(icalparameter* param, const char* v)
994+{
995+   icalerror_check_arg_rv( (v!=0),"v");
996+   icalerror_check_arg_rv( (param!=0), "param");
997+   icalerror_clear_errno();
998+   
999+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
1000+}
1001+
1002+/* CUTYPE */
1003+icalparameter* icalparameter_new_cutype(icalparameter_cutype v)
1004+{
1005+   struct icalparameter_impl *impl;
1006+   icalerror_clear_errno();
1007+   icalerror_check_arg_rz(v >= ICAL_CUTYPE_X,"v");
1008+    icalerror_check_arg_rz(v < ICAL_CUTYPE_NONE,"v");
1009+   impl = icalparameter_new_impl(ICAL_CUTYPE_PARAMETER);
1010+   if (impl == 0) {
1011+      return 0;
1012+   }
1013+
1014+   icalparameter_set_cutype((icalparameter*) impl,v);
1015+   if (icalerrno != ICAL_NO_ERROR) {
1016+      icalparameter_free((icalparameter*) impl);
1017+      return 0;
1018+   }
1019+
1020+   return (icalparameter*) impl;
1021+}
1022+
1023+icalparameter_cutype icalparameter_get_cutype(const icalparameter* param)
1024+{
1025+   icalerror_clear_errno();
1026+icalerror_check_arg( (param!=0), "param");
1027+     if (param->string != 0){
1028+        return ICAL_CUTYPE_X;
1029+        }
1030+
1031+return (icalparameter_cutype)(param->data);
1032+}
1033+
1034+void icalparameter_set_cutype(icalparameter* param, icalparameter_cutype v)
1035+{
1036+   icalerror_check_arg_rv(v >= ICAL_CUTYPE_X,"v");
1037+    icalerror_check_arg_rv(v < ICAL_CUTYPE_NONE,"v");
1038+   icalerror_check_arg_rv( (param!=0), "param");
1039+   icalerror_clear_errno();
1040+   
1041+   ((struct icalparameter_impl*)param)->data = (int)v;
1042+}
1043+
1044+/* RSVP */
1045+icalparameter* icalparameter_new_rsvp(icalparameter_rsvp v)
1046+{
1047+   struct icalparameter_impl *impl;
1048+   icalerror_clear_errno();
1049+   icalerror_check_arg_rz(v >= ICAL_RSVP_X,"v");
1050+    icalerror_check_arg_rz(v < ICAL_RSVP_NONE,"v");
1051+   impl = icalparameter_new_impl(ICAL_RSVP_PARAMETER);
1052+   if (impl == 0) {
1053+      return 0;
1054+   }
1055+
1056+   icalparameter_set_rsvp((icalparameter*) impl,v);
1057+   if (icalerrno != ICAL_NO_ERROR) {
1058+      icalparameter_free((icalparameter*) impl);
1059+      return 0;
1060+   }
1061+
1062+   return (icalparameter*) impl;
1063+}
1064+
1065+icalparameter_rsvp icalparameter_get_rsvp(const icalparameter* param)
1066+{
1067+   icalerror_clear_errno();
1068+icalerror_check_arg( (param!=0), "param");
1069+
1070+return (icalparameter_rsvp)(param->data);
1071+}
1072+
1073+void icalparameter_set_rsvp(icalparameter* param, icalparameter_rsvp v)
1074+{
1075+   icalerror_check_arg_rv(v >= ICAL_RSVP_X,"v");
1076+    icalerror_check_arg_rv(v < ICAL_RSVP_NONE,"v");
1077+   icalerror_check_arg_rv( (param!=0), "param");
1078+   icalerror_clear_errno();
1079+   
1080+   ((struct icalparameter_impl*)param)->data = (int)v;
1081+}
1082+
1083+/* RELATED */
1084+icalparameter* icalparameter_new_related(icalparameter_related v)
1085+{
1086+   struct icalparameter_impl *impl;
1087+   icalerror_clear_errno();
1088+   icalerror_check_arg_rz(v >= ICAL_RELATED_X,"v");
1089+    icalerror_check_arg_rz(v < ICAL_RELATED_NONE,"v");
1090+   impl = icalparameter_new_impl(ICAL_RELATED_PARAMETER);
1091+   if (impl == 0) {
1092+      return 0;
1093+   }
1094+
1095+   icalparameter_set_related((icalparameter*) impl,v);
1096+   if (icalerrno != ICAL_NO_ERROR) {
1097+      icalparameter_free((icalparameter*) impl);
1098+      return 0;
1099+   }
1100+
1101+   return (icalparameter*) impl;
1102+}
1103+
1104+icalparameter_related icalparameter_get_related(const icalparameter* param)
1105+{
1106+   icalerror_clear_errno();
1107+icalerror_check_arg( (param!=0), "param");
1108+
1109+return (icalparameter_related)(param->data);
1110+}
1111+
1112+void icalparameter_set_related(icalparameter* param, icalparameter_related v)
1113+{
1114+   icalerror_check_arg_rv(v >= ICAL_RELATED_X,"v");
1115+    icalerror_check_arg_rv(v < ICAL_RELATED_NONE,"v");
1116+   icalerror_check_arg_rv( (param!=0), "param");
1117+   icalerror_clear_errno();
1118+   
1119+   ((struct icalparameter_impl*)param)->data = (int)v;
1120+}
1121+
1122+/* X-LIC-ERRORTYPE */
1123+icalparameter* icalparameter_new_xlicerrortype(icalparameter_xlicerrortype v)
1124+{
1125+   struct icalparameter_impl *impl;
1126+   icalerror_clear_errno();
1127+   icalerror_check_arg_rz(v >= ICAL_XLICERRORTYPE_X,"v");
1128+    icalerror_check_arg_rz(v < ICAL_XLICERRORTYPE_NONE,"v");
1129+   impl = icalparameter_new_impl(ICAL_XLICERRORTYPE_PARAMETER);
1130+   if (impl == 0) {
1131+      return 0;
1132+   }
1133+
1134+   icalparameter_set_xlicerrortype((icalparameter*) impl,v);
1135+   if (icalerrno != ICAL_NO_ERROR) {
1136+      icalparameter_free((icalparameter*) impl);
1137+      return 0;
1138+   }
1139+
1140+   return (icalparameter*) impl;
1141+}
1142+
1143+icalparameter_xlicerrortype icalparameter_get_xlicerrortype(const icalparameter* param)
1144+{
1145+   icalerror_clear_errno();
1146+icalerror_check_arg( (param!=0), "param");
1147+
1148+return (icalparameter_xlicerrortype)(param->data);
1149+}
1150+
1151+void icalparameter_set_xlicerrortype(icalparameter* param, icalparameter_xlicerrortype v)
1152+{
1153+   icalerror_check_arg_rv(v >= ICAL_XLICERRORTYPE_X,"v");
1154+    icalerror_check_arg_rv(v < ICAL_XLICERRORTYPE_NONE,"v");
1155+   icalerror_check_arg_rv( (param!=0), "param");
1156+   icalerror_clear_errno();
1157+   
1158+   ((struct icalparameter_impl*)param)->data = (int)v;
1159+}
1160+
1161+/* ENCODING */
1162+icalparameter* icalparameter_new_encoding(icalparameter_encoding v)
1163+{
1164+   struct icalparameter_impl *impl;
1165+   icalerror_clear_errno();
1166+   icalerror_check_arg_rz(v >= ICAL_ENCODING_X,"v");
1167+    icalerror_check_arg_rz(v < ICAL_ENCODING_NONE,"v");
1168+   impl = icalparameter_new_impl(ICAL_ENCODING_PARAMETER);
1169+   if (impl == 0) {
1170+      return 0;
1171+   }
1172+
1173+   icalparameter_set_encoding((icalparameter*) impl,v);
1174+   if (icalerrno != ICAL_NO_ERROR) {
1175+      icalparameter_free((icalparameter*) impl);
1176+      return 0;
1177+   }
1178+
1179+   return (icalparameter*) impl;
1180+}
1181+
1182+icalparameter_encoding icalparameter_get_encoding(const icalparameter* param)
1183+{
1184+   icalerror_clear_errno();
1185+icalerror_check_arg( (param!=0), "param");
1186+     if (param->string != 0){
1187+        return ICAL_ENCODING_X;
1188+        }
1189+
1190+return (icalparameter_encoding)(param->data);
1191+}
1192+
1193+void icalparameter_set_encoding(icalparameter* param, icalparameter_encoding v)
1194+{
1195+   icalerror_check_arg_rv(v >= ICAL_ENCODING_X,"v");
1196+    icalerror_check_arg_rv(v < ICAL_ENCODING_NONE,"v");
1197+   icalerror_check_arg_rv( (param!=0), "param");
1198+   icalerror_clear_errno();
1199+   
1200+   ((struct icalparameter_impl*)param)->data = (int)v;
1201+}
1202+
1203+/* ALTREP */
1204+icalparameter* icalparameter_new_altrep(const char* v)
1205+{
1206+   struct icalparameter_impl *impl;
1207+   icalerror_clear_errno();
1208+   icalerror_check_arg_rz( (v!=0),"v");
1209+   impl = icalparameter_new_impl(ICAL_ALTREP_PARAMETER);
1210+   if (impl == 0) {
1211+      return 0;
1212+   }
1213+
1214+   icalparameter_set_altrep((icalparameter*) impl,v);
1215+   if (icalerrno != ICAL_NO_ERROR) {
1216+      icalparameter_free((icalparameter*) impl);
1217+      return 0;
1218+   }
1219+
1220+   return (icalparameter*) impl;
1221+}
1222+
1223+const char* icalparameter_get_altrep(const icalparameter* param)
1224+{
1225+   icalerror_clear_errno();
1226+    icalerror_check_arg_rz( (param!=0), "param");
1227+    return param->string;
1228+}
1229+
1230+void icalparameter_set_altrep(icalparameter* param, const char* v)
1231+{
1232+   icalerror_check_arg_rv( (v!=0),"v");
1233+   icalerror_check_arg_rv( (param!=0), "param");
1234+   icalerror_clear_errno();
1235+   
1236+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
1237+}
1238+
1239+/* DELEGATED-FROM */
1240+icalparameter* icalparameter_new_delegatedfrom(const char* v)
1241+{
1242+   struct icalparameter_impl *impl;
1243+   icalerror_clear_errno();
1244+   icalerror_check_arg_rz( (v!=0),"v");
1245+   impl = icalparameter_new_impl(ICAL_DELEGATEDFROM_PARAMETER);
1246+   if (impl == 0) {
1247+      return 0;
1248+   }
1249+
1250+   icalparameter_set_delegatedfrom((icalparameter*) impl,v);
1251+   if (icalerrno != ICAL_NO_ERROR) {
1252+      icalparameter_free((icalparameter*) impl);
1253+      return 0;
1254+   }
1255+
1256+   return (icalparameter*) impl;
1257+}
1258+
1259+const char* icalparameter_get_delegatedfrom(const icalparameter* param)
1260+{
1261+   icalerror_clear_errno();
1262+    icalerror_check_arg_rz( (param!=0), "param");
1263+    return param->string;
1264+}
1265+
1266+void icalparameter_set_delegatedfrom(icalparameter* param, const char* v)
1267+{
1268+   icalerror_check_arg_rv( (v!=0),"v");
1269+   icalerror_check_arg_rv( (param!=0), "param");
1270+   icalerror_clear_errno();
1271+   
1272+   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
1273+}
1274+
1275+/* FBTYPE */
1276+icalparameter* icalparameter_new_fbtype(icalparameter_fbtype v)
1277+{
1278+   struct icalparameter_impl *impl;
1279+   icalerror_clear_errno();
1280+   icalerror_check_arg_rz(v >= ICAL_FBTYPE_X,"v");
1281+    icalerror_check_arg_rz(v < ICAL_FBTYPE_NONE,"v");
1282+   impl = icalparameter_new_impl(ICAL_FBTYPE_PARAMETER);
1283+   if (impl == 0) {
1284+      return 0;
1285+   }
1286+
1287+   icalparameter_set_fbtype((icalparameter*) impl,v);
1288+   if (icalerrno != ICAL_NO_ERROR) {
1289+      icalparameter_free((icalparameter*) impl);
1290+      return 0;
1291+   }
1292+
1293+   return (icalparameter*) impl;
1294+}
1295+
1296+icalparameter_fbtype icalparameter_get_fbtype(const icalparameter* param)
1297+{
1298+   icalerror_clear_errno();
1299+icalerror_check_arg( (param!=0), "param");
1300+     if (param->string != 0){
1301+        return ICAL_FBTYPE_X;
1302+        }
1303+
1304+return (icalparameter_fbtype)(param->data);
1305+}
1306+
1307+void icalparameter_set_fbtype(icalparameter* param, icalparameter_fbtype v)
1308+{
1309+   icalerror_check_arg_rv(v >= ICAL_FBTYPE_X,"v");
1310+    icalerror_check_arg_rv(v < ICAL_FBTYPE_NONE,"v");
1311+   icalerror_check_arg_rv( (param!=0), "param");
1312+   icalerror_clear_errno();
1313+   
1314+   ((struct icalparameter_impl*)param)->data = (int)v;
1315+}
1316+
1317+/* PARTSTAT */
1318+icalparameter* icalparameter_new_partstat(icalparameter_partstat v)
1319+{
1320+   struct icalparameter_impl *impl;
1321+   icalerror_clear_errno();
1322+   icalerror_check_arg_rz(v >= ICAL_PARTSTAT_X,"v");
1323+    icalerror_check_arg_rz(v < ICAL_PARTSTAT_NONE,"v");
1324+   impl = icalparameter_new_impl(ICAL_PARTSTAT_PARAMETER);
1325+   if (impl == 0) {
1326+      return 0;
1327+   }
1328+
1329+   icalparameter_set_partstat((icalparameter*) impl,v);
1330+   if (icalerrno != ICAL_NO_ERROR) {
1331+      icalparameter_free((icalparameter*) impl);
1332+      return 0;
1333+   }
1334+
1335+   return (icalparameter*) impl;
1336+}
1337+
1338+icalparameter_partstat icalparameter_get_partstat(const icalparameter* param)
1339+{
1340+   icalerror_clear_errno();
1341+icalerror_check_arg( (param!=0), "param");
1342+     if (param->string != 0){
1343+        return ICAL_PARTSTAT_X;
1344+        }
1345+
1346+return (icalparameter_partstat)(param->data);
1347+}
1348+
1349+void icalparameter_set_partstat(icalparameter* param, icalparameter_partstat v)
1350+{
1351+   icalerror_check_arg_rv(v >= ICAL_PARTSTAT_X,"v");
1352+    icalerror_check_arg_rv(v < ICAL_PARTSTAT_NONE,"v");
1353+   icalerror_check_arg_rv( (param!=0), "param");
1354+   icalerror_clear_errno();
1355+   
1356+   ((struct icalparameter_impl*)param)->data = (int)v;
1357+}
1358+
1359+/* ROLE */
1360+icalparameter* icalparameter_new_role(icalparameter_role v)
1361+{
1362+   struct icalparameter_impl *impl;
1363+   icalerror_clear_errno();
1364+   icalerror_check_arg_rz(v >= ICAL_ROLE_X,"v");
1365+    icalerror_check_arg_rz(v < ICAL_ROLE_NONE,"v");
1366+   impl = icalparameter_new_impl(ICAL_ROLE_PARAMETER);
1367+   if (impl == 0) {
1368+      return 0;
1369+   }
1370+
1371+   icalparameter_set_role((icalparameter*) impl,v);
1372+   if (icalerrno != ICAL_NO_ERROR) {
1373+      icalparameter_free((icalparameter*) impl);
1374+      return 0;
1375+   }
1376+
1377+   return (icalparameter*) impl;
1378+}
1379+
1380+icalparameter_role icalparameter_get_role(const icalparameter* param)
1381+{
1382+   icalerror_clear_errno();
1383+icalerror_check_arg( (param!=0), "param");
1384+     if (param->string != 0){
1385+        return ICAL_ROLE_X;
1386+        }
1387+
1388+return (icalparameter_role)(param->data);
1389+}
1390+
1391+void icalparameter_set_role(icalparameter* param, icalparameter_role v)
1392+{
1393+   icalerror_check_arg_rv(v >= ICAL_ROLE_X,"v");
1394+    icalerror_check_arg_rv(v < ICAL_ROLE_NONE,"v");
1395+   icalerror_check_arg_rv( (param!=0), "param");
1396+   icalerror_clear_errno();
1397+   
1398+   ((struct icalparameter_impl*)param)->data = (int)v;
1399+}
1400+
1401+
1402+const char* icalparameter_kind_to_string(icalparameter_kind kind)
1403+{
1404+    int i;
1405+
1406+    for (i=0; parameter_map[i].kind != ICAL_NO_PARAMETER; i++) {
1407+       if (parameter_map[i].kind == kind) {
1408+           return parameter_map[i].name;
1409+       }
1410+    }
1411+
1412+    return 0;
1413+
1414+}
1415+
1416+icalparameter_kind icalparameter_string_to_kind(const char* string)
1417+{
1418+    int i;
1419+
1420+    if (string ==0 ) {
1421+       return ICAL_NO_PARAMETER;
1422+    }
1423+
1424+    for (i=0; parameter_map[i].kind  != ICAL_NO_PARAMETER; i++) {
1425+
1426+       if (strcasecmp(parameter_map[i].name, string) == 0) {
1427+           return parameter_map[i].kind;
1428+       }
1429+    }
1430+
1431+    if(strncmp(string,"X-",2)==0){
1432+       return ICAL_X_PARAMETER;
1433+    }
1434+
1435+    return ICAL_NO_PARAMETER;
1436+}
1437+
1438+
1439+icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value)
1440+{
1441+    int i;
1442+
1443+    for (i=0; value_kind_map[i].kind  != ICAL_NO_VALUE; i++) {
1444+
1445+       if (value_kind_map[i].value == value) {
1446+           return value_kind_map[i].kind;
1447+       }
1448+    }
1449+
1450+    return ICAL_NO_VALUE;
1451+}
1452+
1453+
1454+const char* icalparameter_enum_to_string(int e)
1455+{
1456+    int i;
1457+
1458+    icalerror_check_arg_rz(e >= ICALPARAMETER_FIRST_ENUM,"e");
1459+    icalerror_check_arg_rz(e <= ICALPARAMETER_LAST_ENUM,"e");
1460+
1461+    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
1462+        if(e == icalparameter_map[i].enumeration){
1463+            return icalparameter_map[i].str;
1464+        }
1465+    }
1466+
1467+    return 0;
1468+}
1469+
1470+int icalparameter_string_to_enum(const char* str)
1471+{
1472+    int i;
1473+
1474+    icalerror_check_arg_rz(str != 0,"str");
1475+
1476+    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
1477+        if(strcasecmp(str,icalparameter_map[i].str) == 0) {
1478+            return icalparameter_map[i].enumeration;
1479+        }
1480+    }
1481+
1482+    return 0;
1483+}
1484+
1485+icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind,const  char* val)
1486+{
1487+
1488+    struct icalparameter_impl* param=0;
1489+    int found_kind = 0;
1490+    int i;
1491+
1492+    icalerror_check_arg_rz((val!=0),"val");
1493+
1494+    /* Search through the parameter map to find a matching kind */
1495+
1496+    param = icalparameter_new_impl(kind);
1497+    if (!param)
1498+       return 0;
1499+
1500+    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
1501+        if(kind == icalparameter_map[i].kind) {
1502+            found_kind = 1;
1503+            if(strcasecmp(val,icalparameter_map[i].str) == 0) {
1504+
1505+                param->data = (int)icalparameter_map[i].enumeration;
1506+                return param;
1507+            }
1508+        }
1509+    }
1510+   
1511+    if(found_kind == 1){
1512+        /* The kind was in the parameter map, but the string did not
1513+           match, so assume that it is an alternate value, like an
1514+           X-value.*/
1515+       
1516+        icalparameter_set_xvalue(param, val);
1517+
1518+    } else {
1519+
1520+        /* If the kind was not found, then it must be a string type */
1521+       
1522+        ((struct icalparameter_impl*)param)->string = icalmemory_strdup(val);
1523+
1524+    }
1525+
1526+   return param;
1527+}
1528+
1529+
1530+
1531+
1532+/* Everything below this line is machine generated. Do not edit. */
1533diff -Nurb libical-0.42.orig/src/libical/icalderivedparameter.h libical-0.42/src/libical/icalderivedparameter.h
1534--- libical-0.42.orig/src/libical/icalderivedparameter.h        1970-01-01 01:00:00.000000000 +0100
1535+++ libical-0.42/src/libical/icalderivedparameter.h     2009-01-13 13:31:50.000000000 +0100
1536@@ -0,0 +1,379 @@
1537+/* -*- Mode: C -*- */
1538+/*======================================================================
1539+  FILE: icalparam.h
1540+  CREATOR: eric 20 March 1999
1541+
1542+
1543+  $Id: icalderivedparameter.h.in,v 1.4 2007-04-30 13:57:48 artcancro Exp $
1544+  $Locker:  $
1545+
1546
1547+
1548+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
1549+
1550+ This program is free software; you can redistribute it and/or modify
1551+ it under the terms of either:
1552+
1553+    The LGPL as published by the Free Software Foundation, version
1554+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
1555+
1556+  Or:
1557+
1558+    The Mozilla Public License Version 1.0. You may obtain a copy of
1559+    the License at http://www.mozilla.org/MPL/
1560+
1561+  The original code is icalparam.h
1562+
1563+  ======================================================================*/
1564+
1565+#ifndef ICALDERIVEDPARAMETER_H
1566+#define ICALDERIVEDPARAMETER_H
1567+
1568+
1569+typedef struct icalparameter_impl icalparameter;
1570+
1571+const char* icalparameter_enum_to_string(int e);
1572+int icalparameter_string_to_enum(const char* str);
1573+
1574+typedef enum icalparameter_kind {
1575+    ICAL_ANY_PARAMETER = 0,
1576+    ICAL_ACTIONPARAM_PARAMETER,
1577+    ICAL_ALTREP_PARAMETER,
1578+    ICAL_CHARSET_PARAMETER,
1579+    ICAL_CN_PARAMETER,
1580+    ICAL_CUTYPE_PARAMETER,
1581+    ICAL_DELEGATEDFROM_PARAMETER,
1582+    ICAL_DELEGATEDTO_PARAMETER,
1583+    ICAL_DIR_PARAMETER,
1584+    ICAL_ENABLE_PARAMETER,
1585+    ICAL_ENCODING_PARAMETER,
1586+    ICAL_FBTYPE_PARAMETER,
1587+    ICAL_FMTTYPE_PARAMETER,
1588+    ICAL_ID_PARAMETER,
1589+    ICAL_LANGUAGE_PARAMETER,
1590+    ICAL_LATENCY_PARAMETER,
1591+    ICAL_LOCAL_PARAMETER,
1592+    ICAL_LOCALIZE_PARAMETER,
1593+    ICAL_MEMBER_PARAMETER,
1594+    ICAL_OPTIONS_PARAMETER,
1595+    ICAL_PARTSTAT_PARAMETER,
1596+    ICAL_RANGE_PARAMETER,
1597+    ICAL_RELATED_PARAMETER,
1598+    ICAL_RELTYPE_PARAMETER,
1599+    ICAL_ROLE_PARAMETER,
1600+    ICAL_RSVP_PARAMETER,
1601+    ICAL_SENTBY_PARAMETER,
1602+    ICAL_TZID_PARAMETER,
1603+    ICAL_VALUE_PARAMETER,
1604+    ICAL_X_PARAMETER,
1605+    ICAL_XLICCOMPARETYPE_PARAMETER,
1606+    ICAL_XLICERRORTYPE_PARAMETER,
1607+    ICAL_NO_PARAMETER
1608+} icalparameter_kind;
1609+
1610+#define ICALPARAMETER_FIRST_ENUM 20000
1611+
1612+typedef enum icalparameter_action {
1613+    ICAL_ACTIONPARAM_X = 20000,
1614+    ICAL_ACTIONPARAM_ASK = 20001,
1615+    ICAL_ACTIONPARAM_ABORT = 20002,
1616+    ICAL_ACTIONPARAM_NONE = 20003
1617+} icalparameter_action;
1618+
1619+typedef enum icalparameter_cutype {
1620+    ICAL_CUTYPE_X = 20004,
1621+    ICAL_CUTYPE_INDIVIDUAL = 20005,
1622+    ICAL_CUTYPE_GROUP = 20006,
1623+    ICAL_CUTYPE_RESOURCE = 20007,
1624+    ICAL_CUTYPE_ROOM = 20008,
1625+    ICAL_CUTYPE_UNKNOWN = 20009,
1626+    ICAL_CUTYPE_NONE = 20010
1627+} icalparameter_cutype;
1628+
1629+typedef enum icalparameter_enable {
1630+    ICAL_ENABLE_X = 20011,
1631+    ICAL_ENABLE_TRUE = 20012,
1632+    ICAL_ENABLE_FALSE = 20013,
1633+    ICAL_ENABLE_NONE = 20014
1634+} icalparameter_enable;
1635+
1636+typedef enum icalparameter_encoding {
1637+    ICAL_ENCODING_X = 20015,
1638+    ICAL_ENCODING_8BIT = 20016,
1639+    ICAL_ENCODING_BASE64 = 20017,
1640+    ICAL_ENCODING_NONE = 20018
1641+} icalparameter_encoding;
1642+
1643+typedef enum icalparameter_fbtype {
1644+    ICAL_FBTYPE_X = 20019,
1645+    ICAL_FBTYPE_FREE = 20020,
1646+    ICAL_FBTYPE_BUSY = 20021,
1647+    ICAL_FBTYPE_BUSYUNAVAILABLE = 20022,
1648+    ICAL_FBTYPE_BUSYTENTATIVE = 20023,
1649+    ICAL_FBTYPE_NONE = 20024
1650+} icalparameter_fbtype;
1651+
1652+typedef enum icalparameter_local {
1653+    ICAL_LOCAL_X = 20025,
1654+    ICAL_LOCAL_TRUE = 20026,
1655+    ICAL_LOCAL_FALSE = 20027,
1656+    ICAL_LOCAL_NONE = 20028
1657+} icalparameter_local;
1658+
1659+typedef enum icalparameter_partstat {
1660+    ICAL_PARTSTAT_X = 20029,
1661+    ICAL_PARTSTAT_NEEDSACTION = 20030,
1662+    ICAL_PARTSTAT_ACCEPTED = 20031,
1663+    ICAL_PARTSTAT_DECLINED = 20032,
1664+    ICAL_PARTSTAT_TENTATIVE = 20033,
1665+    ICAL_PARTSTAT_DELEGATED = 20034,
1666+    ICAL_PARTSTAT_COMPLETED = 20035,
1667+    ICAL_PARTSTAT_INPROCESS = 20036,
1668+    ICAL_PARTSTAT_NONE = 20037
1669+} icalparameter_partstat;
1670+
1671+typedef enum icalparameter_range {
1672+    ICAL_RANGE_X = 20038,
1673+    ICAL_RANGE_THISANDPRIOR = 20039,
1674+    ICAL_RANGE_THISANDFUTURE = 20040,
1675+    ICAL_RANGE_NONE = 20041
1676+} icalparameter_range;
1677+
1678+typedef enum icalparameter_related {
1679+    ICAL_RELATED_X = 20042,
1680+    ICAL_RELATED_START = 20043,
1681+    ICAL_RELATED_END = 20044,
1682+    ICAL_RELATED_NONE = 20045
1683+} icalparameter_related;
1684+
1685+typedef enum icalparameter_reltype {
1686+    ICAL_RELTYPE_X = 20046,
1687+    ICAL_RELTYPE_PARENT = 20047,
1688+    ICAL_RELTYPE_CHILD = 20048,
1689+    ICAL_RELTYPE_SIBLING = 20049,
1690+    ICAL_RELTYPE_NONE = 20050
1691+} icalparameter_reltype;
1692+
1693+typedef enum icalparameter_role {
1694+    ICAL_ROLE_X = 20051,
1695+    ICAL_ROLE_CHAIR = 20052,
1696+    ICAL_ROLE_REQPARTICIPANT = 20053,
1697+    ICAL_ROLE_OPTPARTICIPANT = 20054,
1698+    ICAL_ROLE_NONPARTICIPANT = 20055,
1699+    ICAL_ROLE_NONE = 20056
1700+} icalparameter_role;
1701+
1702+typedef enum icalparameter_rsvp {
1703+    ICAL_RSVP_X = 20057,
1704+    ICAL_RSVP_TRUE = 20058,
1705+    ICAL_RSVP_FALSE = 20059,
1706+    ICAL_RSVP_NONE = 20060
1707+} icalparameter_rsvp;
1708+
1709+typedef enum icalparameter_value {
1710+    ICAL_VALUE_X = 20061,
1711+    ICAL_VALUE_BINARY = 20062,
1712+    ICAL_VALUE_BOOLEAN = 20063,
1713+    ICAL_VALUE_DATE = 20064,
1714+    ICAL_VALUE_DURATION = 20065,
1715+    ICAL_VALUE_FLOAT = 20066,
1716+    ICAL_VALUE_INTEGER = 20067,
1717+    ICAL_VALUE_PERIOD = 20068,
1718+    ICAL_VALUE_RECUR = 20069,
1719+    ICAL_VALUE_TEXT = 20070,
1720+    ICAL_VALUE_URI = 20071,
1721+    ICAL_VALUE_ERROR = 20072,
1722+    ICAL_VALUE_DATETIME = 20073,
1723+    ICAL_VALUE_UTCOFFSET = 20074,
1724+    ICAL_VALUE_CALADDRESS = 20075,
1725+    ICAL_VALUE_NONE = 20076
1726+} icalparameter_value;
1727+
1728+typedef enum icalparameter_xliccomparetype {
1729+    ICAL_XLICCOMPARETYPE_X = 20077,
1730+    ICAL_XLICCOMPARETYPE_EQUAL = 20078,
1731+    ICAL_XLICCOMPARETYPE_NOTEQUAL = 20079,
1732+    ICAL_XLICCOMPARETYPE_LESS = 20080,
1733+    ICAL_XLICCOMPARETYPE_GREATER = 20081,
1734+    ICAL_XLICCOMPARETYPE_LESSEQUAL = 20082,
1735+    ICAL_XLICCOMPARETYPE_GREATEREQUAL = 20083,
1736+    ICAL_XLICCOMPARETYPE_REGEX = 20084,
1737+    ICAL_XLICCOMPARETYPE_ISNULL = 20085,
1738+    ICAL_XLICCOMPARETYPE_ISNOTNULL = 20086,
1739+    ICAL_XLICCOMPARETYPE_NONE = 20087
1740+} icalparameter_xliccomparetype;
1741+
1742+typedef enum icalparameter_xlicerrortype {
1743+    ICAL_XLICERRORTYPE_X = 20088,
1744+    ICAL_XLICERRORTYPE_COMPONENTPARSEERROR = 20089,
1745+    ICAL_XLICERRORTYPE_PROPERTYPARSEERROR = 20090,
1746+    ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR = 20091,
1747+    ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR = 20092,
1748+    ICAL_XLICERRORTYPE_VALUEPARSEERROR = 20093,
1749+    ICAL_XLICERRORTYPE_INVALIDITIP = 20094,
1750+    ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR = 20095,
1751+    ICAL_XLICERRORTYPE_MIMEPARSEERROR = 20096,
1752+    ICAL_XLICERRORTYPE_VCALPROPPARSEERROR = 20097,
1753+    ICAL_XLICERRORTYPE_NONE = 20098
1754+} icalparameter_xlicerrortype;
1755+
1756+#define ICALPARAMETER_LAST_ENUM 20099
1757+
1758+/* ID */
1759+icalparameter* icalparameter_new_id(const char* v);
1760+const char* icalparameter_get_id(const icalparameter* value);
1761+void icalparameter_set_id(icalparameter* value, const char* v);
1762+
1763+/* LOCALIZE */
1764+icalparameter* icalparameter_new_localize(const char* v);
1765+const char* icalparameter_get_localize(const icalparameter* value);
1766+void icalparameter_set_localize(icalparameter* value, const char* v);
1767+
1768+/* LANGUAGE */
1769+icalparameter* icalparameter_new_language(const char* v);
1770+const char* icalparameter_get_language(const icalparameter* value);
1771+void icalparameter_set_language(icalparameter* value, const char* v);
1772+
1773+/* DIR */
1774+icalparameter* icalparameter_new_dir(const char* v);
1775+const char* icalparameter_get_dir(const icalparameter* value);
1776+void icalparameter_set_dir(icalparameter* value, const char* v);
1777+
1778+/* RELTYPE */
1779+icalparameter* icalparameter_new_reltype(icalparameter_reltype v);
1780+icalparameter_reltype icalparameter_get_reltype(const icalparameter* value);
1781+void icalparameter_set_reltype(icalparameter* value, icalparameter_reltype v);
1782+
1783+/* FMTTYPE */
1784+icalparameter* icalparameter_new_fmttype(const char* v);
1785+const char* icalparameter_get_fmttype(const icalparameter* value);
1786+void icalparameter_set_fmttype(icalparameter* value, const char* v);
1787+
1788+/* OPTIONS */
1789+icalparameter* icalparameter_new_options(const char* v);
1790+const char* icalparameter_get_options(const icalparameter* value);
1791+void icalparameter_set_options(icalparameter* value, const char* v);
1792+
1793+/* TZID */
1794+icalparameter* icalparameter_new_tzid(const char* v);
1795+const char* icalparameter_get_tzid(const icalparameter* value);
1796+void icalparameter_set_tzid(icalparameter* value, const char* v);
1797+
1798+/* ENABLE */
1799+icalparameter* icalparameter_new_enable(icalparameter_enable v);
1800+icalparameter_enable icalparameter_get_enable(const icalparameter* value);
1801+void icalparameter_set_enable(icalparameter* value, icalparameter_enable v);
1802+
1803+/* RANGE */
1804+icalparameter* icalparameter_new_range(icalparameter_range v);
1805+icalparameter_range icalparameter_get_range(const icalparameter* value);
1806+void icalparameter_set_range(icalparameter* value, icalparameter_range v);
1807+
1808+/* LATENCY */
1809+icalparameter* icalparameter_new_latency(const char* v);
1810+const char* icalparameter_get_latency(const icalparameter* value);
1811+void icalparameter_set_latency(icalparameter* value, const char* v);
1812+
1813+/* DELEGATED-TO */
1814+icalparameter* icalparameter_new_delegatedto(const char* v);
1815+const char* icalparameter_get_delegatedto(const icalparameter* value);
1816+void icalparameter_set_delegatedto(icalparameter* value, const char* v);
1817+
1818+/* LOCAL */
1819+icalparameter* icalparameter_new_local(icalparameter_local v);
1820+icalparameter_local icalparameter_get_local(const icalparameter* value);
1821+void icalparameter_set_local(icalparameter* value, icalparameter_local v);
1822+
1823+/* CN */
1824+icalparameter* icalparameter_new_cn(const char* v);
1825+const char* icalparameter_get_cn(const icalparameter* value);
1826+void icalparameter_set_cn(icalparameter* value, const char* v);
1827+
1828+/* CHARSET */
1829+icalparameter* icalparameter_new_charset(const char* v);
1830+const char* icalparameter_get_charset(const icalparameter* value);
1831+void icalparameter_set_charset(icalparameter* value, const char* v);
1832+
1833+/* ACTIONPARAM */
1834+icalparameter* icalparameter_new_actionparam(icalparameter_action v);
1835+icalparameter_action icalparameter_get_actionparam(const icalparameter* value);
1836+void icalparameter_set_actionparam(icalparameter* value, icalparameter_action v);
1837+
1838+/* VALUE */
1839+icalparameter* icalparameter_new_value(icalparameter_value v);
1840+icalparameter_value icalparameter_get_value(const icalparameter* value);
1841+void icalparameter_set_value(icalparameter* value, icalparameter_value v);
1842+
1843+/* X-LIC-COMPARETYPE */
1844+icalparameter* icalparameter_new_xliccomparetype(icalparameter_xliccomparetype v);
1845+icalparameter_xliccomparetype icalparameter_get_xliccomparetype(const icalparameter* value);
1846+void icalparameter_set_xliccomparetype(icalparameter* value, icalparameter_xliccomparetype v);
1847+
1848+/* X */
1849+icalparameter* icalparameter_new_x(const char* v);
1850+const char* icalparameter_get_x(const icalparameter* value);
1851+void icalparameter_set_x(icalparameter* value, const char* v);
1852+
1853+/* MEMBER */
1854+icalparameter* icalparameter_new_member(const char* v);
1855+const char* icalparameter_get_member(const icalparameter* value);
1856+void icalparameter_set_member(icalparameter* value, const char* v);
1857+
1858+/* SENT-BY */
1859+icalparameter* icalparameter_new_sentby(const char* v);
1860+const char* icalparameter_get_sentby(const icalparameter* value);
1861+void icalparameter_set_sentby(icalparameter* value, const char* v);
1862+
1863+/* CUTYPE */
1864+icalparameter* icalparameter_new_cutype(icalparameter_cutype v);
1865+icalparameter_cutype icalparameter_get_cutype(const icalparameter* value);
1866+void icalparameter_set_cutype(icalparameter* value, icalparameter_cutype v);
1867+
1868+/* RSVP */
1869+icalparameter* icalparameter_new_rsvp(icalparameter_rsvp v);
1870+icalparameter_rsvp icalparameter_get_rsvp(const icalparameter* value);
1871+void icalparameter_set_rsvp(icalparameter* value, icalparameter_rsvp v);
1872+
1873+/* RELATED */
1874+icalparameter* icalparameter_new_related(icalparameter_related v);
1875+icalparameter_related icalparameter_get_related(const icalparameter* value);
1876+void icalparameter_set_related(icalparameter* value, icalparameter_related v);
1877+
1878+/* X-LIC-ERRORTYPE */
1879+icalparameter* icalparameter_new_xlicerrortype(icalparameter_xlicerrortype v);
1880+icalparameter_xlicerrortype icalparameter_get_xlicerrortype(const icalparameter* value);
1881+void icalparameter_set_xlicerrortype(icalparameter* value, icalparameter_xlicerrortype v);
1882+
1883+/* ENCODING */
1884+icalparameter* icalparameter_new_encoding(icalparameter_encoding v);
1885+icalparameter_encoding icalparameter_get_encoding(const icalparameter* value);
1886+void icalparameter_set_encoding(icalparameter* value, icalparameter_encoding v);
1887+
1888+/* ALTREP */
1889+icalparameter* icalparameter_new_altrep(const char* v);
1890+const char* icalparameter_get_altrep(const icalparameter* value);
1891+void icalparameter_set_altrep(icalparameter* value, const char* v);
1892+
1893+/* DELEGATED-FROM */
1894+icalparameter* icalparameter_new_delegatedfrom(const char* v);
1895+const char* icalparameter_get_delegatedfrom(const icalparameter* value);
1896+void icalparameter_set_delegatedfrom(icalparameter* value, const char* v);
1897+
1898+/* FBTYPE */
1899+icalparameter* icalparameter_new_fbtype(icalparameter_fbtype v);
1900+icalparameter_fbtype icalparameter_get_fbtype(const icalparameter* value);
1901+void icalparameter_set_fbtype(icalparameter* value, icalparameter_fbtype v);
1902+
1903+/* PARTSTAT */
1904+icalparameter* icalparameter_new_partstat(icalparameter_partstat v);
1905+icalparameter_partstat icalparameter_get_partstat(const icalparameter* value);
1906+void icalparameter_set_partstat(icalparameter* value, icalparameter_partstat v);
1907+
1908+/* ROLE */
1909+icalparameter* icalparameter_new_role(icalparameter_role v);
1910+icalparameter_role icalparameter_get_role(const icalparameter* value);
1911+void icalparameter_set_role(icalparameter* value, icalparameter_role v);
1912+
1913+#endif /*ICALPARAMETER_H*/
1914+
1915+/* Everything below this line is machine generated. Do not edit. */
1916diff -Nurb libical-0.42.orig/src/libical/icalderivedproperty.c libical-0.42/src/libical/icalderivedproperty.c
1917--- libical-0.42.orig/src/libical/icalderivedproperty.c 1970-01-01 01:00:00.000000000 +0100
1918+++ libical-0.42/src/libical/icalderivedproperty.c      2009-01-13 13:31:50.000000000 +0100
1919@@ -0,0 +1,3264 @@
1920+/* -*- Mode: C -*- */
1921+
1922+/*======================================================================
1923+  FILE: icalderivedproperty.c
1924+  CREATOR: eric 15 Feb 2001
1925
1926+  $Id: icalderivedproperty.c.in,v 1.15 2008-01-28 22:34:37 artcancro Exp $
1927+
1928+
1929+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
1930+
1931+ This program is free software; you can redistribute it and/or modify
1932+ it under the terms of either:
1933+
1934+    The LGPL as published by the Free Software Foundation, version
1935+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
1936+
1937+  Or:
1938+
1939+    The Mozilla Public License Version 1.0. You may obtain a copy of
1940+    the License at http://www.mozilla.org/MPL/
1941+
1942+  The original code is icalproperty.c
1943+
1944+======================================================================*/
1945+
1946+#ifdef HAVE_CONFIG_H
1947+#include <config.h>
1948+#endif
1949+
1950+#include "icalproperty.h"
1951+#include "icalcomponent.h"
1952+#include "pvl.h"
1953+#include "icalenums.h"
1954+#include "icalerror.h"
1955+#include "icalmemory.h"
1956+#include "icalparser.h"
1957+#include "icaltimezone.h"
1958+
1959+#include <string.h> /* For icalmemory_strdup, rindex */
1960+#include <assert.h>
1961+#include <stdlib.h>
1962+#include <errno.h>
1963+#include <stdio.h> /* for printf */
1964+#include <stdarg.h> /* for va_list, va_start, etc. */
1965+                                               
1966+#ifdef WIN32
1967+#define strcasecmp      stricmp
1968+#endif
1969+
1970+struct icalproperty_impl*
1971+icalproperty_new_impl (icalproperty_kind kind);
1972+void icalproperty_add_parameters(struct icalproperty_impl *prop,va_list args);
1973+
1974+/* This map associates the property kinds with the string
1975+   representation of the property name and the kind of VALUE that the
1976+   property uses as a default */
1977+
1978+struct  icalproperty_map {
1979+       icalproperty_kind kind;
1980+       const char *name;
1981+       icalvalue_kind value;
1982+
1983+};
1984+
1985+/* This map associates the property enumerations with the king of
1986+   property that they are used in and the string representation of the
1987+   enumeration */
1988+
1989+struct icalproperty_enum_map {
1990+    icalproperty_kind prop;
1991+    int prop_enum;
1992+    const char* str;
1993+};
1994+
1995+
1996+static const struct icalproperty_map property_map[101] = {
1997+{ICAL_ACTION_PROPERTY,"ACTION",ICAL_ACTION_VALUE},
1998+{ICAL_ALLOWCONFLICT_PROPERTY,"ALLOW-CONFLICT",ICAL_TEXT_VALUE},
1999+{ICAL_ANY_PROPERTY,"ANY",ICAL_NO_VALUE},
2000+{ICAL_ATTACH_PROPERTY,"ATTACH",ICAL_ATTACH_VALUE},
2001+{ICAL_ATTENDEE_PROPERTY,"ATTENDEE",ICAL_CALADDRESS_VALUE},
2002+{ICAL_CALID_PROPERTY,"CALID",ICAL_TEXT_VALUE},
2003+{ICAL_CALMASTER_PROPERTY,"CALMASTER",ICAL_TEXT_VALUE},
2004+{ICAL_CALSCALE_PROPERTY,"CALSCALE",ICAL_TEXT_VALUE},
2005+{ICAL_CAPVERSION_PROPERTY,"CAP-VERSION",ICAL_TEXT_VALUE},
2006+{ICAL_CARLEVEL_PROPERTY,"CAR-LEVEL",ICAL_CARLEVEL_VALUE},
2007+{ICAL_CARID_PROPERTY,"CARID",ICAL_TEXT_VALUE},
2008+{ICAL_CATEGORIES_PROPERTY,"CATEGORIES",ICAL_TEXT_VALUE},
2009+{ICAL_CLASS_PROPERTY,"CLASS",ICAL_CLASS_VALUE},
2010+{ICAL_CMD_PROPERTY,"CMD",ICAL_CMD_VALUE},
2011+{ICAL_COMMENT_PROPERTY,"COMMENT",ICAL_TEXT_VALUE},
2012+{ICAL_COMPLETED_PROPERTY,"COMPLETED",ICAL_DATETIME_VALUE},
2013+{ICAL_COMPONENTS_PROPERTY,"COMPONENTS",ICAL_TEXT_VALUE},
2014+{ICAL_CONTACT_PROPERTY,"CONTACT",ICAL_TEXT_VALUE},
2015+{ICAL_CREATED_PROPERTY,"CREATED",ICAL_DATETIME_VALUE},
2016+{ICAL_CSID_PROPERTY,"CSID",ICAL_URI_VALUE},
2017+{ICAL_DATEMAX_PROPERTY,"DATE-MAX",ICAL_DATETIME_VALUE},
2018+{ICAL_DATEMIN_PROPERTY,"DATE-MIN",ICAL_DATETIME_VALUE},
2019+{ICAL_DECREED_PROPERTY,"DECREED",ICAL_TEXT_VALUE},
2020+{ICAL_DEFAULTCHARSET_PROPERTY,"DEFAULT-CHARSET",ICAL_TEXT_VALUE},
2021+{ICAL_DEFAULTLOCALE_PROPERTY,"DEFAULT-LOCALE",ICAL_TEXT_VALUE},
2022+{ICAL_DEFAULTTZID_PROPERTY,"DEFAULT-TZID",ICAL_TEXT_VALUE},
2023+{ICAL_DEFAULTVCARS_PROPERTY,"DEFAULT-VCARS",ICAL_TEXT_VALUE},
2024+{ICAL_DENY_PROPERTY,"DENY",ICAL_TEXT_VALUE},
2025+{ICAL_DESCRIPTION_PROPERTY,"DESCRIPTION",ICAL_TEXT_VALUE},
2026+{ICAL_DTEND_PROPERTY,"DTEND",ICAL_DATETIME_VALUE},
2027+{ICAL_DTSTAMP_PROPERTY,"DTSTAMP",ICAL_DATETIME_VALUE},
2028+{ICAL_DTSTART_PROPERTY,"DTSTART",ICAL_DATETIME_VALUE},
2029+{ICAL_DUE_PROPERTY,"DUE",ICAL_DATETIME_VALUE},
2030+{ICAL_DURATION_PROPERTY,"DURATION",ICAL_DURATION_VALUE},
2031+{ICAL_EXDATE_PROPERTY,"EXDATE",ICAL_DATETIME_VALUE},
2032+{ICAL_EXPAND_PROPERTY,"EXPAND",ICAL_INTEGER_VALUE},
2033+{ICAL_EXRULE_PROPERTY,"EXRULE",ICAL_RECUR_VALUE},
2034+{ICAL_FREEBUSY_PROPERTY,"FREEBUSY",ICAL_PERIOD_VALUE},
2035+{ICAL_GEO_PROPERTY,"GEO",ICAL_GEO_VALUE},
2036+{ICAL_GRANT_PROPERTY,"GRANT",ICAL_TEXT_VALUE},
2037+{ICAL_ITIPVERSION_PROPERTY,"ITIP-VERSION",ICAL_TEXT_VALUE},
2038+{ICAL_LASTMODIFIED_PROPERTY,"LAST-MODIFIED",ICAL_DATETIME_VALUE},
2039+{ICAL_LOCATION_PROPERTY,"LOCATION",ICAL_TEXT_VALUE},
2040+{ICAL_MAXCOMPONENTSIZE_PROPERTY,"MAX-COMPONENT-SIZE",ICAL_INTEGER_VALUE},
2041+{ICAL_MAXDATE_PROPERTY,"MAXDATE",ICAL_DATETIME_VALUE},
2042+{ICAL_MAXRESULTS_PROPERTY,"MAXRESULTS",ICAL_INTEGER_VALUE},
2043+{ICAL_MAXRESULTSSIZE_PROPERTY,"MAXRESULTSSIZE",ICAL_INTEGER_VALUE},
2044+{ICAL_METHOD_PROPERTY,"METHOD",ICAL_METHOD_VALUE},
2045+{ICAL_MINDATE_PROPERTY,"MINDATE",ICAL_DATETIME_VALUE},
2046+{ICAL_MULTIPART_PROPERTY,"MULTIPART",ICAL_TEXT_VALUE},
2047+{ICAL_NAME_PROPERTY,"NAME",ICAL_TEXT_VALUE},
2048+{ICAL_ORGANIZER_PROPERTY,"ORGANIZER",ICAL_CALADDRESS_VALUE},
2049+{ICAL_OWNER_PROPERTY,"OWNER",ICAL_TEXT_VALUE},
2050+{ICAL_PERCENTCOMPLETE_PROPERTY,"PERCENT-COMPLETE",ICAL_INTEGER_VALUE},
2051+{ICAL_PERMISSION_PROPERTY,"PERMISSION",ICAL_TEXT_VALUE},
2052+{ICAL_PRIORITY_PROPERTY,"PRIORITY",ICAL_INTEGER_VALUE},
2053+{ICAL_PRODID_PROPERTY,"PRODID",ICAL_TEXT_VALUE},
2054+{ICAL_QUERY_PROPERTY,"QUERY",ICAL_QUERY_VALUE},
2055+{ICAL_QUERYLEVEL_PROPERTY,"QUERY-LEVEL",ICAL_QUERYLEVEL_VALUE},
2056+{ICAL_QUERYID_PROPERTY,"QUERYID",ICAL_TEXT_VALUE},
2057+{ICAL_QUERYNAME_PROPERTY,"QUERYNAME",ICAL_TEXT_VALUE},
2058+{ICAL_RDATE_PROPERTY,"RDATE",ICAL_DATETIMEPERIOD_VALUE},
2059+{ICAL_RECURACCEPTED_PROPERTY,"RECUR-ACCEPTED",ICAL_TEXT_VALUE},
2060+{ICAL_RECUREXPAND_PROPERTY,"RECUR-EXPAND",ICAL_TEXT_VALUE},
2061+{ICAL_RECURLIMIT_PROPERTY,"RECUR-LIMIT",ICAL_TEXT_VALUE},
2062+{ICAL_RECURRENCEID_PROPERTY,"RECURRENCE-ID",ICAL_DATETIME_VALUE},
2063+{ICAL_RELATEDTO_PROPERTY,"RELATED-TO",ICAL_TEXT_VALUE},
2064+{ICAL_RELCALID_PROPERTY,"RELCALID",ICAL_TEXT_VALUE},
2065+{ICAL_REPEAT_PROPERTY,"REPEAT",ICAL_INTEGER_VALUE},
2066+{ICAL_REQUESTSTATUS_PROPERTY,"REQUEST-STATUS",ICAL_REQUESTSTATUS_VALUE},
2067+{ICAL_RESOURCES_PROPERTY,"RESOURCES",ICAL_TEXT_VALUE},
2068+{ICAL_RESTRICTION_PROPERTY,"RESTRICTION",ICAL_QUERY_VALUE},
2069+{ICAL_RRULE_PROPERTY,"RRULE",ICAL_RECUR_VALUE},
2070+{ICAL_SCOPE_PROPERTY,"SCOPE",ICAL_TEXT_VALUE},
2071+{ICAL_SEQUENCE_PROPERTY,"SEQUENCE",ICAL_INTEGER_VALUE},
2072+{ICAL_STATUS_PROPERTY,"STATUS",ICAL_STATUS_VALUE},
2073+{ICAL_STORESEXPANDED_PROPERTY,"STORES-EXPANDED",ICAL_TEXT_VALUE},
2074+{ICAL_SUMMARY_PROPERTY,"SUMMARY",ICAL_TEXT_VALUE},
2075+{ICAL_TARGET_PROPERTY,"TARGET",ICAL_CALADDRESS_VALUE},
2076+{ICAL_TRANSP_PROPERTY,"TRANSP",ICAL_TRANSP_VALUE},
2077+{ICAL_TRIGGER_PROPERTY,"TRIGGER",ICAL_TRIGGER_VALUE},
2078+{ICAL_TZID_PROPERTY,"TZID",ICAL_TEXT_VALUE},
2079+{ICAL_TZNAME_PROPERTY,"TZNAME",ICAL_TEXT_VALUE},
2080+{ICAL_TZOFFSETFROM_PROPERTY,"TZOFFSETFROM",ICAL_UTCOFFSET_VALUE},
2081+{ICAL_TZOFFSETTO_PROPERTY,"TZOFFSETTO",ICAL_UTCOFFSET_VALUE},
2082+{ICAL_TZURL_PROPERTY,"TZURL",ICAL_URI_VALUE},
2083+{ICAL_UID_PROPERTY,"UID",ICAL_TEXT_VALUE},
2084+{ICAL_URL_PROPERTY,"URL",ICAL_URI_VALUE},
2085+{ICAL_VERSION_PROPERTY,"VERSION",ICAL_TEXT_VALUE},
2086+{ICAL_X_PROPERTY,"X",ICAL_X_VALUE},
2087+{ICAL_XLICCLASS_PROPERTY,"X-LIC-CLASS",ICAL_XLICCLASS_VALUE},
2088+{ICAL_XLICCLUSTERCOUNT_PROPERTY,"X-LIC-CLUSTERCOUNT",ICAL_STRING_VALUE},
2089+{ICAL_XLICERROR_PROPERTY,"X-LIC-ERROR",ICAL_TEXT_VALUE},
2090+{ICAL_XLICMIMECHARSET_PROPERTY,"X-LIC-MIMECHARSET",ICAL_STRING_VALUE},
2091+{ICAL_XLICMIMECID_PROPERTY,"X-LIC-MIMECID",ICAL_STRING_VALUE},
2092+{ICAL_XLICMIMECONTENTTYPE_PROPERTY,"X-LIC-MIMECONTENTTYPE",ICAL_STRING_VALUE},
2093+{ICAL_XLICMIMEENCODING_PROPERTY,"X-LIC-MIMEENCODING",ICAL_STRING_VALUE},
2094+{ICAL_XLICMIMEFILENAME_PROPERTY,"X-LIC-MIMEFILENAME",ICAL_STRING_VALUE},
2095+{ICAL_XLICMIMEOPTINFO_PROPERTY,"X-LIC-MIMEOPTINFO",ICAL_STRING_VALUE},
2096+{ICAL_NO_PROPERTY,"",ICAL_NO_VALUE}};
2097+
2098+static const struct icalproperty_enum_map enum_map[98] = {
2099+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_X,"" }, /*10000*/
2100+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_AUDIO,"AUDIO" }, /*10001*/
2101+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_DISPLAY,"DISPLAY" }, /*10002*/
2102+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_EMAIL,"EMAIL" }, /*10003*/
2103+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_PROCEDURE,"PROCEDURE" }, /*10004*/
2104+    {ICAL_ACTION_PROPERTY,ICAL_ACTION_NONE,"" }, /*10005*/
2105+    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_X,"" }, /*10006*/
2106+    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_CARNONE,"CAR-NONE" }, /*10007*/
2107+    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_CARMIN,"CAR-MIN" }, /*10008*/
2108+    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_CARFULL1,"CAR-FULL-1" }, /*10009*/
2109+    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_NONE,"" }, /*10010*/
2110+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_X,"" }, /*10011*/
2111+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_PUBLIC,"PUBLIC" }, /*10012*/
2112+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_PRIVATE,"PRIVATE" }, /*10013*/
2113+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_CONFIDENTIAL,"CONFIDENTIAL" }, /*10014*/
2114+    {ICAL_CLASS_PROPERTY,ICAL_CLASS_NONE,"" }, /*10015*/
2115+    {ICAL_CMD_PROPERTY,ICAL_CMD_X,"" }, /*10016*/
2116+    {ICAL_CMD_PROPERTY,ICAL_CMD_ABORT,"ABORT" }, /*10017*/
2117+    {ICAL_CMD_PROPERTY,ICAL_CMD_CONTINUE,"CONTINUE" }, /*10018*/
2118+    {ICAL_CMD_PROPERTY,ICAL_CMD_CREATE,"CREATE" }, /*10019*/
2119+    {ICAL_CMD_PROPERTY,ICAL_CMD_DELETE,"DELETE" }, /*10020*/
2120+    {ICAL_CMD_PROPERTY,ICAL_CMD_GENERATEUID,"GENERATE-UID" }, /*10021*/
2121+    {ICAL_CMD_PROPERTY,ICAL_CMD_GETCAPABILITY,"GET-CAPABILITY" }, /*10022*/
2122+    {ICAL_CMD_PROPERTY,ICAL_CMD_IDENTIFY,"IDENTIFY" }, /*10023*/
2123+    {ICAL_CMD_PROPERTY,ICAL_CMD_MODIFY,"MODIFY" }, /*10024*/
2124+    {ICAL_CMD_PROPERTY,ICAL_CMD_MOVE,"MOVE" }, /*10025*/
2125+    {ICAL_CMD_PROPERTY,ICAL_CMD_REPLY,"REPLY" }, /*10026*/
2126+    {ICAL_CMD_PROPERTY,ICAL_CMD_SEARCH,"SEARCH" }, /*10027*/
2127+    {ICAL_CMD_PROPERTY,ICAL_CMD_SETLOCALE,"SET-LOCALE" }, /*10028*/
2128+    {ICAL_CMD_PROPERTY,ICAL_CMD_NONE,"" }, /*10029*/
2129+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_X,"" }, /*10030*/
2130+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_PUBLISH,"PUBLISH" }, /*10031*/
2131+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_REQUEST,"REQUEST" }, /*10032*/
2132+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_REPLY,"REPLY" }, /*10033*/
2133+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_ADD,"ADD" }, /*10034*/
2134+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_CANCEL,"CANCEL" }, /*10035*/
2135+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_REFRESH,"REFRESH" }, /*10036*/
2136+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_COUNTER,"COUNTER" }, /*10037*/
2137+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_DECLINECOUNTER,"DECLINECOUNTER" }, /*10038*/
2138+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_CREATE,"CREATE" }, /*10039*/
2139+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_READ,"READ" }, /*10040*/
2140+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_RESPONSE,"RESPONSE" }, /*10041*/
2141+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_MOVE,"MOVE" }, /*10042*/
2142+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_MODIFY,"MODIFY" }, /*10043*/
2143+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_GENERATEUID,"GENERATEUID" }, /*10044*/
2144+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_DELETE,"DELETE" }, /*10045*/
2145+    {ICAL_METHOD_PROPERTY,ICAL_METHOD_NONE,"" }, /*10046*/
2146+    {ICAL_QUERYLEVEL_PROPERTY,ICAL_QUERYLEVEL_X,"" }, /*10047*/
2147+    {ICAL_QUERYLEVEL_PROPERTY,ICAL_QUERYLEVEL_CALQL1,"CAL-QL-1" }, /*10048*/
2148+    {ICAL_QUERYLEVEL_PROPERTY,ICAL_QUERYLEVEL_CALQLNONE,"CAL-QL-NONE" }, /*10049*/
2149+    {ICAL_QUERYLEVEL_PROPERTY,ICAL_QUERYLEVEL_NONE,"" }, /*10050*/
2150+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_X,"" }, /*10051*/
2151+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_TENTATIVE,"TENTATIVE" }, /*10052*/
2152+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_CONFIRMED,"CONFIRMED" }, /*10053*/
2153+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_COMPLETED,"COMPLETED" }, /*10054*/
2154+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_NEEDSACTION,"NEEDS-ACTION" }, /*10055*/
2155+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_CANCELLED,"CANCELLED" }, /*10056*/
2156+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_INPROCESS,"IN-PROCESS" }, /*10057*/
2157+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_DRAFT,"DRAFT" }, /*10058*/
2158+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_FINAL,"FINAL" }, /*10059*/
2159+    {ICAL_STATUS_PROPERTY,ICAL_STATUS_NONE,"" }, /*10060*/
2160+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_X,"" }, /*10061*/
2161+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_OPAQUE,"OPAQUE" }, /*10062*/
2162+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_OPAQUENOCONFLICT,"OPAQUE-NOCONFLICT" }, /*10063*/
2163+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_TRANSPARENT,"TRANSPARENT" }, /*10064*/
2164+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_TRANSPARENTNOCONFLICT,"TRANSPARENT-NOCONFLICT" }, /*10065*/
2165+    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_NONE,"" }, /*10066*/
2166+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_X,"" }, /*10067*/
2167+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_PUBLISHNEW,"PUBLISH-NEW" }, /*10068*/
2168+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_PUBLISHUPDATE,"PUBLISH-UPDATE" }, /*10069*/
2169+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_PUBLISHFREEBUSY,"PUBLISH-FREEBUSY" }, /*10070*/
2170+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTNEW,"REQUEST-NEW" }, /*10071*/
2171+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTUPDATE,"REQUEST-UPDATE" }, /*10072*/
2172+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTRESCHEDULE,"REQUEST-RESCHEDULE" }, /*10073*/
2173+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTDELEGATE,"REQUEST-DELEGATE" }, /*10074*/
2174+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTNEWORGANIZER,"REQUEST-NEW-ORGANIZER" }, /*10075*/
2175+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTFORWARD,"REQUEST-FORWARD" }, /*10076*/
2176+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTSTATUS,"REQUEST-STATUS" }, /*10077*/
2177+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTFREEBUSY,"REQUEST-FREEBUSY" }, /*10078*/
2178+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYACCEPT,"REPLY-ACCEPT" }, /*10079*/
2179+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYDECLINE,"REPLY-DECLINE" }, /*10080*/
2180+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYDELEGATE,"REPLY-DELEGATE" }, /*10081*/
2181+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYCRASHERACCEPT,"REPLY-CRASHER-ACCEPT" }, /*10082*/
2182+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYCRASHERDECLINE,"REPLY-CRASHER-DECLINE" }, /*10083*/
2183+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_ADDINSTANCE,"ADD-INSTANCE" }, /*10084*/
2184+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_CANCELEVENT,"CANCEL-EVENT" }, /*10085*/
2185+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_CANCELINSTANCE,"CANCEL-INSTANCE" }, /*10086*/
2186+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_CANCELALL,"CANCEL-ALL" }, /*10087*/
2187+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REFRESH,"REFRESH" }, /*10088*/
2188+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_COUNTER,"COUNTER" }, /*10089*/
2189+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_DECLINECOUNTER,"DECLINECOUNTER" }, /*10090*/
2190+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_MALFORMED,"MALFORMED" }, /*10091*/
2191+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_OBSOLETE,"OBSOLETE" }, /*10092*/
2192+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_MISSEQUENCED,"MISSEQUENCED" }, /*10093*/
2193+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_UNKNOWN,"UNKNOWN" }, /*10094*/
2194+    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_NONE,"" }, /*10095*/
2195+    {ICAL_NO_PROPERTY,0,""}
2196+};
2197+
2198+icalproperty* icalproperty_vanew_action(enum icalproperty_action v, ...){
2199+   va_list args;
2200+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ACTION_PROPERTY);   
2201+   icalproperty_set_action((icalproperty*)impl,v);
2202+   va_start(args,v);
2203+   icalproperty_add_parameters(impl, args);
2204+   va_end(args);
2205+   return (icalproperty*)impl;
2206+}
2207+
2208+/* ACTION */
2209+icalproperty* icalproperty_new_action(enum icalproperty_action v) {
2210+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ACTION_PROPERTY);   
2211+   icalproperty_set_action((icalproperty*)impl,v);
2212+   return (icalproperty*)impl;
2213+}
2214+
2215+void icalproperty_set_action(icalproperty* prop, enum icalproperty_action v){
2216+   
2217+    icalerror_check_arg_rv( (prop!=0),"prop");
2218+    icalproperty_set_value(prop,icalvalue_new_action(v));
2219+}
2220+enum icalproperty_action icalproperty_get_action(const icalproperty* prop){
2221+    icalerror_check_arg( (prop!=0),"prop");
2222+    return icalvalue_get_action(icalproperty_get_value(prop));
2223+}
2224+icalproperty* icalproperty_vanew_allowconflict(const char* v, ...){
2225+   va_list args;
2226+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ALLOWCONFLICT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2227+
2228+   icalproperty_set_allowconflict((icalproperty*)impl,v);
2229+   va_start(args,v);
2230+   icalproperty_add_parameters(impl, args);
2231+   va_end(args);
2232+   return (icalproperty*)impl;
2233+}
2234+
2235+/* ALLOW-CONFLICT */
2236+icalproperty* icalproperty_new_allowconflict(const char* v) {
2237+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ALLOWCONFLICT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2238+
2239+   icalproperty_set_allowconflict((icalproperty*)impl,v);
2240+   return (icalproperty*)impl;
2241+}
2242+
2243+void icalproperty_set_allowconflict(icalproperty* prop, const char* v){
2244+    icalerror_check_arg_rv( (v!=0),"v");
2245+
2246+    icalerror_check_arg_rv( (prop!=0),"prop");
2247+    icalproperty_set_value(prop,icalvalue_new_text(v));
2248+}
2249+const char* icalproperty_get_allowconflict(const icalproperty* prop){
2250+    icalerror_check_arg( (prop!=0),"prop");
2251+    return icalvalue_get_text(icalproperty_get_value(prop));
2252+}
2253+icalproperty* icalproperty_vanew_attach(icalattach * v, ...){
2254+   va_list args;
2255+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ATTACH_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2256+
2257+   icalproperty_set_attach((icalproperty*)impl,v);
2258+   va_start(args,v);
2259+   icalproperty_add_parameters(impl, args);
2260+   va_end(args);
2261+   return (icalproperty*)impl;
2262+}
2263+
2264+/* ATTACH */
2265+icalproperty* icalproperty_new_attach(icalattach * v) {
2266+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ATTACH_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2267+
2268+   icalproperty_set_attach((icalproperty*)impl,v);
2269+   return (icalproperty*)impl;
2270+}
2271+
2272+void icalproperty_set_attach(icalproperty* prop, icalattach * v){
2273+    icalerror_check_arg_rv( (v!=0),"v");
2274+
2275+    icalerror_check_arg_rv( (prop!=0),"prop");
2276+    icalproperty_set_value(prop,icalvalue_new_attach(v));
2277+}
2278+icalattach * icalproperty_get_attach(const icalproperty* prop){
2279+    icalerror_check_arg( (prop!=0),"prop");
2280+    return icalvalue_get_attach(icalproperty_get_value(prop));
2281+}
2282+icalproperty* icalproperty_vanew_attendee(const char* v, ...){
2283+   va_list args;
2284+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ATTENDEE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2285+
2286+   icalproperty_set_attendee((icalproperty*)impl,v);
2287+   va_start(args,v);
2288+   icalproperty_add_parameters(impl, args);
2289+   va_end(args);
2290+   return (icalproperty*)impl;
2291+}
2292+
2293+/* ATTENDEE */
2294+icalproperty* icalproperty_new_attendee(const char* v) {
2295+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ATTENDEE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2296+
2297+   icalproperty_set_attendee((icalproperty*)impl,v);
2298+   return (icalproperty*)impl;
2299+}
2300+
2301+void icalproperty_set_attendee(icalproperty* prop, const char* v){
2302+    icalerror_check_arg_rv( (v!=0),"v");
2303+
2304+    icalerror_check_arg_rv( (prop!=0),"prop");
2305+    icalproperty_set_value(prop,icalvalue_new_caladdress(v));
2306+}
2307+const char* icalproperty_get_attendee(const icalproperty* prop){
2308+    icalerror_check_arg( (prop!=0),"prop");
2309+    return icalvalue_get_caladdress(icalproperty_get_value(prop));
2310+}
2311+icalproperty* icalproperty_vanew_calid(const char* v, ...){
2312+   va_list args;
2313+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2314+
2315+   icalproperty_set_calid((icalproperty*)impl,v);
2316+   va_start(args,v);
2317+   icalproperty_add_parameters(impl, args);
2318+   va_end(args);
2319+   return (icalproperty*)impl;
2320+}
2321+
2322+/* CALID */
2323+icalproperty* icalproperty_new_calid(const char* v) {
2324+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2325+
2326+   icalproperty_set_calid((icalproperty*)impl,v);
2327+   return (icalproperty*)impl;
2328+}
2329+
2330+void icalproperty_set_calid(icalproperty* prop, const char* v){
2331+    icalerror_check_arg_rv( (v!=0),"v");
2332+
2333+    icalerror_check_arg_rv( (prop!=0),"prop");
2334+    icalproperty_set_value(prop,icalvalue_new_text(v));
2335+}
2336+const char* icalproperty_get_calid(const icalproperty* prop){
2337+    icalerror_check_arg( (prop!=0),"prop");
2338+    return icalvalue_get_text(icalproperty_get_value(prop));
2339+}
2340+icalproperty* icalproperty_vanew_calmaster(const char* v, ...){
2341+   va_list args;
2342+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALMASTER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2343+
2344+   icalproperty_set_calmaster((icalproperty*)impl,v);
2345+   va_start(args,v);
2346+   icalproperty_add_parameters(impl, args);
2347+   va_end(args);
2348+   return (icalproperty*)impl;
2349+}
2350+
2351+/* CALMASTER */
2352+icalproperty* icalproperty_new_calmaster(const char* v) {
2353+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALMASTER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2354+
2355+   icalproperty_set_calmaster((icalproperty*)impl,v);
2356+   return (icalproperty*)impl;
2357+}
2358+
2359+void icalproperty_set_calmaster(icalproperty* prop, const char* v){
2360+    icalerror_check_arg_rv( (v!=0),"v");
2361+
2362+    icalerror_check_arg_rv( (prop!=0),"prop");
2363+    icalproperty_set_value(prop,icalvalue_new_text(v));
2364+}
2365+const char* icalproperty_get_calmaster(const icalproperty* prop){
2366+    icalerror_check_arg( (prop!=0),"prop");
2367+    return icalvalue_get_text(icalproperty_get_value(prop));
2368+}
2369+icalproperty* icalproperty_vanew_calscale(const char* v, ...){
2370+   va_list args;
2371+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALSCALE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2372+
2373+   icalproperty_set_calscale((icalproperty*)impl,v);
2374+   va_start(args,v);
2375+   icalproperty_add_parameters(impl, args);
2376+   va_end(args);
2377+   return (icalproperty*)impl;
2378+}
2379+
2380+/* CALSCALE */
2381+icalproperty* icalproperty_new_calscale(const char* v) {
2382+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALSCALE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2383+
2384+   icalproperty_set_calscale((icalproperty*)impl,v);
2385+   return (icalproperty*)impl;
2386+}
2387+
2388+void icalproperty_set_calscale(icalproperty* prop, const char* v){
2389+    icalerror_check_arg_rv( (v!=0),"v");
2390+
2391+    icalerror_check_arg_rv( (prop!=0),"prop");
2392+    icalproperty_set_value(prop,icalvalue_new_text(v));
2393+}
2394+const char* icalproperty_get_calscale(const icalproperty* prop){
2395+    icalerror_check_arg( (prop!=0),"prop");
2396+    return icalvalue_get_text(icalproperty_get_value(prop));
2397+}
2398+icalproperty* icalproperty_vanew_capversion(const char* v, ...){
2399+   va_list args;
2400+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CAPVERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2401+
2402+   icalproperty_set_capversion((icalproperty*)impl,v);
2403+   va_start(args,v);
2404+   icalproperty_add_parameters(impl, args);
2405+   va_end(args);
2406+   return (icalproperty*)impl;
2407+}
2408+
2409+/* CAP-VERSION */
2410+icalproperty* icalproperty_new_capversion(const char* v) {
2411+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CAPVERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2412+
2413+   icalproperty_set_capversion((icalproperty*)impl,v);
2414+   return (icalproperty*)impl;
2415+}
2416+
2417+void icalproperty_set_capversion(icalproperty* prop, const char* v){
2418+    icalerror_check_arg_rv( (v!=0),"v");
2419+
2420+    icalerror_check_arg_rv( (prop!=0),"prop");
2421+    icalproperty_set_value(prop,icalvalue_new_text(v));
2422+}
2423+const char* icalproperty_get_capversion(const icalproperty* prop){
2424+    icalerror_check_arg( (prop!=0),"prop");
2425+    return icalvalue_get_text(icalproperty_get_value(prop));
2426+}
2427+icalproperty* icalproperty_vanew_carlevel(enum icalproperty_carlevel v, ...){
2428+   va_list args;
2429+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CARLEVEL_PROPERTY);   
2430+   icalproperty_set_carlevel((icalproperty*)impl,v);
2431+   va_start(args,v);
2432+   icalproperty_add_parameters(impl, args);
2433+   va_end(args);
2434+   return (icalproperty*)impl;
2435+}
2436+
2437+/* CAR-LEVEL */
2438+icalproperty* icalproperty_new_carlevel(enum icalproperty_carlevel v) {
2439+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CARLEVEL_PROPERTY);   
2440+   icalproperty_set_carlevel((icalproperty*)impl,v);
2441+   return (icalproperty*)impl;
2442+}
2443+
2444+void icalproperty_set_carlevel(icalproperty* prop, enum icalproperty_carlevel v){
2445+   
2446+    icalerror_check_arg_rv( (prop!=0),"prop");
2447+    icalproperty_set_value(prop,icalvalue_new_carlevel(v));
2448+}
2449+enum icalproperty_carlevel icalproperty_get_carlevel(const icalproperty* prop){
2450+    icalerror_check_arg( (prop!=0),"prop");
2451+    return icalvalue_get_carlevel(icalproperty_get_value(prop));
2452+}
2453+icalproperty* icalproperty_vanew_carid(const char* v, ...){
2454+   va_list args;
2455+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CARID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2456+
2457+   icalproperty_set_carid((icalproperty*)impl,v);
2458+   va_start(args,v);
2459+   icalproperty_add_parameters(impl, args);
2460+   va_end(args);
2461+   return (icalproperty*)impl;
2462+}
2463+
2464+/* CARID */
2465+icalproperty* icalproperty_new_carid(const char* v) {
2466+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CARID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2467+
2468+   icalproperty_set_carid((icalproperty*)impl,v);
2469+   return (icalproperty*)impl;
2470+}
2471+
2472+void icalproperty_set_carid(icalproperty* prop, const char* v){
2473+    icalerror_check_arg_rv( (v!=0),"v");
2474+
2475+    icalerror_check_arg_rv( (prop!=0),"prop");
2476+    icalproperty_set_value(prop,icalvalue_new_text(v));
2477+}
2478+const char* icalproperty_get_carid(const icalproperty* prop){
2479+    icalerror_check_arg( (prop!=0),"prop");
2480+    return icalvalue_get_text(icalproperty_get_value(prop));
2481+}
2482+icalproperty* icalproperty_vanew_categories(const char* v, ...){
2483+   va_list args;
2484+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CATEGORIES_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2485+
2486+   icalproperty_set_categories((icalproperty*)impl,v);
2487+   va_start(args,v);
2488+   icalproperty_add_parameters(impl, args);
2489+   va_end(args);
2490+   return (icalproperty*)impl;
2491+}
2492+
2493+/* CATEGORIES */
2494+icalproperty* icalproperty_new_categories(const char* v) {
2495+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CATEGORIES_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2496+
2497+   icalproperty_set_categories((icalproperty*)impl,v);
2498+   return (icalproperty*)impl;
2499+}
2500+
2501+void icalproperty_set_categories(icalproperty* prop, const char* v){
2502+    icalerror_check_arg_rv( (v!=0),"v");
2503+
2504+    icalerror_check_arg_rv( (prop!=0),"prop");
2505+    icalproperty_set_value(prop,icalvalue_new_text(v));
2506+}
2507+const char* icalproperty_get_categories(const icalproperty* prop){
2508+    icalerror_check_arg( (prop!=0),"prop");
2509+    return icalvalue_get_text(icalproperty_get_value(prop));
2510+}
2511+icalproperty* icalproperty_vanew_class(enum icalproperty_class v, ...){
2512+   va_list args;
2513+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CLASS_PROPERTY);   
2514+   icalproperty_set_class((icalproperty*)impl,v);
2515+   va_start(args,v);
2516+   icalproperty_add_parameters(impl, args);
2517+   va_end(args);
2518+   return (icalproperty*)impl;
2519+}
2520+
2521+/* CLASS */
2522+icalproperty* icalproperty_new_class(enum icalproperty_class v) {
2523+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CLASS_PROPERTY);   
2524+   icalproperty_set_class((icalproperty*)impl,v);
2525+   return (icalproperty*)impl;
2526+}
2527+
2528+void icalproperty_set_class(icalproperty* prop, enum icalproperty_class v){
2529+   
2530+    icalerror_check_arg_rv( (prop!=0),"prop");
2531+    icalproperty_set_value(prop,icalvalue_new_class(v));
2532+}
2533+enum icalproperty_class icalproperty_get_class(const icalproperty* prop){
2534+    icalerror_check_arg( (prop!=0),"prop");
2535+    return icalvalue_get_class(icalproperty_get_value(prop));
2536+}
2537+icalproperty* icalproperty_vanew_cmd(enum icalproperty_cmd v, ...){
2538+   va_list args;
2539+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CMD_PROPERTY);   
2540+   icalproperty_set_cmd((icalproperty*)impl,v);
2541+   va_start(args,v);
2542+   icalproperty_add_parameters(impl, args);
2543+   va_end(args);
2544+   return (icalproperty*)impl;
2545+}
2546+
2547+/* CMD */
2548+icalproperty* icalproperty_new_cmd(enum icalproperty_cmd v) {
2549+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CMD_PROPERTY);   
2550+   icalproperty_set_cmd((icalproperty*)impl,v);
2551+   return (icalproperty*)impl;
2552+}
2553+
2554+void icalproperty_set_cmd(icalproperty* prop, enum icalproperty_cmd v){
2555+   
2556+    icalerror_check_arg_rv( (prop!=0),"prop");
2557+    icalproperty_set_value(prop,icalvalue_new_cmd(v));
2558+}
2559+enum icalproperty_cmd icalproperty_get_cmd(const icalproperty* prop){
2560+    icalerror_check_arg( (prop!=0),"prop");
2561+    return icalvalue_get_cmd(icalproperty_get_value(prop));
2562+}
2563+icalproperty* icalproperty_vanew_comment(const char* v, ...){
2564+   va_list args;
2565+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMMENT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2566+
2567+   icalproperty_set_comment((icalproperty*)impl,v);
2568+   va_start(args,v);
2569+   icalproperty_add_parameters(impl, args);
2570+   va_end(args);
2571+   return (icalproperty*)impl;
2572+}
2573+
2574+/* COMMENT */
2575+icalproperty* icalproperty_new_comment(const char* v) {
2576+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMMENT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2577+
2578+   icalproperty_set_comment((icalproperty*)impl,v);
2579+   return (icalproperty*)impl;
2580+}
2581+
2582+void icalproperty_set_comment(icalproperty* prop, const char* v){
2583+    icalerror_check_arg_rv( (v!=0),"v");
2584+
2585+    icalerror_check_arg_rv( (prop!=0),"prop");
2586+    icalproperty_set_value(prop,icalvalue_new_text(v));
2587+}
2588+const char* icalproperty_get_comment(const icalproperty* prop){
2589+    icalerror_check_arg( (prop!=0),"prop");
2590+    return icalvalue_get_text(icalproperty_get_value(prop));
2591+}
2592+icalproperty* icalproperty_vanew_completed(struct icaltimetype v, ...){
2593+   va_list args;
2594+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMPLETED_PROPERTY);   
2595+   icalproperty_set_completed((icalproperty*)impl,v);
2596+   va_start(args,v);
2597+   icalproperty_add_parameters(impl, args);
2598+   va_end(args);
2599+   return (icalproperty*)impl;
2600+}
2601+
2602+/* COMPLETED */
2603+icalproperty* icalproperty_new_completed(struct icaltimetype v) {
2604+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMPLETED_PROPERTY);   
2605+   icalproperty_set_completed((icalproperty*)impl,v);
2606+   return (icalproperty*)impl;
2607+}
2608+
2609+void icalproperty_set_completed(icalproperty* prop, struct icaltimetype v){
2610+   
2611+    icalerror_check_arg_rv( (prop!=0),"prop");
2612+    icalproperty_set_value(prop,icalvalue_new_datetime(v));
2613+}
2614+struct icaltimetype icalproperty_get_completed(const icalproperty* prop){
2615+    icalerror_check_arg( (prop!=0),"prop");
2616+    return icalvalue_get_datetime(icalproperty_get_value(prop));
2617+}
2618+icalproperty* icalproperty_vanew_components(const char* v, ...){
2619+   va_list args;
2620+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMPONENTS_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2621+
2622+   icalproperty_set_components((icalproperty*)impl,v);
2623+   va_start(args,v);
2624+   icalproperty_add_parameters(impl, args);
2625+   va_end(args);
2626+   return (icalproperty*)impl;
2627+}
2628+
2629+/* COMPONENTS */
2630+icalproperty* icalproperty_new_components(const char* v) {
2631+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMPONENTS_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2632+
2633+   icalproperty_set_components((icalproperty*)impl,v);
2634+   return (icalproperty*)impl;
2635+}
2636+
2637+void icalproperty_set_components(icalproperty* prop, const char* v){
2638+    icalerror_check_arg_rv( (v!=0),"v");
2639+
2640+    icalerror_check_arg_rv( (prop!=0),"prop");
2641+    icalproperty_set_value(prop,icalvalue_new_text(v));
2642+}
2643+const char* icalproperty_get_components(const icalproperty* prop){
2644+    icalerror_check_arg( (prop!=0),"prop");
2645+    return icalvalue_get_text(icalproperty_get_value(prop));
2646+}
2647+icalproperty* icalproperty_vanew_contact(const char* v, ...){
2648+   va_list args;
2649+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CONTACT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2650+
2651+   icalproperty_set_contact((icalproperty*)impl,v);
2652+   va_start(args,v);
2653+   icalproperty_add_parameters(impl, args);
2654+   va_end(args);
2655+   return (icalproperty*)impl;
2656+}
2657+
2658+/* CONTACT */
2659+icalproperty* icalproperty_new_contact(const char* v) {
2660+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CONTACT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2661+
2662+   icalproperty_set_contact((icalproperty*)impl,v);
2663+   return (icalproperty*)impl;
2664+}
2665+
2666+void icalproperty_set_contact(icalproperty* prop, const char* v){
2667+    icalerror_check_arg_rv( (v!=0),"v");
2668+
2669+    icalerror_check_arg_rv( (prop!=0),"prop");
2670+    icalproperty_set_value(prop,icalvalue_new_text(v));
2671+}
2672+const char* icalproperty_get_contact(const icalproperty* prop){
2673+    icalerror_check_arg( (prop!=0),"prop");
2674+    return icalvalue_get_text(icalproperty_get_value(prop));
2675+}
2676+icalproperty* icalproperty_vanew_created(struct icaltimetype v, ...){
2677+   va_list args;
2678+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CREATED_PROPERTY);   
2679+   icalproperty_set_created((icalproperty*)impl,v);
2680+   va_start(args,v);
2681+   icalproperty_add_parameters(impl, args);
2682+   va_end(args);
2683+   return (icalproperty*)impl;
2684+}
2685+
2686+/* CREATED */
2687+icalproperty* icalproperty_new_created(struct icaltimetype v) {
2688+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CREATED_PROPERTY);   
2689+   icalproperty_set_created((icalproperty*)impl,v);
2690+   return (icalproperty*)impl;
2691+}
2692+
2693+void icalproperty_set_created(icalproperty* prop, struct icaltimetype v){
2694+   
2695+    icalerror_check_arg_rv( (prop!=0),"prop");
2696+    icalproperty_set_value(prop,icalvalue_new_datetime(v));
2697+}
2698+struct icaltimetype icalproperty_get_created(const icalproperty* prop){
2699+    icalerror_check_arg( (prop!=0),"prop");
2700+    return icalvalue_get_datetime(icalproperty_get_value(prop));
2701+}
2702+icalproperty* icalproperty_vanew_csid(const char* v, ...){
2703+   va_list args;
2704+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CSID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2705+
2706+   icalproperty_set_csid((icalproperty*)impl,v);
2707+   va_start(args,v);
2708+   icalproperty_add_parameters(impl, args);
2709+   va_end(args);
2710+   return (icalproperty*)impl;
2711+}
2712+
2713+/* CSID */
2714+icalproperty* icalproperty_new_csid(const char* v) {
2715+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CSID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2716+
2717+   icalproperty_set_csid((icalproperty*)impl,v);
2718+   return (icalproperty*)impl;
2719+}
2720+
2721+void icalproperty_set_csid(icalproperty* prop, const char* v){
2722+    icalerror_check_arg_rv( (v!=0),"v");
2723+
2724+    icalerror_check_arg_rv( (prop!=0),"prop");
2725+    icalproperty_set_value(prop,icalvalue_new_uri(v));
2726+}
2727+const char* icalproperty_get_csid(const icalproperty* prop){
2728+    icalerror_check_arg( (prop!=0),"prop");
2729+    return icalvalue_get_uri(icalproperty_get_value(prop));
2730+}
2731+icalproperty* icalproperty_vanew_datemax(struct icaltimetype v, ...){
2732+   va_list args;
2733+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DATEMAX_PROPERTY);   
2734+   icalproperty_set_datemax((icalproperty*)impl,v);
2735+   va_start(args,v);
2736+   icalproperty_add_parameters(impl, args);
2737+   va_end(args);
2738+   return (icalproperty*)impl;
2739+}
2740+
2741+/* DATE-MAX */
2742+icalproperty* icalproperty_new_datemax(struct icaltimetype v) {
2743+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DATEMAX_PROPERTY);   
2744+   icalproperty_set_datemax((icalproperty*)impl,v);
2745+   return (icalproperty*)impl;
2746+}
2747+
2748+void icalproperty_set_datemax(icalproperty* prop, struct icaltimetype v){
2749+   
2750+    icalerror_check_arg_rv( (prop!=0),"prop");
2751+    icalproperty_set_value(prop,icalvalue_new_datetime(v));
2752+}
2753+struct icaltimetype icalproperty_get_datemax(const icalproperty* prop){
2754+    icalerror_check_arg( (prop!=0),"prop");
2755+    return icalvalue_get_datetime(icalproperty_get_value(prop));
2756+}
2757+icalproperty* icalproperty_vanew_datemin(struct icaltimetype v, ...){
2758+   va_list args;
2759+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DATEMIN_PROPERTY);   
2760+   icalproperty_set_datemin((icalproperty*)impl,v);
2761+   va_start(args,v);
2762+   icalproperty_add_parameters(impl, args);
2763+   va_end(args);
2764+   return (icalproperty*)impl;
2765+}
2766+
2767+/* DATE-MIN */
2768+icalproperty* icalproperty_new_datemin(struct icaltimetype v) {
2769+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DATEMIN_PROPERTY);   
2770+   icalproperty_set_datemin((icalproperty*)impl,v);
2771+   return (icalproperty*)impl;
2772+}
2773+
2774+void icalproperty_set_datemin(icalproperty* prop, struct icaltimetype v){
2775+   
2776+    icalerror_check_arg_rv( (prop!=0),"prop");
2777+    icalproperty_set_value(prop,icalvalue_new_datetime(v));
2778+}
2779+struct icaltimetype icalproperty_get_datemin(const icalproperty* prop){
2780+    icalerror_check_arg( (prop!=0),"prop");
2781+    return icalvalue_get_datetime(icalproperty_get_value(prop));
2782+}
2783+icalproperty* icalproperty_vanew_decreed(const char* v, ...){
2784+   va_list args;
2785+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DECREED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2786+
2787+   icalproperty_set_decreed((icalproperty*)impl,v);
2788+   va_start(args,v);
2789+   icalproperty_add_parameters(impl, args);
2790+   va_end(args);
2791+   return (icalproperty*)impl;
2792+}
2793+
2794+/* DECREED */
2795+icalproperty* icalproperty_new_decreed(const char* v) {
2796+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DECREED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2797+
2798+   icalproperty_set_decreed((icalproperty*)impl,v);
2799+   return (icalproperty*)impl;
2800+}
2801+
2802+void icalproperty_set_decreed(icalproperty* prop, const char* v){
2803+    icalerror_check_arg_rv( (v!=0),"v");
2804+
2805+    icalerror_check_arg_rv( (prop!=0),"prop");
2806+    icalproperty_set_value(prop,icalvalue_new_text(v));
2807+}
2808+const char* icalproperty_get_decreed(const icalproperty* prop){
2809+    icalerror_check_arg( (prop!=0),"prop");
2810+    return icalvalue_get_text(icalproperty_get_value(prop));
2811+}
2812+icalproperty* icalproperty_vanew_defaultcharset(const char* v, ...){
2813+   va_list args;
2814+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTCHARSET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2815+
2816+   icalproperty_set_defaultcharset((icalproperty*)impl,v);
2817+   va_start(args,v);
2818+   icalproperty_add_parameters(impl, args);
2819+   va_end(args);
2820+   return (icalproperty*)impl;
2821+}
2822+
2823+/* DEFAULT-CHARSET */
2824+icalproperty* icalproperty_new_defaultcharset(const char* v) {
2825+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTCHARSET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2826+
2827+   icalproperty_set_defaultcharset((icalproperty*)impl,v);
2828+   return (icalproperty*)impl;
2829+}
2830+
2831+void icalproperty_set_defaultcharset(icalproperty* prop, const char* v){
2832+    icalerror_check_arg_rv( (v!=0),"v");
2833+
2834+    icalerror_check_arg_rv( (prop!=0),"prop");
2835+    icalproperty_set_value(prop,icalvalue_new_text(v));
2836+}
2837+const char* icalproperty_get_defaultcharset(const icalproperty* prop){
2838+    icalerror_check_arg( (prop!=0),"prop");
2839+    return icalvalue_get_text(icalproperty_get_value(prop));
2840+}
2841+icalproperty* icalproperty_vanew_defaultlocale(const char* v, ...){
2842+   va_list args;
2843+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTLOCALE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2844+
2845+   icalproperty_set_defaultlocale((icalproperty*)impl,v);
2846+   va_start(args,v);
2847+   icalproperty_add_parameters(impl, args);
2848+   va_end(args);
2849+   return (icalproperty*)impl;
2850+}
2851+
2852+/* DEFAULT-LOCALE */
2853+icalproperty* icalproperty_new_defaultlocale(const char* v) {
2854+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTLOCALE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2855+
2856+   icalproperty_set_defaultlocale((icalproperty*)impl,v);
2857+   return (icalproperty*)impl;
2858+}
2859+
2860+void icalproperty_set_defaultlocale(icalproperty* prop, const char* v){
2861+    icalerror_check_arg_rv( (v!=0),"v");
2862+
2863+    icalerror_check_arg_rv( (prop!=0),"prop");
2864+    icalproperty_set_value(prop,icalvalue_new_text(v));
2865+}
2866+const char* icalproperty_get_defaultlocale(const icalproperty* prop){
2867+    icalerror_check_arg( (prop!=0),"prop");
2868+    return icalvalue_get_text(icalproperty_get_value(prop));
2869+}
2870+icalproperty* icalproperty_vanew_defaulttzid(const char* v, ...){
2871+   va_list args;
2872+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTTZID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2873+
2874+   icalproperty_set_defaulttzid((icalproperty*)impl,v);
2875+   va_start(args,v);
2876+   icalproperty_add_parameters(impl, args);
2877+   va_end(args);
2878+   return (icalproperty*)impl;
2879+}
2880+
2881+/* DEFAULT-TZID */
2882+icalproperty* icalproperty_new_defaulttzid(const char* v) {
2883+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTTZID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2884+
2885+   icalproperty_set_defaulttzid((icalproperty*)impl,v);
2886+   return (icalproperty*)impl;
2887+}
2888+
2889+void icalproperty_set_defaulttzid(icalproperty* prop, const char* v){
2890+    icalerror_check_arg_rv( (v!=0),"v");
2891+
2892+    icalerror_check_arg_rv( (prop!=0),"prop");
2893+    icalproperty_set_value(prop,icalvalue_new_text(v));
2894+}
2895+const char* icalproperty_get_defaulttzid(const icalproperty* prop){
2896+    icalerror_check_arg( (prop!=0),"prop");
2897+    return icalvalue_get_text(icalproperty_get_value(prop));
2898+}
2899+icalproperty* icalproperty_vanew_defaultvcars(const char* v, ...){
2900+   va_list args;
2901+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTVCARS_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2902+
2903+   icalproperty_set_defaultvcars((icalproperty*)impl,v);
2904+   va_start(args,v);
2905+   icalproperty_add_parameters(impl, args);
2906+   va_end(args);
2907+   return (icalproperty*)impl;
2908+}
2909+
2910+/* DEFAULT-VCARS */
2911+icalproperty* icalproperty_new_defaultvcars(const char* v) {
2912+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTVCARS_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2913+
2914+   icalproperty_set_defaultvcars((icalproperty*)impl,v);
2915+   return (icalproperty*)impl;
2916+}
2917+
2918+void icalproperty_set_defaultvcars(icalproperty* prop, const char* v){
2919+    icalerror_check_arg_rv( (v!=0),"v");
2920+
2921+    icalerror_check_arg_rv( (prop!=0),"prop");
2922+    icalproperty_set_value(prop,icalvalue_new_text(v));
2923+}
2924+const char* icalproperty_get_defaultvcars(const icalproperty* prop){
2925+    icalerror_check_arg( (prop!=0),"prop");
2926+    return icalvalue_get_text(icalproperty_get_value(prop));
2927+}
2928+icalproperty* icalproperty_vanew_deny(const char* v, ...){
2929+   va_list args;
2930+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DENY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2931+
2932+   icalproperty_set_deny((icalproperty*)impl,v);
2933+   va_start(args,v);
2934+   icalproperty_add_parameters(impl, args);
2935+   va_end(args);
2936+   return (icalproperty*)impl;
2937+}
2938+
2939+/* DENY */
2940+icalproperty* icalproperty_new_deny(const char* v) {
2941+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DENY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2942+
2943+   icalproperty_set_deny((icalproperty*)impl,v);
2944+   return (icalproperty*)impl;
2945+}
2946+
2947+void icalproperty_set_deny(icalproperty* prop, const char* v){
2948+    icalerror_check_arg_rv( (v!=0),"v");
2949+
2950+    icalerror_check_arg_rv( (prop!=0),"prop");
2951+    icalproperty_set_value(prop,icalvalue_new_text(v));
2952+}
2953+const char* icalproperty_get_deny(const icalproperty* prop){
2954+    icalerror_check_arg( (prop!=0),"prop");
2955+    return icalvalue_get_text(icalproperty_get_value(prop));
2956+}
2957+icalproperty* icalproperty_vanew_description(const char* v, ...){
2958+   va_list args;
2959+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DESCRIPTION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2960+
2961+   icalproperty_set_description((icalproperty*)impl,v);
2962+   va_start(args,v);
2963+   icalproperty_add_parameters(impl, args);
2964+   va_end(args);
2965+   return (icalproperty*)impl;
2966+}
2967+
2968+/* DESCRIPTION */
2969+icalproperty* icalproperty_new_description(const char* v) {
2970+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DESCRIPTION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
2971+
2972+   icalproperty_set_description((icalproperty*)impl,v);
2973+   return (icalproperty*)impl;
2974+}
2975+
2976+void icalproperty_set_description(icalproperty* prop, const char* v){
2977+    icalerror_check_arg_rv( (v!=0),"v");
2978+
2979+    icalerror_check_arg_rv( (prop!=0),"prop");
2980+    icalproperty_set_value(prop,icalvalue_new_text(v));
2981+}
2982+const char* icalproperty_get_description(const icalproperty* prop){
2983+    icalerror_check_arg( (prop!=0),"prop");
2984+    return icalvalue_get_text(icalproperty_get_value(prop));
2985+}
2986+icalproperty* icalproperty_vanew_dtend(struct icaltimetype v, ...){
2987+   va_list args;
2988+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTEND_PROPERTY);   
2989+   icalproperty_set_dtend((icalproperty*)impl,v);
2990+   va_start(args,v);
2991+   icalproperty_add_parameters(impl, args);
2992+   va_end(args);
2993+   return (icalproperty*)impl;
2994+}
2995+
2996+/* DTEND */
2997+icalproperty* icalproperty_new_dtend(struct icaltimetype v) {
2998+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTEND_PROPERTY);   
2999+   icalproperty_set_dtend((icalproperty*)impl,v);
3000+   return (icalproperty*)impl;
3001+}
3002+
3003+void icalproperty_set_dtend(icalproperty* prop, struct icaltimetype v){
3004+    icalvalue *value;
3005+   
3006+    icalerror_check_arg_rv( (prop!=0),"prop");
3007+    if (v.is_date)
3008+        value = icalvalue_new_date(v);
3009+    else
3010+        value = icalvalue_new_datetime(v);
3011+    icalproperty_set_value(prop,value);
3012+}
3013+struct icaltimetype icalproperty_get_dtend(const icalproperty* prop){
3014+    icalerror_check_arg( (prop!=0),"prop");
3015+    return icalvalue_get_datetime(icalproperty_get_value(prop));
3016+}
3017+icalproperty* icalproperty_vanew_dtstamp(struct icaltimetype v, ...){
3018+   va_list args;
3019+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTSTAMP_PROPERTY);   
3020+   icalproperty_set_dtstamp((icalproperty*)impl,v);
3021+   va_start(args,v);
3022+   icalproperty_add_parameters(impl, args);
3023+   va_end(args);
3024+   return (icalproperty*)impl;
3025+}
3026+
3027+/* DTSTAMP */
3028+icalproperty* icalproperty_new_dtstamp(struct icaltimetype v) {
3029+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTSTAMP_PROPERTY);   
3030+   icalproperty_set_dtstamp((icalproperty*)impl,v);
3031+   return (icalproperty*)impl;
3032+}
3033+
3034+void icalproperty_set_dtstamp(icalproperty* prop, struct icaltimetype v){
3035+   
3036+    icalerror_check_arg_rv( (prop!=0),"prop");
3037+    icalproperty_set_value(prop,icalvalue_new_datetime(v));
3038+}
3039+struct icaltimetype icalproperty_get_dtstamp(const icalproperty* prop){
3040+    icalerror_check_arg( (prop!=0),"prop");
3041+    return icalvalue_get_datetime(icalproperty_get_value(prop));
3042+}
3043+icalproperty* icalproperty_vanew_dtstart(struct icaltimetype v, ...){
3044+   va_list args;
3045+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTSTART_PROPERTY);   
3046+   icalproperty_set_dtstart((icalproperty*)impl,v);
3047+   va_start(args,v);
3048+   icalproperty_add_parameters(impl, args);
3049+   va_end(args);
3050+   return (icalproperty*)impl;
3051+}
3052+
3053+/* DTSTART */
3054+icalproperty* icalproperty_new_dtstart(struct icaltimetype v) {
3055+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTSTART_PROPERTY);   
3056+   icalproperty_set_dtstart((icalproperty*)impl,v);
3057+   return (icalproperty*)impl;
3058+}
3059+
3060+void icalproperty_set_dtstart(icalproperty* prop, struct icaltimetype v){
3061+    icalvalue *value;
3062+   
3063+    icalerror_check_arg_rv( (prop!=0),"prop");
3064+    if (v.is_date)
3065+        value = icalvalue_new_date(v);
3066+    else
3067+        value = icalvalue_new_datetime(v);
3068+    icalproperty_set_value(prop,value);
3069+}
3070+struct icaltimetype icalproperty_get_dtstart(const icalproperty* prop){
3071+    icalerror_check_arg( (prop!=0),"prop");
3072+    return icalvalue_get_datetime(icalproperty_get_value(prop));
3073+}
3074+icalproperty* icalproperty_vanew_due(struct icaltimetype v, ...){
3075+   va_list args;
3076+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DUE_PROPERTY);   
3077+   icalproperty_set_due((icalproperty*)impl,v);
3078+   va_start(args,v);
3079+   icalproperty_add_parameters(impl, args);
3080+   va_end(args);
3081+   return (icalproperty*)impl;
3082+}
3083+
3084+/* DUE */
3085+icalproperty* icalproperty_new_due(struct icaltimetype v) {
3086+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DUE_PROPERTY);   
3087+   icalproperty_set_due((icalproperty*)impl,v);
3088+   return (icalproperty*)impl;
3089+}
3090+
3091+void icalproperty_set_due(icalproperty* prop, struct icaltimetype v){
3092+    icalvalue *value;
3093+   
3094+    icalerror_check_arg_rv( (prop!=0),"prop");
3095+    if (v.is_date)
3096+        value = icalvalue_new_date(v);
3097+    else
3098+        value = icalvalue_new_datetime(v);
3099+    icalproperty_set_value(prop,value);
3100+}
3101+struct icaltimetype icalproperty_get_due(const icalproperty* prop){
3102+    icalerror_check_arg( (prop!=0),"prop");
3103+    return icalvalue_get_datetime(icalproperty_get_value(prop));
3104+}
3105+icalproperty* icalproperty_vanew_duration(struct icaldurationtype v, ...){
3106+   va_list args;
3107+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DURATION_PROPERTY);   
3108+   icalproperty_set_duration((icalproperty*)impl,v);
3109+   va_start(args,v);
3110+   icalproperty_add_parameters(impl, args);
3111+   va_end(args);
3112+   return (icalproperty*)impl;
3113+}
3114+
3115+/* DURATION */
3116+icalproperty* icalproperty_new_duration(struct icaldurationtype v) {
3117+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DURATION_PROPERTY);   
3118+   icalproperty_set_duration((icalproperty*)impl,v);
3119+   return (icalproperty*)impl;
3120+}
3121+
3122+void icalproperty_set_duration(icalproperty* prop, struct icaldurationtype v){
3123+   
3124+    icalerror_check_arg_rv( (prop!=0),"prop");
3125+    icalproperty_set_value(prop,icalvalue_new_duration(v));
3126+}
3127+struct icaldurationtype icalproperty_get_duration(const icalproperty* prop){
3128+    icalerror_check_arg( (prop!=0),"prop");
3129+    return icalvalue_get_duration(icalproperty_get_value(prop));
3130+}
3131+icalproperty* icalproperty_vanew_exdate(struct icaltimetype v, ...){
3132+   va_list args;
3133+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXDATE_PROPERTY);   
3134+   icalproperty_set_exdate((icalproperty*)impl,v);
3135+   va_start(args,v);
3136+   icalproperty_add_parameters(impl, args);
3137+   va_end(args);
3138+   return (icalproperty*)impl;
3139+}
3140+
3141+/* EXDATE */
3142+icalproperty* icalproperty_new_exdate(struct icaltimetype v) {
3143+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXDATE_PROPERTY);   
3144+   icalproperty_set_exdate((icalproperty*)impl,v);
3145+   return (icalproperty*)impl;
3146+}
3147+
3148+void icalproperty_set_exdate(icalproperty* prop, struct icaltimetype v){
3149+    icalvalue *value;
3150+   
3151+    icalerror_check_arg_rv( (prop!=0),"prop");
3152+    if (v.is_date)
3153+        value = icalvalue_new_date(v);
3154+    else
3155+        value = icalvalue_new_datetime(v);
3156+    icalproperty_set_value(prop,value);
3157+}
3158+struct icaltimetype icalproperty_get_exdate(const icalproperty* prop){
3159+       icalerror_check_arg( (prop!=0),"prop");
3160+#ifndef _MSC_VER
3161+        /*
3162+        * Code by dirk@objectpark.net:
3163+        * Set the time zone manually. I am really puzzled that
3164+        * it doesnot work automatically like in the other functions
3165+        * like icalproperty_get_dtstart().
3166+        */
3167+       struct icaltimetype itt =
3168+               icalvalue_get_datetime(icalproperty_get_value(prop));
3169+       icalparameter* param = icalproperty_get_first_parameter(prop,
3170+                                                               ICAL_TZID_PARAMETER);
3171+       if (param) {
3172+               const icaltimezone *zone =
3173+                       icaltimezone_get_builtin_timezone(icalparameter_get_tzid(param));
3174+               icaltime_set_timezone(&itt, zone);
3175+        }
3176+       return itt;
3177+#else
3178+    return icalvalue_get_datetime(icalproperty_get_value(prop));
3179+#endif
3180+}
3181+icalproperty* icalproperty_vanew_expand(int v, ...){
3182+   va_list args;
3183+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXPAND_PROPERTY);   
3184+   icalproperty_set_expand((icalproperty*)impl,v);
3185+   va_start(args,v);
3186+   icalproperty_add_parameters(impl, args);
3187+   va_end(args);
3188+   return (icalproperty*)impl;
3189+}
3190+
3191+/* EXPAND */
3192+icalproperty* icalproperty_new_expand(int v) {
3193+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXPAND_PROPERTY);   
3194+   icalproperty_set_expand((icalproperty*)impl,v);
3195+   return (icalproperty*)impl;
3196+}
3197+
3198+void icalproperty_set_expand(icalproperty* prop, int v){
3199+   
3200+    icalerror_check_arg_rv( (prop!=0),"prop");
3201+    icalproperty_set_value(prop,icalvalue_new_integer(v));
3202+}
3203+int icalproperty_get_expand(const icalproperty* prop){
3204+    icalerror_check_arg( (prop!=0),"prop");
3205+    return icalvalue_get_integer(icalproperty_get_value(prop));
3206+}
3207+icalproperty* icalproperty_vanew_exrule(struct icalrecurrencetype v, ...){
3208+   va_list args;
3209+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXRULE_PROPERTY);   
3210+   icalproperty_set_exrule((icalproperty*)impl,v);
3211+   va_start(args,v);
3212+   icalproperty_add_parameters(impl, args);
3213+   va_end(args);
3214+   return (icalproperty*)impl;
3215+}
3216+
3217+/* EXRULE */
3218+icalproperty* icalproperty_new_exrule(struct icalrecurrencetype v) {
3219+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXRULE_PROPERTY);   
3220+   icalproperty_set_exrule((icalproperty*)impl,v);
3221+   return (icalproperty*)impl;
3222+}
3223+
3224+void icalproperty_set_exrule(icalproperty* prop, struct icalrecurrencetype v){
3225+   
3226+    icalerror_check_arg_rv( (prop!=0),"prop");
3227+    icalproperty_set_value(prop,icalvalue_new_recur(v));
3228+}
3229+struct icalrecurrencetype icalproperty_get_exrule(const icalproperty* prop){
3230+    icalerror_check_arg( (prop!=0),"prop");
3231+    return icalvalue_get_recur(icalproperty_get_value(prop));
3232+}
3233+icalproperty* icalproperty_vanew_freebusy(struct icalperiodtype v, ...){
3234+   va_list args;
3235+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_FREEBUSY_PROPERTY);   
3236+   icalproperty_set_freebusy((icalproperty*)impl,v);
3237+   va_start(args,v);
3238+   icalproperty_add_parameters(impl, args);
3239+   va_end(args);
3240+   return (icalproperty*)impl;
3241+}
3242+
3243+/* FREEBUSY */
3244+icalproperty* icalproperty_new_freebusy(struct icalperiodtype v) {
3245+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_FREEBUSY_PROPERTY);   
3246+   icalproperty_set_freebusy((icalproperty*)impl,v);
3247+   return (icalproperty*)impl;
3248+}
3249+
3250+void icalproperty_set_freebusy(icalproperty* prop, struct icalperiodtype v){
3251+   
3252+    icalerror_check_arg_rv( (prop!=0),"prop");
3253+    icalproperty_set_value(prop,icalvalue_new_period(v));
3254+}
3255+struct icalperiodtype icalproperty_get_freebusy(const icalproperty* prop){
3256+    icalerror_check_arg( (prop!=0),"prop");
3257+    return icalvalue_get_period(icalproperty_get_value(prop));
3258+}
3259+icalproperty* icalproperty_vanew_geo(struct icalgeotype v, ...){
3260+   va_list args;
3261+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_GEO_PROPERTY);   
3262+   icalproperty_set_geo((icalproperty*)impl,v);
3263+   va_start(args,v);
3264+   icalproperty_add_parameters(impl, args);
3265+   va_end(args);
3266+   return (icalproperty*)impl;
3267+}
3268+
3269+/* GEO */
3270+icalproperty* icalproperty_new_geo(struct icalgeotype v) {
3271+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_GEO_PROPERTY);   
3272+   icalproperty_set_geo((icalproperty*)impl,v);
3273+   return (icalproperty*)impl;
3274+}
3275+
3276+void icalproperty_set_geo(icalproperty* prop, struct icalgeotype v){
3277+   
3278+    icalerror_check_arg_rv( (prop!=0),"prop");
3279+    icalproperty_set_value(prop,icalvalue_new_geo(v));
3280+}
3281+struct icalgeotype icalproperty_get_geo(const icalproperty* prop){
3282+    icalerror_check_arg( (prop!=0),"prop");
3283+    return icalvalue_get_geo(icalproperty_get_value(prop));
3284+}
3285+icalproperty* icalproperty_vanew_grant(const char* v, ...){
3286+   va_list args;
3287+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_GRANT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3288+
3289+   icalproperty_set_grant((icalproperty*)impl,v);
3290+   va_start(args,v);
3291+   icalproperty_add_parameters(impl, args);
3292+   va_end(args);
3293+   return (icalproperty*)impl;
3294+}
3295+
3296+/* GRANT */
3297+icalproperty* icalproperty_new_grant(const char* v) {
3298+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_GRANT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3299+
3300+   icalproperty_set_grant((icalproperty*)impl,v);
3301+   return (icalproperty*)impl;
3302+}
3303+
3304+void icalproperty_set_grant(icalproperty* prop, const char* v){
3305+    icalerror_check_arg_rv( (v!=0),"v");
3306+
3307+    icalerror_check_arg_rv( (prop!=0),"prop");
3308+    icalproperty_set_value(prop,icalvalue_new_text(v));
3309+}
3310+const char* icalproperty_get_grant(const icalproperty* prop){
3311+    icalerror_check_arg( (prop!=0),"prop");
3312+    return icalvalue_get_text(icalproperty_get_value(prop));
3313+}
3314+icalproperty* icalproperty_vanew_itipversion(const char* v, ...){
3315+   va_list args;
3316+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ITIPVERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3317+
3318+   icalproperty_set_itipversion((icalproperty*)impl,v);
3319+   va_start(args,v);
3320+   icalproperty_add_parameters(impl, args);
3321+   va_end(args);
3322+   return (icalproperty*)impl;
3323+}
3324+
3325+/* ITIP-VERSION */
3326+icalproperty* icalproperty_new_itipversion(const char* v) {
3327+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ITIPVERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3328+
3329+   icalproperty_set_itipversion((icalproperty*)impl,v);
3330+   return (icalproperty*)impl;
3331+}
3332+
3333+void icalproperty_set_itipversion(icalproperty* prop, const char* v){
3334+    icalerror_check_arg_rv( (v!=0),"v");
3335+
3336+    icalerror_check_arg_rv( (prop!=0),"prop");
3337+    icalproperty_set_value(prop,icalvalue_new_text(v));
3338+}
3339+const char* icalproperty_get_itipversion(const icalproperty* prop){
3340+    icalerror_check_arg( (prop!=0),"prop");
3341+    return icalvalue_get_text(icalproperty_get_value(prop));
3342+}
3343+icalproperty* icalproperty_vanew_lastmodified(struct icaltimetype v, ...){
3344+   va_list args;
3345+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_LASTMODIFIED_PROPERTY);   
3346+   icalproperty_set_lastmodified((icalproperty*)impl,v);
3347+   va_start(args,v);
3348+   icalproperty_add_parameters(impl, args);
3349+   va_end(args);
3350+   return (icalproperty*)impl;
3351+}
3352+
3353+/* LAST-MODIFIED */
3354+icalproperty* icalproperty_new_lastmodified(struct icaltimetype v) {
3355+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_LASTMODIFIED_PROPERTY);   
3356+   icalproperty_set_lastmodified((icalproperty*)impl,v);
3357+   return (icalproperty*)impl;
3358+}
3359+
3360+void icalproperty_set_lastmodified(icalproperty* prop, struct icaltimetype v){
3361+   
3362+    icalerror_check_arg_rv( (prop!=0),"prop");
3363+    icalproperty_set_value(prop,icalvalue_new_datetime(v));
3364+}
3365+struct icaltimetype icalproperty_get_lastmodified(const icalproperty* prop){
3366+    icalerror_check_arg( (prop!=0),"prop");
3367+    return icalvalue_get_datetime(icalproperty_get_value(prop));
3368+}
3369+icalproperty* icalproperty_vanew_location(const char* v, ...){
3370+   va_list args;
3371+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_LOCATION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3372+
3373+   icalproperty_set_location((icalproperty*)impl,v);
3374+   va_start(args,v);
3375+   icalproperty_add_parameters(impl, args);
3376+   va_end(args);
3377+   return (icalproperty*)impl;
3378+}
3379+
3380+/* LOCATION */
3381+icalproperty* icalproperty_new_location(const char* v) {
3382+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_LOCATION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3383+
3384+   icalproperty_set_location((icalproperty*)impl,v);
3385+   return (icalproperty*)impl;
3386+}
3387+
3388+void icalproperty_set_location(icalproperty* prop, const char* v){
3389+    icalerror_check_arg_rv( (v!=0),"v");
3390+
3391+    icalerror_check_arg_rv( (prop!=0),"prop");
3392+    icalproperty_set_value(prop,icalvalue_new_text(v));
3393+}
3394+const char* icalproperty_get_location(const icalproperty* prop){
3395+    icalerror_check_arg( (prop!=0),"prop");
3396+    return icalvalue_get_text(icalproperty_get_value(prop));
3397+}
3398+icalproperty* icalproperty_vanew_maxcomponentsize(int v, ...){
3399+   va_list args;
3400+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXCOMPONENTSIZE_PROPERTY);   
3401+   icalproperty_set_maxcomponentsize((icalproperty*)impl,v);
3402+   va_start(args,v);
3403+   icalproperty_add_parameters(impl, args);
3404+   va_end(args);
3405+   return (icalproperty*)impl;
3406+}
3407+
3408+/* MAX-COMPONENT-SIZE */
3409+icalproperty* icalproperty_new_maxcomponentsize(int v) {
3410+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXCOMPONENTSIZE_PROPERTY);   
3411+   icalproperty_set_maxcomponentsize((icalproperty*)impl,v);
3412+   return (icalproperty*)impl;
3413+}
3414+
3415+void icalproperty_set_maxcomponentsize(icalproperty* prop, int v){
3416+   
3417+    icalerror_check_arg_rv( (prop!=0),"prop");
3418+    icalproperty_set_value(prop,icalvalue_new_integer(v));
3419+}
3420+int icalproperty_get_maxcomponentsize(const icalproperty* prop){
3421+    icalerror_check_arg( (prop!=0),"prop");
3422+    return icalvalue_get_integer(icalproperty_get_value(prop));
3423+}
3424+icalproperty* icalproperty_vanew_maxdate(struct icaltimetype v, ...){
3425+   va_list args;
3426+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXDATE_PROPERTY);   
3427+   icalproperty_set_maxdate((icalproperty*)impl,v);
3428+   va_start(args,v);
3429+   icalproperty_add_parameters(impl, args);
3430+   va_end(args);
3431+   return (icalproperty*)impl;
3432+}
3433+
3434+/* MAXDATE */
3435+icalproperty* icalproperty_new_maxdate(struct icaltimetype v) {
3436+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXDATE_PROPERTY);   
3437+   icalproperty_set_maxdate((icalproperty*)impl,v);
3438+   return (icalproperty*)impl;
3439+}
3440+
3441+void icalproperty_set_maxdate(icalproperty* prop, struct icaltimetype v){
3442+   
3443+    icalerror_check_arg_rv( (prop!=0),"prop");
3444+    icalproperty_set_value(prop,icalvalue_new_datetime(v));
3445+}
3446+struct icaltimetype icalproperty_get_maxdate(const icalproperty* prop){
3447+    icalerror_check_arg( (prop!=0),"prop");
3448+    return icalvalue_get_datetime(icalproperty_get_value(prop));
3449+}
3450+icalproperty* icalproperty_vanew_maxresults(int v, ...){
3451+   va_list args;
3452+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXRESULTS_PROPERTY);   
3453+   icalproperty_set_maxresults((icalproperty*)impl,v);
3454+   va_start(args,v);
3455+   icalproperty_add_parameters(impl, args);
3456+   va_end(args);
3457+   return (icalproperty*)impl;
3458+}
3459+
3460+/* MAXRESULTS */
3461+icalproperty* icalproperty_new_maxresults(int v) {
3462+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXRESULTS_PROPERTY);   
3463+   icalproperty_set_maxresults((icalproperty*)impl,v);
3464+   return (icalproperty*)impl;
3465+}
3466+
3467+void icalproperty_set_maxresults(icalproperty* prop, int v){
3468+   
3469+    icalerror_check_arg_rv( (prop!=0),"prop");
3470+    icalproperty_set_value(prop,icalvalue_new_integer(v));
3471+}
3472+int icalproperty_get_maxresults(const icalproperty* prop){
3473+    icalerror_check_arg( (prop!=0),"prop");
3474+    return icalvalue_get_integer(icalproperty_get_value(prop));
3475+}
3476+icalproperty* icalproperty_vanew_maxresultssize(int v, ...){
3477+   va_list args;
3478+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXRESULTSSIZE_PROPERTY);   
3479+   icalproperty_set_maxresultssize((icalproperty*)impl,v);
3480+   va_start(args,v);
3481+   icalproperty_add_parameters(impl, args);
3482+   va_end(args);
3483+   return (icalproperty*)impl;
3484+}
3485+
3486+/* MAXRESULTSSIZE */
3487+icalproperty* icalproperty_new_maxresultssize(int v) {
3488+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXRESULTSSIZE_PROPERTY);   
3489+   icalproperty_set_maxresultssize((icalproperty*)impl,v);
3490+   return (icalproperty*)impl;
3491+}
3492+
3493+void icalproperty_set_maxresultssize(icalproperty* prop, int v){
3494+   
3495+    icalerror_check_arg_rv( (prop!=0),"prop");
3496+    icalproperty_set_value(prop,icalvalue_new_integer(v));
3497+}
3498+int icalproperty_get_maxresultssize(const icalproperty* prop){
3499+    icalerror_check_arg( (prop!=0),"prop");
3500+    return icalvalue_get_integer(icalproperty_get_value(prop));
3501+}
3502+icalproperty* icalproperty_vanew_method(enum icalproperty_method v, ...){
3503+   va_list args;
3504+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_METHOD_PROPERTY);   
3505+   icalproperty_set_method((icalproperty*)impl,v);
3506+   va_start(args,v);
3507+   icalproperty_add_parameters(impl, args);
3508+   va_end(args);
3509+   return (icalproperty*)impl;
3510+}
3511+
3512+/* METHOD */
3513+icalproperty* icalproperty_new_method(enum icalproperty_method v) {
3514+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_METHOD_PROPERTY);   
3515+   icalproperty_set_method((icalproperty*)impl,v);
3516+   return (icalproperty*)impl;
3517+}
3518+
3519+void icalproperty_set_method(icalproperty* prop, enum icalproperty_method v){
3520+   
3521+    icalerror_check_arg_rv( (prop!=0),"prop");
3522+    icalproperty_set_value(prop,icalvalue_new_method(v));
3523+}
3524+enum icalproperty_method icalproperty_get_method(const icalproperty* prop){
3525+    icalerror_check_arg( (prop!=0),"prop");
3526+    return icalvalue_get_method(icalproperty_get_value(prop));
3527+}
3528+icalproperty* icalproperty_vanew_mindate(struct icaltimetype v, ...){
3529+   va_list args;
3530+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MINDATE_PROPERTY);   
3531+   icalproperty_set_mindate((icalproperty*)impl,v);
3532+   va_start(args,v);
3533+   icalproperty_add_parameters(impl, args);
3534+   va_end(args);
3535+   return (icalproperty*)impl;
3536+}
3537+
3538+/* MINDATE */
3539+icalproperty* icalproperty_new_mindate(struct icaltimetype v) {
3540+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MINDATE_PROPERTY);   
3541+   icalproperty_set_mindate((icalproperty*)impl,v);
3542+   return (icalproperty*)impl;
3543+}
3544+
3545+void icalproperty_set_mindate(icalproperty* prop, struct icaltimetype v){
3546+   
3547+    icalerror_check_arg_rv( (prop!=0),"prop");
3548+    icalproperty_set_value(prop,icalvalue_new_datetime(v));
3549+}
3550+struct icaltimetype icalproperty_get_mindate(const icalproperty* prop){
3551+    icalerror_check_arg( (prop!=0),"prop");
3552+    return icalvalue_get_datetime(icalproperty_get_value(prop));
3553+}
3554+icalproperty* icalproperty_vanew_multipart(const char* v, ...){
3555+   va_list args;
3556+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MULTIPART_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3557+
3558+   icalproperty_set_multipart((icalproperty*)impl,v);
3559+   va_start(args,v);
3560+   icalproperty_add_parameters(impl, args);
3561+   va_end(args);
3562+   return (icalproperty*)impl;
3563+}
3564+
3565+/* MULTIPART */
3566+icalproperty* icalproperty_new_multipart(const char* v) {
3567+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MULTIPART_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3568+
3569+   icalproperty_set_multipart((icalproperty*)impl,v);
3570+   return (icalproperty*)impl;
3571+}
3572+
3573+void icalproperty_set_multipart(icalproperty* prop, const char* v){
3574+    icalerror_check_arg_rv( (v!=0),"v");
3575+
3576+    icalerror_check_arg_rv( (prop!=0),"prop");
3577+    icalproperty_set_value(prop,icalvalue_new_text(v));
3578+}
3579+const char* icalproperty_get_multipart(const icalproperty* prop){
3580+    icalerror_check_arg( (prop!=0),"prop");
3581+    return icalvalue_get_text(icalproperty_get_value(prop));
3582+}
3583+icalproperty* icalproperty_vanew_name(const char* v, ...){
3584+   va_list args;
3585+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_NAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3586+
3587+   icalproperty_set_name((icalproperty*)impl,v);
3588+   va_start(args,v);
3589+   icalproperty_add_parameters(impl, args);
3590+   va_end(args);
3591+   return (icalproperty*)impl;
3592+}
3593+
3594+/* NAME */
3595+icalproperty* icalproperty_new_name(const char* v) {
3596+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_NAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3597+
3598+   icalproperty_set_name((icalproperty*)impl,v);
3599+   return (icalproperty*)impl;
3600+}
3601+
3602+void icalproperty_set_name(icalproperty* prop, const char* v){
3603+    icalerror_check_arg_rv( (v!=0),"v");
3604+
3605+    icalerror_check_arg_rv( (prop!=0),"prop");
3606+    icalproperty_set_value(prop,icalvalue_new_text(v));
3607+}
3608+const char* icalproperty_get_name(const icalproperty* prop){
3609+    icalerror_check_arg( (prop!=0),"prop");
3610+    return icalvalue_get_text(icalproperty_get_value(prop));
3611+}
3612+icalproperty* icalproperty_vanew_organizer(const char* v, ...){
3613+   va_list args;
3614+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ORGANIZER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3615+
3616+   icalproperty_set_organizer((icalproperty*)impl,v);
3617+   va_start(args,v);
3618+   icalproperty_add_parameters(impl, args);
3619+   va_end(args);
3620+   return (icalproperty*)impl;
3621+}
3622+
3623+/* ORGANIZER */
3624+icalproperty* icalproperty_new_organizer(const char* v) {
3625+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ORGANIZER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3626+
3627+   icalproperty_set_organizer((icalproperty*)impl,v);
3628+   return (icalproperty*)impl;
3629+}
3630+
3631+void icalproperty_set_organizer(icalproperty* prop, const char* v){
3632+    icalerror_check_arg_rv( (v!=0),"v");
3633+
3634+    icalerror_check_arg_rv( (prop!=0),"prop");
3635+    icalproperty_set_value(prop,icalvalue_new_caladdress(v));
3636+}
3637+const char* icalproperty_get_organizer(const icalproperty* prop){
3638+    icalerror_check_arg( (prop!=0),"prop");
3639+    return icalvalue_get_caladdress(icalproperty_get_value(prop));
3640+}
3641+icalproperty* icalproperty_vanew_owner(const char* v, ...){
3642+   va_list args;
3643+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_OWNER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3644+
3645+   icalproperty_set_owner((icalproperty*)impl,v);
3646+   va_start(args,v);
3647+   icalproperty_add_parameters(impl, args);
3648+   va_end(args);
3649+   return (icalproperty*)impl;
3650+}
3651+
3652+/* OWNER */
3653+icalproperty* icalproperty_new_owner(const char* v) {
3654+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_OWNER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3655+
3656+   icalproperty_set_owner((icalproperty*)impl,v);
3657+   return (icalproperty*)impl;
3658+}
3659+
3660+void icalproperty_set_owner(icalproperty* prop, const char* v){
3661+    icalerror_check_arg_rv( (v!=0),"v");
3662+
3663+    icalerror_check_arg_rv( (prop!=0),"prop");
3664+    icalproperty_set_value(prop,icalvalue_new_text(v));
3665+}
3666+const char* icalproperty_get_owner(const icalproperty* prop){
3667+    icalerror_check_arg( (prop!=0),"prop");
3668+    return icalvalue_get_text(icalproperty_get_value(prop));
3669+}
3670+icalproperty* icalproperty_vanew_percentcomplete(int v, ...){
3671+   va_list args;
3672+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PERCENTCOMPLETE_PROPERTY);   
3673+   icalproperty_set_percentcomplete((icalproperty*)impl,v);
3674+   va_start(args,v);
3675+   icalproperty_add_parameters(impl, args);
3676+   va_end(args);
3677+   return (icalproperty*)impl;
3678+}
3679+
3680+/* PERCENT-COMPLETE */
3681+icalproperty* icalproperty_new_percentcomplete(int v) {
3682+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PERCENTCOMPLETE_PROPERTY);   
3683+   icalproperty_set_percentcomplete((icalproperty*)impl,v);
3684+   return (icalproperty*)impl;
3685+}
3686+
3687+void icalproperty_set_percentcomplete(icalproperty* prop, int v){
3688+   
3689+    icalerror_check_arg_rv( (prop!=0),"prop");
3690+    icalproperty_set_value(prop,icalvalue_new_integer(v));
3691+}
3692+int icalproperty_get_percentcomplete(const icalproperty* prop){
3693+    icalerror_check_arg( (prop!=0),"prop");
3694+    return icalvalue_get_integer(icalproperty_get_value(prop));
3695+}
3696+icalproperty* icalproperty_vanew_permission(const char* v, ...){
3697+   va_list args;
3698+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PERMISSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3699+
3700+   icalproperty_set_permission((icalproperty*)impl,v);
3701+   va_start(args,v);
3702+   icalproperty_add_parameters(impl, args);
3703+   va_end(args);
3704+   return (icalproperty*)impl;
3705+}
3706+
3707+/* PERMISSION */
3708+icalproperty* icalproperty_new_permission(const char* v) {
3709+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PERMISSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3710+
3711+   icalproperty_set_permission((icalproperty*)impl,v);
3712+   return (icalproperty*)impl;
3713+}
3714+
3715+void icalproperty_set_permission(icalproperty* prop, const char* v){
3716+    icalerror_check_arg_rv( (v!=0),"v");
3717+
3718+    icalerror_check_arg_rv( (prop!=0),"prop");
3719+    icalproperty_set_value(prop,icalvalue_new_text(v));
3720+}
3721+const char* icalproperty_get_permission(const icalproperty* prop){
3722+    icalerror_check_arg( (prop!=0),"prop");
3723+    return icalvalue_get_text(icalproperty_get_value(prop));
3724+}
3725+icalproperty* icalproperty_vanew_priority(int v, ...){
3726+   va_list args;
3727+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PRIORITY_PROPERTY);   
3728+   icalproperty_set_priority((icalproperty*)impl,v);
3729+   va_start(args,v);
3730+   icalproperty_add_parameters(impl, args);
3731+   va_end(args);
3732+   return (icalproperty*)impl;
3733+}
3734+
3735+/* PRIORITY */
3736+icalproperty* icalproperty_new_priority(int v) {
3737+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PRIORITY_PROPERTY);   
3738+   icalproperty_set_priority((icalproperty*)impl,v);
3739+   return (icalproperty*)impl;
3740+}
3741+
3742+void icalproperty_set_priority(icalproperty* prop, int v){
3743+   
3744+    icalerror_check_arg_rv( (prop!=0),"prop");
3745+    icalproperty_set_value(prop,icalvalue_new_integer(v));
3746+}
3747+int icalproperty_get_priority(const icalproperty* prop){
3748+    icalerror_check_arg( (prop!=0),"prop");
3749+    return icalvalue_get_integer(icalproperty_get_value(prop));
3750+}
3751+icalproperty* icalproperty_vanew_prodid(const char* v, ...){
3752+   va_list args;
3753+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PRODID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3754+
3755+   icalproperty_set_prodid((icalproperty*)impl,v);
3756+   va_start(args,v);
3757+   icalproperty_add_parameters(impl, args);
3758+   va_end(args);
3759+   return (icalproperty*)impl;
3760+}
3761+
3762+/* PRODID */
3763+icalproperty* icalproperty_new_prodid(const char* v) {
3764+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PRODID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3765+
3766+   icalproperty_set_prodid((icalproperty*)impl,v);
3767+   return (icalproperty*)impl;
3768+}
3769+
3770+void icalproperty_set_prodid(icalproperty* prop, const char* v){
3771+    icalerror_check_arg_rv( (v!=0),"v");
3772+
3773+    icalerror_check_arg_rv( (prop!=0),"prop");
3774+    icalproperty_set_value(prop,icalvalue_new_text(v));
3775+}
3776+const char* icalproperty_get_prodid(const icalproperty* prop){
3777+    icalerror_check_arg( (prop!=0),"prop");
3778+    return icalvalue_get_text(icalproperty_get_value(prop));
3779+}
3780+icalproperty* icalproperty_vanew_query(const char* v, ...){
3781+   va_list args;
3782+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3783+
3784+   icalproperty_set_query((icalproperty*)impl,v);
3785+   va_start(args,v);
3786+   icalproperty_add_parameters(impl, args);
3787+   va_end(args);
3788+   return (icalproperty*)impl;
3789+}
3790+
3791+/* QUERY */
3792+icalproperty* icalproperty_new_query(const char* v) {
3793+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3794+
3795+   icalproperty_set_query((icalproperty*)impl,v);
3796+   return (icalproperty*)impl;
3797+}
3798+
3799+void icalproperty_set_query(icalproperty* prop, const char* v){
3800+    icalerror_check_arg_rv( (v!=0),"v");
3801+
3802+    icalerror_check_arg_rv( (prop!=0),"prop");
3803+    icalproperty_set_value(prop,icalvalue_new_query(v));
3804+}
3805+const char* icalproperty_get_query(const icalproperty* prop){
3806+    icalerror_check_arg( (prop!=0),"prop");
3807+    return icalvalue_get_query(icalproperty_get_value(prop));
3808+}
3809+icalproperty* icalproperty_vanew_querylevel(enum icalproperty_querylevel v, ...){
3810+   va_list args;
3811+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYLEVEL_PROPERTY);   
3812+   icalproperty_set_querylevel((icalproperty*)impl,v);
3813+   va_start(args,v);
3814+   icalproperty_add_parameters(impl, args);
3815+   va_end(args);
3816+   return (icalproperty*)impl;
3817+}
3818+
3819+/* QUERY-LEVEL */
3820+icalproperty* icalproperty_new_querylevel(enum icalproperty_querylevel v) {
3821+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYLEVEL_PROPERTY);   
3822+   icalproperty_set_querylevel((icalproperty*)impl,v);
3823+   return (icalproperty*)impl;
3824+}
3825+
3826+void icalproperty_set_querylevel(icalproperty* prop, enum icalproperty_querylevel v){
3827+   
3828+    icalerror_check_arg_rv( (prop!=0),"prop");
3829+    icalproperty_set_value(prop,icalvalue_new_querylevel(v));
3830+}
3831+enum icalproperty_querylevel icalproperty_get_querylevel(const icalproperty* prop){
3832+    icalerror_check_arg( (prop!=0),"prop");
3833+    return icalvalue_get_querylevel(icalproperty_get_value(prop));
3834+}
3835+icalproperty* icalproperty_vanew_queryid(const char* v, ...){
3836+   va_list args;
3837+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3838+
3839+   icalproperty_set_queryid((icalproperty*)impl,v);
3840+   va_start(args,v);
3841+   icalproperty_add_parameters(impl, args);
3842+   va_end(args);
3843+   return (icalproperty*)impl;
3844+}
3845+
3846+/* QUERYID */
3847+icalproperty* icalproperty_new_queryid(const char* v) {
3848+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3849+
3850+   icalproperty_set_queryid((icalproperty*)impl,v);
3851+   return (icalproperty*)impl;
3852+}
3853+
3854+void icalproperty_set_queryid(icalproperty* prop, const char* v){
3855+    icalerror_check_arg_rv( (v!=0),"v");
3856+
3857+    icalerror_check_arg_rv( (prop!=0),"prop");
3858+    icalproperty_set_value(prop,icalvalue_new_text(v));
3859+}
3860+const char* icalproperty_get_queryid(const icalproperty* prop){
3861+    icalerror_check_arg( (prop!=0),"prop");
3862+    return icalvalue_get_text(icalproperty_get_value(prop));
3863+}
3864+icalproperty* icalproperty_vanew_queryname(const char* v, ...){
3865+   va_list args;
3866+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYNAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3867+
3868+   icalproperty_set_queryname((icalproperty*)impl,v);
3869+   va_start(args,v);
3870+   icalproperty_add_parameters(impl, args);
3871+   va_end(args);
3872+   return (icalproperty*)impl;
3873+}
3874+
3875+/* QUERYNAME */
3876+icalproperty* icalproperty_new_queryname(const char* v) {
3877+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYNAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3878+
3879+   icalproperty_set_queryname((icalproperty*)impl,v);
3880+   return (icalproperty*)impl;
3881+}
3882+
3883+void icalproperty_set_queryname(icalproperty* prop, const char* v){
3884+    icalerror_check_arg_rv( (v!=0),"v");
3885+
3886+    icalerror_check_arg_rv( (prop!=0),"prop");
3887+    icalproperty_set_value(prop,icalvalue_new_text(v));
3888+}
3889+const char* icalproperty_get_queryname(const icalproperty* prop){
3890+    icalerror_check_arg( (prop!=0),"prop");
3891+    return icalvalue_get_text(icalproperty_get_value(prop));
3892+}
3893+icalproperty* icalproperty_vanew_rdate(struct icaldatetimeperiodtype v, ...){
3894+   va_list args;
3895+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RDATE_PROPERTY);   
3896+   icalproperty_set_rdate((icalproperty*)impl,v);
3897+   va_start(args,v);
3898+   icalproperty_add_parameters(impl, args);
3899+   va_end(args);
3900+   return (icalproperty*)impl;
3901+}
3902+
3903+/* RDATE */
3904+icalproperty* icalproperty_new_rdate(struct icaldatetimeperiodtype v) {
3905+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RDATE_PROPERTY);   
3906+   icalproperty_set_rdate((icalproperty*)impl,v);
3907+   return (icalproperty*)impl;
3908+}
3909+
3910+void icalproperty_set_rdate(icalproperty* prop, struct icaldatetimeperiodtype v){
3911+   
3912+    icalerror_check_arg_rv( (prop!=0),"prop");
3913+    icalproperty_set_value(prop,icalvalue_new_datetimeperiod(v));
3914+}
3915+struct icaldatetimeperiodtype icalproperty_get_rdate(const icalproperty* prop){
3916+    icalerror_check_arg( (prop!=0),"prop");
3917+    return icalvalue_get_datetimeperiod(icalproperty_get_value(prop));
3918+}
3919+icalproperty* icalproperty_vanew_recuraccepted(const char* v, ...){
3920+   va_list args;
3921+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURACCEPTED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3922+
3923+   icalproperty_set_recuraccepted((icalproperty*)impl,v);
3924+   va_start(args,v);
3925+   icalproperty_add_parameters(impl, args);
3926+   va_end(args);
3927+   return (icalproperty*)impl;
3928+}
3929+
3930+/* RECUR-ACCEPTED */
3931+icalproperty* icalproperty_new_recuraccepted(const char* v) {
3932+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURACCEPTED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3933+
3934+   icalproperty_set_recuraccepted((icalproperty*)impl,v);
3935+   return (icalproperty*)impl;
3936+}
3937+
3938+void icalproperty_set_recuraccepted(icalproperty* prop, const char* v){
3939+    icalerror_check_arg_rv( (v!=0),"v");
3940+
3941+    icalerror_check_arg_rv( (prop!=0),"prop");
3942+    icalproperty_set_value(prop,icalvalue_new_text(v));
3943+}
3944+const char* icalproperty_get_recuraccepted(const icalproperty* prop){
3945+    icalerror_check_arg( (prop!=0),"prop");
3946+    return icalvalue_get_text(icalproperty_get_value(prop));
3947+}
3948+icalproperty* icalproperty_vanew_recurexpand(const char* v, ...){
3949+   va_list args;
3950+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECUREXPAND_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3951+
3952+   icalproperty_set_recurexpand((icalproperty*)impl,v);
3953+   va_start(args,v);
3954+   icalproperty_add_parameters(impl, args);
3955+   va_end(args);
3956+   return (icalproperty*)impl;
3957+}
3958+
3959+/* RECUR-EXPAND */
3960+icalproperty* icalproperty_new_recurexpand(const char* v) {
3961+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECUREXPAND_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3962+
3963+   icalproperty_set_recurexpand((icalproperty*)impl,v);
3964+   return (icalproperty*)impl;
3965+}
3966+
3967+void icalproperty_set_recurexpand(icalproperty* prop, const char* v){
3968+    icalerror_check_arg_rv( (v!=0),"v");
3969+
3970+    icalerror_check_arg_rv( (prop!=0),"prop");
3971+    icalproperty_set_value(prop,icalvalue_new_text(v));
3972+}
3973+const char* icalproperty_get_recurexpand(const icalproperty* prop){
3974+    icalerror_check_arg( (prop!=0),"prop");
3975+    return icalvalue_get_text(icalproperty_get_value(prop));
3976+}
3977+icalproperty* icalproperty_vanew_recurlimit(const char* v, ...){
3978+   va_list args;
3979+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURLIMIT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3980+
3981+   icalproperty_set_recurlimit((icalproperty*)impl,v);
3982+   va_start(args,v);
3983+   icalproperty_add_parameters(impl, args);
3984+   va_end(args);
3985+   return (icalproperty*)impl;
3986+}
3987+
3988+/* RECUR-LIMIT */
3989+icalproperty* icalproperty_new_recurlimit(const char* v) {
3990+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURLIMIT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
3991+
3992+   icalproperty_set_recurlimit((icalproperty*)impl,v);
3993+   return (icalproperty*)impl;
3994+}
3995+
3996+void icalproperty_set_recurlimit(icalproperty* prop, const char* v){
3997+    icalerror_check_arg_rv( (v!=0),"v");
3998+
3999+    icalerror_check_arg_rv( (prop!=0),"prop");
4000+    icalproperty_set_value(prop,icalvalue_new_text(v));
4001+}
4002+const char* icalproperty_get_recurlimit(const icalproperty* prop){
4003+    icalerror_check_arg( (prop!=0),"prop");
4004+    return icalvalue_get_text(icalproperty_get_value(prop));
4005+}
4006+icalproperty* icalproperty_vanew_recurrenceid(struct icaltimetype v, ...){
4007+   va_list args;
4008+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURRENCEID_PROPERTY);   
4009+   icalproperty_set_recurrenceid((icalproperty*)impl,v);
4010+   va_start(args,v);
4011+   icalproperty_add_parameters(impl, args);
4012+   va_end(args);
4013+   return (icalproperty*)impl;
4014+}
4015+
4016+/* RECURRENCE-ID */
4017+icalproperty* icalproperty_new_recurrenceid(struct icaltimetype v) {
4018+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURRENCEID_PROPERTY);   
4019+   icalproperty_set_recurrenceid((icalproperty*)impl,v);
4020+   return (icalproperty*)impl;
4021+}
4022+
4023+void icalproperty_set_recurrenceid(icalproperty* prop, struct icaltimetype v){
4024+    icalvalue *value;
4025+   
4026+    icalerror_check_arg_rv( (prop!=0),"prop");
4027+    if (v.is_date)
4028+        value = icalvalue_new_date(v);
4029+    else
4030+        value = icalvalue_new_datetime(v);
4031+    icalproperty_set_value(prop,value);
4032+}
4033+struct icaltimetype icalproperty_get_recurrenceid(const icalproperty* prop){
4034+    icalerror_check_arg( (prop!=0),"prop");
4035+    return icalvalue_get_datetime(icalproperty_get_value(prop));
4036+}
4037+icalproperty* icalproperty_vanew_relatedto(const char* v, ...){
4038+   va_list args;
4039+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RELATEDTO_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4040+
4041+   icalproperty_set_relatedto((icalproperty*)impl,v);
4042+   va_start(args,v);
4043+   icalproperty_add_parameters(impl, args);
4044+   va_end(args);
4045+   return (icalproperty*)impl;
4046+}
4047+
4048+/* RELATED-TO */
4049+icalproperty* icalproperty_new_relatedto(const char* v) {
4050+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RELATEDTO_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4051+
4052+   icalproperty_set_relatedto((icalproperty*)impl,v);
4053+   return (icalproperty*)impl;
4054+}
4055+
4056+void icalproperty_set_relatedto(icalproperty* prop, const char* v){
4057+    icalerror_check_arg_rv( (v!=0),"v");
4058+
4059+    icalerror_check_arg_rv( (prop!=0),"prop");
4060+    icalproperty_set_value(prop,icalvalue_new_text(v));
4061+}
4062+const char* icalproperty_get_relatedto(const icalproperty* prop){
4063+    icalerror_check_arg( (prop!=0),"prop");
4064+    return icalvalue_get_text(icalproperty_get_value(prop));
4065+}
4066+icalproperty* icalproperty_vanew_relcalid(const char* v, ...){
4067+   va_list args;
4068+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RELCALID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4069+
4070+   icalproperty_set_relcalid((icalproperty*)impl,v);
4071+   va_start(args,v);
4072+   icalproperty_add_parameters(impl, args);
4073+   va_end(args);
4074+   return (icalproperty*)impl;
4075+}
4076+
4077+/* RELCALID */
4078+icalproperty* icalproperty_new_relcalid(const char* v) {
4079+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RELCALID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4080+
4081+   icalproperty_set_relcalid((icalproperty*)impl,v);
4082+   return (icalproperty*)impl;
4083+}
4084+
4085+void icalproperty_set_relcalid(icalproperty* prop, const char* v){
4086+    icalerror_check_arg_rv( (v!=0),"v");
4087+
4088+    icalerror_check_arg_rv( (prop!=0),"prop");
4089+    icalproperty_set_value(prop,icalvalue_new_text(v));
4090+}
4091+const char* icalproperty_get_relcalid(const icalproperty* prop){
4092+    icalerror_check_arg( (prop!=0),"prop");
4093+    return icalvalue_get_text(icalproperty_get_value(prop));
4094+}
4095+icalproperty* icalproperty_vanew_repeat(int v, ...){
4096+   va_list args;
4097+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_REPEAT_PROPERTY);   
4098+   icalproperty_set_repeat((icalproperty*)impl,v);
4099+   va_start(args,v);
4100+   icalproperty_add_parameters(impl, args);
4101+   va_end(args);
4102+   return (icalproperty*)impl;
4103+}
4104+
4105+/* REPEAT */
4106+icalproperty* icalproperty_new_repeat(int v) {
4107+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_REPEAT_PROPERTY);   
4108+   icalproperty_set_repeat((icalproperty*)impl,v);
4109+   return (icalproperty*)impl;
4110+}
4111+
4112+void icalproperty_set_repeat(icalproperty* prop, int v){
4113+   
4114+    icalerror_check_arg_rv( (prop!=0),"prop");
4115+    icalproperty_set_value(prop,icalvalue_new_integer(v));
4116+}
4117+int icalproperty_get_repeat(const icalproperty* prop){
4118+    icalerror_check_arg( (prop!=0),"prop");
4119+    return icalvalue_get_integer(icalproperty_get_value(prop));
4120+}
4121+icalproperty* icalproperty_vanew_requeststatus(struct icalreqstattype v, ...){
4122+   va_list args;
4123+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_REQUESTSTATUS_PROPERTY);   
4124+   icalproperty_set_requeststatus((icalproperty*)impl,v);
4125+   va_start(args,v);
4126+   icalproperty_add_parameters(impl, args);
4127+   va_end(args);
4128+   return (icalproperty*)impl;
4129+}
4130+
4131+/* REQUEST-STATUS */
4132+icalproperty* icalproperty_new_requeststatus(struct icalreqstattype v) {
4133+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_REQUESTSTATUS_PROPERTY);   
4134+   icalproperty_set_requeststatus((icalproperty*)impl,v);
4135+   return (icalproperty*)impl;
4136+}
4137+
4138+void icalproperty_set_requeststatus(icalproperty* prop, struct icalreqstattype v){
4139+   
4140+    icalerror_check_arg_rv( (prop!=0),"prop");
4141+    icalproperty_set_value(prop,icalvalue_new_requeststatus(v));
4142+}
4143+struct icalreqstattype icalproperty_get_requeststatus(const icalproperty* prop){
4144+    icalerror_check_arg( (prop!=0),"prop");
4145+    return icalvalue_get_requeststatus(icalproperty_get_value(prop));
4146+}
4147+icalproperty* icalproperty_vanew_resources(const char* v, ...){
4148+   va_list args;
4149+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RESOURCES_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4150+
4151+   icalproperty_set_resources((icalproperty*)impl,v);
4152+   va_start(args,v);
4153+   icalproperty_add_parameters(impl, args);
4154+   va_end(args);
4155+   return (icalproperty*)impl;
4156+}
4157+
4158+/* RESOURCES */
4159+icalproperty* icalproperty_new_resources(const char* v) {
4160+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RESOURCES_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4161+
4162+   icalproperty_set_resources((icalproperty*)impl,v);
4163+   return (icalproperty*)impl;
4164+}
4165+
4166+void icalproperty_set_resources(icalproperty* prop, const char* v){
4167+    icalerror_check_arg_rv( (v!=0),"v");
4168+
4169+    icalerror_check_arg_rv( (prop!=0),"prop");
4170+    icalproperty_set_value(prop,icalvalue_new_text(v));
4171+}
4172+const char* icalproperty_get_resources(const icalproperty* prop){
4173+    icalerror_check_arg( (prop!=0),"prop");
4174+    return icalvalue_get_text(icalproperty_get_value(prop));
4175+}
4176+icalproperty* icalproperty_vanew_restriction(const char* v, ...){
4177+   va_list args;
4178+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RESTRICTION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4179+
4180+   icalproperty_set_restriction((icalproperty*)impl,v);
4181+   va_start(args,v);
4182+   icalproperty_add_parameters(impl, args);
4183+   va_end(args);
4184+   return (icalproperty*)impl;
4185+}
4186+
4187+/* RESTRICTION */
4188+icalproperty* icalproperty_new_restriction(const char* v) {
4189+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RESTRICTION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4190+
4191+   icalproperty_set_restriction((icalproperty*)impl,v);
4192+   return (icalproperty*)impl;
4193+}
4194+
4195+void icalproperty_set_restriction(icalproperty* prop, const char* v){
4196+    icalerror_check_arg_rv( (v!=0),"v");
4197+
4198+    icalerror_check_arg_rv( (prop!=0),"prop");
4199+    icalproperty_set_value(prop,icalvalue_new_query(v));
4200+}
4201+const char* icalproperty_get_restriction(const icalproperty* prop){
4202+    icalerror_check_arg( (prop!=0),"prop");
4203+    return icalvalue_get_query(icalproperty_get_value(prop));
4204+}
4205+icalproperty* icalproperty_vanew_rrule(struct icalrecurrencetype v, ...){
4206+   va_list args;
4207+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RRULE_PROPERTY);   
4208+   icalproperty_set_rrule((icalproperty*)impl,v);
4209+   va_start(args,v);
4210+   icalproperty_add_parameters(impl, args);
4211+   va_end(args);
4212+   return (icalproperty*)impl;
4213+}
4214+
4215+/* RRULE */
4216+icalproperty* icalproperty_new_rrule(struct icalrecurrencetype v) {
4217+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RRULE_PROPERTY);   
4218+   icalproperty_set_rrule((icalproperty*)impl,v);
4219+   return (icalproperty*)impl;
4220+}
4221+
4222+void icalproperty_set_rrule(icalproperty* prop, struct icalrecurrencetype v){
4223+   
4224+    icalerror_check_arg_rv( (prop!=0),"prop");
4225+    icalproperty_set_value(prop,icalvalue_new_recur(v));
4226+}
4227+struct icalrecurrencetype icalproperty_get_rrule(const icalproperty* prop){
4228+    icalerror_check_arg( (prop!=0),"prop");
4229+    return icalvalue_get_recur(icalproperty_get_value(prop));
4230+}
4231+icalproperty* icalproperty_vanew_scope(const char* v, ...){
4232+   va_list args;
4233+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SCOPE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4234+
4235+   icalproperty_set_scope((icalproperty*)impl,v);
4236+   va_start(args,v);
4237+   icalproperty_add_parameters(impl, args);
4238+   va_end(args);
4239+   return (icalproperty*)impl;
4240+}
4241+
4242+/* SCOPE */
4243+icalproperty* icalproperty_new_scope(const char* v) {
4244+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SCOPE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4245+
4246+   icalproperty_set_scope((icalproperty*)impl,v);
4247+   return (icalproperty*)impl;
4248+}
4249+
4250+void icalproperty_set_scope(icalproperty* prop, const char* v){
4251+    icalerror_check_arg_rv( (v!=0),"v");
4252+
4253+    icalerror_check_arg_rv( (prop!=0),"prop");
4254+    icalproperty_set_value(prop,icalvalue_new_text(v));
4255+}
4256+const char* icalproperty_get_scope(const icalproperty* prop){
4257+    icalerror_check_arg( (prop!=0),"prop");
4258+    return icalvalue_get_text(icalproperty_get_value(prop));
4259+}
4260+icalproperty* icalproperty_vanew_sequence(int v, ...){
4261+   va_list args;
4262+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SEQUENCE_PROPERTY);   
4263+   icalproperty_set_sequence((icalproperty*)impl,v);
4264+   va_start(args,v);
4265+   icalproperty_add_parameters(impl, args);
4266+   va_end(args);
4267+   return (icalproperty*)impl;
4268+}
4269+
4270+/* SEQUENCE */
4271+icalproperty* icalproperty_new_sequence(int v) {
4272+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SEQUENCE_PROPERTY);   
4273+   icalproperty_set_sequence((icalproperty*)impl,v);
4274+   return (icalproperty*)impl;
4275+}
4276+
4277+void icalproperty_set_sequence(icalproperty* prop, int v){
4278+   
4279+    icalerror_check_arg_rv( (prop!=0),"prop");
4280+    icalproperty_set_value(prop,icalvalue_new_integer(v));
4281+}
4282+int icalproperty_get_sequence(const icalproperty* prop){
4283+    icalerror_check_arg( (prop!=0),"prop");
4284+    return icalvalue_get_integer(icalproperty_get_value(prop));
4285+}
4286+icalproperty* icalproperty_vanew_status(enum icalproperty_status v, ...){
4287+   va_list args;
4288+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_STATUS_PROPERTY);   
4289+   icalproperty_set_status((icalproperty*)impl,v);
4290+   va_start(args,v);
4291+   icalproperty_add_parameters(impl, args);
4292+   va_end(args);
4293+   return (icalproperty*)impl;
4294+}
4295+
4296+/* STATUS */
4297+icalproperty* icalproperty_new_status(enum icalproperty_status v) {
4298+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_STATUS_PROPERTY);   
4299+   icalproperty_set_status((icalproperty*)impl,v);
4300+   return (icalproperty*)impl;
4301+}
4302+
4303+void icalproperty_set_status(icalproperty* prop, enum icalproperty_status v){
4304+   
4305+    icalerror_check_arg_rv( (prop!=0),"prop");
4306+    icalproperty_set_value(prop,icalvalue_new_status(v));
4307+}
4308+enum icalproperty_status icalproperty_get_status(const icalproperty* prop){
4309+    icalerror_check_arg( (prop!=0),"prop");
4310+    return icalvalue_get_status(icalproperty_get_value(prop));
4311+}
4312+icalproperty* icalproperty_vanew_storesexpanded(const char* v, ...){
4313+   va_list args;
4314+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_STORESEXPANDED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4315+
4316+   icalproperty_set_storesexpanded((icalproperty*)impl,v);
4317+   va_start(args,v);
4318+   icalproperty_add_parameters(impl, args);
4319+   va_end(args);
4320+   return (icalproperty*)impl;
4321+}
4322+
4323+/* STORES-EXPANDED */
4324+icalproperty* icalproperty_new_storesexpanded(const char* v) {
4325+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_STORESEXPANDED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4326+
4327+   icalproperty_set_storesexpanded((icalproperty*)impl,v);
4328+   return (icalproperty*)impl;
4329+}
4330+
4331+void icalproperty_set_storesexpanded(icalproperty* prop, const char* v){
4332+    icalerror_check_arg_rv( (v!=0),"v");
4333+
4334+    icalerror_check_arg_rv( (prop!=0),"prop");
4335+    icalproperty_set_value(prop,icalvalue_new_text(v));
4336+}
4337+const char* icalproperty_get_storesexpanded(const icalproperty* prop){
4338+    icalerror_check_arg( (prop!=0),"prop");
4339+    return icalvalue_get_text(icalproperty_get_value(prop));
4340+}
4341+icalproperty* icalproperty_vanew_summary(const char* v, ...){
4342+   va_list args;
4343+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SUMMARY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4344+
4345+   icalproperty_set_summary((icalproperty*)impl,v);
4346+   va_start(args,v);
4347+   icalproperty_add_parameters(impl, args);
4348+   va_end(args);
4349+   return (icalproperty*)impl;
4350+}
4351+
4352+/* SUMMARY */
4353+icalproperty* icalproperty_new_summary(const char* v) {
4354+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SUMMARY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4355+
4356+   icalproperty_set_summary((icalproperty*)impl,v);
4357+   return (icalproperty*)impl;
4358+}
4359+
4360+void icalproperty_set_summary(icalproperty* prop, const char* v){
4361+    icalerror_check_arg_rv( (v!=0),"v");
4362+
4363+    icalerror_check_arg_rv( (prop!=0),"prop");
4364+    icalproperty_set_value(prop,icalvalue_new_text(v));
4365+}
4366+const char* icalproperty_get_summary(const icalproperty* prop){
4367+    icalerror_check_arg( (prop!=0),"prop");
4368+    return icalvalue_get_text(icalproperty_get_value(prop));
4369+}
4370+icalproperty* icalproperty_vanew_target(const char* v, ...){
4371+   va_list args;
4372+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TARGET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4373+
4374+   icalproperty_set_target((icalproperty*)impl,v);
4375+   va_start(args,v);
4376+   icalproperty_add_parameters(impl, args);
4377+   va_end(args);
4378+   return (icalproperty*)impl;
4379+}
4380+
4381+/* TARGET */
4382+icalproperty* icalproperty_new_target(const char* v) {
4383+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TARGET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4384+
4385+   icalproperty_set_target((icalproperty*)impl,v);
4386+   return (icalproperty*)impl;
4387+}
4388+
4389+void icalproperty_set_target(icalproperty* prop, const char* v){
4390+    icalerror_check_arg_rv( (v!=0),"v");
4391+
4392+    icalerror_check_arg_rv( (prop!=0),"prop");
4393+    icalproperty_set_value(prop,icalvalue_new_caladdress(v));
4394+}
4395+const char* icalproperty_get_target(const icalproperty* prop){
4396+    icalerror_check_arg( (prop!=0),"prop");
4397+    return icalvalue_get_caladdress(icalproperty_get_value(prop));
4398+}
4399+icalproperty* icalproperty_vanew_transp(enum icalproperty_transp v, ...){
4400+   va_list args;
4401+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TRANSP_PROPERTY);   
4402+   icalproperty_set_transp((icalproperty*)impl,v);
4403+   va_start(args,v);
4404+   icalproperty_add_parameters(impl, args);
4405+   va_end(args);
4406+   return (icalproperty*)impl;
4407+}
4408+
4409+/* TRANSP */
4410+icalproperty* icalproperty_new_transp(enum icalproperty_transp v) {
4411+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TRANSP_PROPERTY);   
4412+   icalproperty_set_transp((icalproperty*)impl,v);
4413+   return (icalproperty*)impl;
4414+}
4415+
4416+void icalproperty_set_transp(icalproperty* prop, enum icalproperty_transp v){
4417+   
4418+    icalerror_check_arg_rv( (prop!=0),"prop");
4419+    icalproperty_set_value(prop,icalvalue_new_transp(v));
4420+}
4421+enum icalproperty_transp icalproperty_get_transp(const icalproperty* prop){
4422+    icalerror_check_arg( (prop!=0),"prop");
4423+    return icalvalue_get_transp(icalproperty_get_value(prop));
4424+}
4425+icalproperty* icalproperty_vanew_trigger(struct icaltriggertype v, ...){
4426+   va_list args;
4427+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TRIGGER_PROPERTY);   
4428+   icalproperty_set_trigger((icalproperty*)impl,v);
4429+   va_start(args,v);
4430+   icalproperty_add_parameters(impl, args);
4431+   va_end(args);
4432+   return (icalproperty*)impl;
4433+}
4434+
4435+/* TRIGGER */
4436+icalproperty* icalproperty_new_trigger(struct icaltriggertype v) {
4437+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TRIGGER_PROPERTY);   
4438+   icalproperty_set_trigger((icalproperty*)impl,v);
4439+   return (icalproperty*)impl;
4440+}
4441+
4442+void icalproperty_set_trigger(icalproperty* prop, struct icaltriggertype v){
4443+   
4444+    icalerror_check_arg_rv( (prop!=0),"prop");
4445+    icalproperty_set_value(prop,icalvalue_new_trigger(v));
4446+}
4447+struct icaltriggertype icalproperty_get_trigger(const icalproperty* prop){
4448+    icalerror_check_arg( (prop!=0),"prop");
4449+    return icalvalue_get_trigger(icalproperty_get_value(prop));
4450+}
4451+icalproperty* icalproperty_vanew_tzid(const char* v, ...){
4452+   va_list args;
4453+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4454+
4455+   icalproperty_set_tzid((icalproperty*)impl,v);
4456+   va_start(args,v);
4457+   icalproperty_add_parameters(impl, args);
4458+   va_end(args);
4459+   return (icalproperty*)impl;
4460+}
4461+
4462+/* TZID */
4463+icalproperty* icalproperty_new_tzid(const char* v) {
4464+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4465+
4466+   icalproperty_set_tzid((icalproperty*)impl,v);
4467+   return (icalproperty*)impl;
4468+}
4469+
4470+void icalproperty_set_tzid(icalproperty* prop, const char* v){
4471+    icalerror_check_arg_rv( (v!=0),"v");
4472+
4473+    icalerror_check_arg_rv( (prop!=0),"prop");
4474+    icalproperty_set_value(prop,icalvalue_new_text(v));
4475+}
4476+const char* icalproperty_get_tzid(const icalproperty* prop){
4477+    icalerror_check_arg( (prop!=0),"prop");
4478+    return icalvalue_get_text(icalproperty_get_value(prop));
4479+}
4480+icalproperty* icalproperty_vanew_tzname(const char* v, ...){
4481+   va_list args;
4482+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZNAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4483+
4484+   icalproperty_set_tzname((icalproperty*)impl,v);
4485+   va_start(args,v);
4486+   icalproperty_add_parameters(impl, args);
4487+   va_end(args);
4488+   return (icalproperty*)impl;
4489+}
4490+
4491+/* TZNAME */
4492+icalproperty* icalproperty_new_tzname(const char* v) {
4493+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZNAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4494+
4495+   icalproperty_set_tzname((icalproperty*)impl,v);
4496+   return (icalproperty*)impl;
4497+}
4498+
4499+void icalproperty_set_tzname(icalproperty* prop, const char* v){
4500+    icalerror_check_arg_rv( (v!=0),"v");
4501+
4502+    icalerror_check_arg_rv( (prop!=0),"prop");
4503+    icalproperty_set_value(prop,icalvalue_new_text(v));
4504+}
4505+const char* icalproperty_get_tzname(const icalproperty* prop){
4506+    icalerror_check_arg( (prop!=0),"prop");
4507+    return icalvalue_get_text(icalproperty_get_value(prop));
4508+}
4509+icalproperty* icalproperty_vanew_tzoffsetfrom(int v, ...){
4510+   va_list args;
4511+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZOFFSETFROM_PROPERTY);   
4512+   icalproperty_set_tzoffsetfrom((icalproperty*)impl,v);
4513+   va_start(args,v);
4514+   icalproperty_add_parameters(impl, args);
4515+   va_end(args);
4516+   return (icalproperty*)impl;
4517+}
4518+
4519+/* TZOFFSETFROM */
4520+icalproperty* icalproperty_new_tzoffsetfrom(int v) {
4521+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZOFFSETFROM_PROPERTY);   
4522+   icalproperty_set_tzoffsetfrom((icalproperty*)impl,v);
4523+   return (icalproperty*)impl;
4524+}
4525+
4526+void icalproperty_set_tzoffsetfrom(icalproperty* prop, int v){
4527+   
4528+    icalerror_check_arg_rv( (prop!=0),"prop");
4529+    icalproperty_set_value(prop,icalvalue_new_utcoffset(v));
4530+}
4531+int icalproperty_get_tzoffsetfrom(const icalproperty* prop){
4532+    icalerror_check_arg( (prop!=0),"prop");
4533+    return icalvalue_get_utcoffset(icalproperty_get_value(prop));
4534+}
4535+icalproperty* icalproperty_vanew_tzoffsetto(int v, ...){
4536+   va_list args;
4537+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZOFFSETTO_PROPERTY);   
4538+   icalproperty_set_tzoffsetto((icalproperty*)impl,v);
4539+   va_start(args,v);
4540+   icalproperty_add_parameters(impl, args);
4541+   va_end(args);
4542+   return (icalproperty*)impl;
4543+}
4544+
4545+/* TZOFFSETTO */
4546+icalproperty* icalproperty_new_tzoffsetto(int v) {
4547+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZOFFSETTO_PROPERTY);   
4548+   icalproperty_set_tzoffsetto((icalproperty*)impl,v);
4549+   return (icalproperty*)impl;
4550+}
4551+
4552+void icalproperty_set_tzoffsetto(icalproperty* prop, int v){
4553+   
4554+    icalerror_check_arg_rv( (prop!=0),"prop");
4555+    icalproperty_set_value(prop,icalvalue_new_utcoffset(v));
4556+}
4557+int icalproperty_get_tzoffsetto(const icalproperty* prop){
4558+    icalerror_check_arg( (prop!=0),"prop");
4559+    return icalvalue_get_utcoffset(icalproperty_get_value(prop));
4560+}
4561+icalproperty* icalproperty_vanew_tzurl(const char* v, ...){
4562+   va_list args;
4563+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZURL_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4564+
4565+   icalproperty_set_tzurl((icalproperty*)impl,v);
4566+   va_start(args,v);
4567+   icalproperty_add_parameters(impl, args);
4568+   va_end(args);
4569+   return (icalproperty*)impl;
4570+}
4571+
4572+/* TZURL */
4573+icalproperty* icalproperty_new_tzurl(const char* v) {
4574+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZURL_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4575+
4576+   icalproperty_set_tzurl((icalproperty*)impl,v);
4577+   return (icalproperty*)impl;
4578+}
4579+
4580+void icalproperty_set_tzurl(icalproperty* prop, const char* v){
4581+    icalerror_check_arg_rv( (v!=0),"v");
4582+
4583+    icalerror_check_arg_rv( (prop!=0),"prop");
4584+    icalproperty_set_value(prop,icalvalue_new_uri(v));
4585+}
4586+const char* icalproperty_get_tzurl(const icalproperty* prop){
4587+    icalerror_check_arg( (prop!=0),"prop");
4588+    return icalvalue_get_uri(icalproperty_get_value(prop));
4589+}
4590+icalproperty* icalproperty_vanew_uid(const char* v, ...){
4591+   va_list args;
4592+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_UID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4593+
4594+   icalproperty_set_uid((icalproperty*)impl,v);
4595+   va_start(args,v);
4596+   icalproperty_add_parameters(impl, args);
4597+   va_end(args);
4598+   return (icalproperty*)impl;
4599+}
4600+
4601+/* UID */
4602+icalproperty* icalproperty_new_uid(const char* v) {
4603+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_UID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4604+
4605+   icalproperty_set_uid((icalproperty*)impl,v);
4606+   return (icalproperty*)impl;
4607+}
4608+
4609+void icalproperty_set_uid(icalproperty* prop, const char* v){
4610+    icalerror_check_arg_rv( (v!=0),"v");
4611+
4612+    icalerror_check_arg_rv( (prop!=0),"prop");
4613+    icalproperty_set_value(prop,icalvalue_new_text(v));
4614+}
4615+const char* icalproperty_get_uid(const icalproperty* prop){
4616+    icalerror_check_arg( (prop!=0),"prop");
4617+    return icalvalue_get_text(icalproperty_get_value(prop));
4618+}
4619+icalproperty* icalproperty_vanew_url(const char* v, ...){
4620+   va_list args;
4621+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_URL_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4622+
4623+   icalproperty_set_url((icalproperty*)impl,v);
4624+   va_start(args,v);
4625+   icalproperty_add_parameters(impl, args);
4626+   va_end(args);
4627+   return (icalproperty*)impl;
4628+}
4629+
4630+/* URL */
4631+icalproperty* icalproperty_new_url(const char* v) {
4632+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_URL_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4633+
4634+   icalproperty_set_url((icalproperty*)impl,v);
4635+   return (icalproperty*)impl;
4636+}
4637+
4638+void icalproperty_set_url(icalproperty* prop, const char* v){
4639+    icalerror_check_arg_rv( (v!=0),"v");
4640+
4641+    icalerror_check_arg_rv( (prop!=0),"prop");
4642+    icalproperty_set_value(prop,icalvalue_new_uri(v));
4643+}
4644+const char* icalproperty_get_url(const icalproperty* prop){
4645+    icalerror_check_arg( (prop!=0),"prop");
4646+    return icalvalue_get_uri(icalproperty_get_value(prop));
4647+}
4648+icalproperty* icalproperty_vanew_version(const char* v, ...){
4649+   va_list args;
4650+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_VERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4651+
4652+   icalproperty_set_version((icalproperty*)impl,v);
4653+   va_start(args,v);
4654+   icalproperty_add_parameters(impl, args);
4655+   va_end(args);
4656+   return (icalproperty*)impl;
4657+}
4658+
4659+/* VERSION */
4660+icalproperty* icalproperty_new_version(const char* v) {
4661+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_VERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4662+
4663+   icalproperty_set_version((icalproperty*)impl,v);
4664+   return (icalproperty*)impl;
4665+}
4666+
4667+void icalproperty_set_version(icalproperty* prop, const char* v){
4668+    icalerror_check_arg_rv( (v!=0),"v");
4669+
4670+    icalerror_check_arg_rv( (prop!=0),"prop");
4671+    icalproperty_set_value(prop,icalvalue_new_text(v));
4672+}
4673+const char* icalproperty_get_version(const icalproperty* prop){
4674+    icalerror_check_arg( (prop!=0),"prop");
4675+    return icalvalue_get_text(icalproperty_get_value(prop));
4676+}
4677+icalproperty* icalproperty_vanew_x(const char* v, ...){
4678+   va_list args;
4679+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_X_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4680+
4681+   icalproperty_set_x((icalproperty*)impl,v);
4682+   va_start(args,v);
4683+   icalproperty_add_parameters(impl, args);
4684+   va_end(args);
4685+   return (icalproperty*)impl;
4686+}
4687+
4688+/* X */
4689+icalproperty* icalproperty_new_x(const char* v) {
4690+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_X_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4691+
4692+   icalproperty_set_x((icalproperty*)impl,v);
4693+   return (icalproperty*)impl;
4694+}
4695+
4696+void icalproperty_set_x(icalproperty* prop, const char* v){
4697+    icalerror_check_arg_rv( (v!=0),"v");
4698+
4699+    icalerror_check_arg_rv( (prop!=0),"prop");
4700+    icalproperty_set_value(prop,icalvalue_new_x(v));
4701+}
4702+const char* icalproperty_get_x(const icalproperty* prop){
4703+    icalerror_check_arg( (prop!=0),"prop");
4704+    return icalvalue_get_x(icalproperty_get_value(prop));
4705+}
4706+icalproperty* icalproperty_vanew_xlicclass(enum icalproperty_xlicclass v, ...){
4707+   va_list args;
4708+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICCLASS_PROPERTY);   
4709+   icalproperty_set_xlicclass((icalproperty*)impl,v);
4710+   va_start(args,v);
4711+   icalproperty_add_parameters(impl, args);
4712+   va_end(args);
4713+   return (icalproperty*)impl;
4714+}
4715+
4716+/* X-LIC-CLASS */
4717+icalproperty* icalproperty_new_xlicclass(enum icalproperty_xlicclass v) {
4718+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICCLASS_PROPERTY);   
4719+   icalproperty_set_xlicclass((icalproperty*)impl,v);
4720+   return (icalproperty*)impl;
4721+}
4722+
4723+void icalproperty_set_xlicclass(icalproperty* prop, enum icalproperty_xlicclass v){
4724+   
4725+    icalerror_check_arg_rv( (prop!=0),"prop");
4726+    icalproperty_set_value(prop,icalvalue_new_xlicclass(v));
4727+}
4728+enum icalproperty_xlicclass icalproperty_get_xlicclass(const icalproperty* prop){
4729+    icalerror_check_arg( (prop!=0),"prop");
4730+    return icalvalue_get_xlicclass(icalproperty_get_value(prop));
4731+}
4732+icalproperty* icalproperty_vanew_xlicclustercount(const char* v, ...){
4733+   va_list args;
4734+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICCLUSTERCOUNT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4735+
4736+   icalproperty_set_xlicclustercount((icalproperty*)impl,v);
4737+   va_start(args,v);
4738+   icalproperty_add_parameters(impl, args);
4739+   va_end(args);
4740+   return (icalproperty*)impl;
4741+}
4742+
4743+/* X-LIC-CLUSTERCOUNT */
4744+icalproperty* icalproperty_new_xlicclustercount(const char* v) {
4745+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICCLUSTERCOUNT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4746+
4747+   icalproperty_set_xlicclustercount((icalproperty*)impl,v);
4748+   return (icalproperty*)impl;
4749+}
4750+
4751+void icalproperty_set_xlicclustercount(icalproperty* prop, const char* v){
4752+    icalerror_check_arg_rv( (v!=0),"v");
4753+
4754+    icalerror_check_arg_rv( (prop!=0),"prop");
4755+    icalproperty_set_value(prop,icalvalue_new_string(v));
4756+}
4757+const char* icalproperty_get_xlicclustercount(const icalproperty* prop){
4758+    icalerror_check_arg( (prop!=0),"prop");
4759+    return icalvalue_get_string(icalproperty_get_value(prop));
4760+}
4761+icalproperty* icalproperty_vanew_xlicerror(const char* v, ...){
4762+   va_list args;
4763+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICERROR_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4764+
4765+   icalproperty_set_xlicerror((icalproperty*)impl,v);
4766+   va_start(args,v);
4767+   icalproperty_add_parameters(impl, args);
4768+   va_end(args);
4769+   return (icalproperty*)impl;
4770+}
4771+
4772+/* X-LIC-ERROR */
4773+icalproperty* icalproperty_new_xlicerror(const char* v) {
4774+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICERROR_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4775+
4776+   icalproperty_set_xlicerror((icalproperty*)impl,v);
4777+   return (icalproperty*)impl;
4778+}
4779+
4780+void icalproperty_set_xlicerror(icalproperty* prop, const char* v){
4781+    icalerror_check_arg_rv( (v!=0),"v");
4782+
4783+    icalerror_check_arg_rv( (prop!=0),"prop");
4784+    icalproperty_set_value(prop,icalvalue_new_text(v));
4785+}
4786+const char* icalproperty_get_xlicerror(const icalproperty* prop){
4787+    icalerror_check_arg( (prop!=0),"prop");
4788+    return icalvalue_get_text(icalproperty_get_value(prop));
4789+}
4790+icalproperty* icalproperty_vanew_xlicmimecharset(const char* v, ...){
4791+   va_list args;
4792+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECHARSET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4793+
4794+   icalproperty_set_xlicmimecharset((icalproperty*)impl,v);
4795+   va_start(args,v);
4796+   icalproperty_add_parameters(impl, args);
4797+   va_end(args);
4798+   return (icalproperty*)impl;
4799+}
4800+
4801+/* X-LIC-MIMECHARSET */
4802+icalproperty* icalproperty_new_xlicmimecharset(const char* v) {
4803+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECHARSET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4804+
4805+   icalproperty_set_xlicmimecharset((icalproperty*)impl,v);
4806+   return (icalproperty*)impl;
4807+}
4808+
4809+void icalproperty_set_xlicmimecharset(icalproperty* prop, const char* v){
4810+    icalerror_check_arg_rv( (v!=0),"v");
4811+
4812+    icalerror_check_arg_rv( (prop!=0),"prop");
4813+    icalproperty_set_value(prop,icalvalue_new_string(v));
4814+}
4815+const char* icalproperty_get_xlicmimecharset(const icalproperty* prop){
4816+    icalerror_check_arg( (prop!=0),"prop");
4817+    return icalvalue_get_string(icalproperty_get_value(prop));
4818+}
4819+icalproperty* icalproperty_vanew_xlicmimecid(const char* v, ...){
4820+   va_list args;
4821+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4822+
4823+   icalproperty_set_xlicmimecid((icalproperty*)impl,v);
4824+   va_start(args,v);
4825+   icalproperty_add_parameters(impl, args);
4826+   va_end(args);
4827+   return (icalproperty*)impl;
4828+}
4829+
4830+/* X-LIC-MIMECID */
4831+icalproperty* icalproperty_new_xlicmimecid(const char* v) {
4832+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4833+
4834+   icalproperty_set_xlicmimecid((icalproperty*)impl,v);
4835+   return (icalproperty*)impl;
4836+}
4837+
4838+void icalproperty_set_xlicmimecid(icalproperty* prop, const char* v){
4839+    icalerror_check_arg_rv( (v!=0),"v");
4840+
4841+    icalerror_check_arg_rv( (prop!=0),"prop");
4842+    icalproperty_set_value(prop,icalvalue_new_string(v));
4843+}
4844+const char* icalproperty_get_xlicmimecid(const icalproperty* prop){
4845+    icalerror_check_arg( (prop!=0),"prop");
4846+    return icalvalue_get_string(icalproperty_get_value(prop));
4847+}
4848+icalproperty* icalproperty_vanew_xlicmimecontenttype(const char* v, ...){
4849+   va_list args;
4850+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECONTENTTYPE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4851+
4852+   icalproperty_set_xlicmimecontenttype((icalproperty*)impl,v);
4853+   va_start(args,v);
4854+   icalproperty_add_parameters(impl, args);
4855+   va_end(args);
4856+   return (icalproperty*)impl;
4857+}
4858+
4859+/* X-LIC-MIMECONTENTTYPE */
4860+icalproperty* icalproperty_new_xlicmimecontenttype(const char* v) {
4861+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECONTENTTYPE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4862+
4863+   icalproperty_set_xlicmimecontenttype((icalproperty*)impl,v);
4864+   return (icalproperty*)impl;
4865+}
4866+
4867+void icalproperty_set_xlicmimecontenttype(icalproperty* prop, const char* v){
4868+    icalerror_check_arg_rv( (v!=0),"v");
4869+
4870+    icalerror_check_arg_rv( (prop!=0),"prop");
4871+    icalproperty_set_value(prop,icalvalue_new_string(v));
4872+}
4873+const char* icalproperty_get_xlicmimecontenttype(const icalproperty* prop){
4874+    icalerror_check_arg( (prop!=0),"prop");
4875+    return icalvalue_get_string(icalproperty_get_value(prop));
4876+}
4877+icalproperty* icalproperty_vanew_xlicmimeencoding(const char* v, ...){
4878+   va_list args;
4879+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEENCODING_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4880+
4881+   icalproperty_set_xlicmimeencoding((icalproperty*)impl,v);
4882+   va_start(args,v);
4883+   icalproperty_add_parameters(impl, args);
4884+   va_end(args);
4885+   return (icalproperty*)impl;
4886+}
4887+
4888+/* X-LIC-MIMEENCODING */
4889+icalproperty* icalproperty_new_xlicmimeencoding(const char* v) {
4890+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEENCODING_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4891+
4892+   icalproperty_set_xlicmimeencoding((icalproperty*)impl,v);
4893+   return (icalproperty*)impl;
4894+}
4895+
4896+void icalproperty_set_xlicmimeencoding(icalproperty* prop, const char* v){
4897+    icalerror_check_arg_rv( (v!=0),"v");
4898+
4899+    icalerror_check_arg_rv( (prop!=0),"prop");
4900+    icalproperty_set_value(prop,icalvalue_new_string(v));
4901+}
4902+const char* icalproperty_get_xlicmimeencoding(const icalproperty* prop){
4903+    icalerror_check_arg( (prop!=0),"prop");
4904+    return icalvalue_get_string(icalproperty_get_value(prop));
4905+}
4906+icalproperty* icalproperty_vanew_xlicmimefilename(const char* v, ...){
4907+   va_list args;
4908+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEFILENAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4909+
4910+   icalproperty_set_xlicmimefilename((icalproperty*)impl,v);
4911+   va_start(args,v);
4912+   icalproperty_add_parameters(impl, args);
4913+   va_end(args);
4914+   return (icalproperty*)impl;
4915+}
4916+
4917+/* X-LIC-MIMEFILENAME */
4918+icalproperty* icalproperty_new_xlicmimefilename(const char* v) {
4919+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEFILENAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4920+
4921+   icalproperty_set_xlicmimefilename((icalproperty*)impl,v);
4922+   return (icalproperty*)impl;
4923+}
4924+
4925+void icalproperty_set_xlicmimefilename(icalproperty* prop, const char* v){
4926+    icalerror_check_arg_rv( (v!=0),"v");
4927+
4928+    icalerror_check_arg_rv( (prop!=0),"prop");
4929+    icalproperty_set_value(prop,icalvalue_new_string(v));
4930+}
4931+const char* icalproperty_get_xlicmimefilename(const icalproperty* prop){
4932+    icalerror_check_arg( (prop!=0),"prop");
4933+    return icalvalue_get_string(icalproperty_get_value(prop));
4934+}
4935+icalproperty* icalproperty_vanew_xlicmimeoptinfo(const char* v, ...){
4936+   va_list args;
4937+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEOPTINFO_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4938+
4939+   icalproperty_set_xlicmimeoptinfo((icalproperty*)impl,v);
4940+   va_start(args,v);
4941+   icalproperty_add_parameters(impl, args);
4942+   va_end(args);
4943+   return (icalproperty*)impl;
4944+}
4945+
4946+/* X-LIC-MIMEOPTINFO */
4947+icalproperty* icalproperty_new_xlicmimeoptinfo(const char* v) {
4948+   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEOPTINFO_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
4949+
4950+   icalproperty_set_xlicmimeoptinfo((icalproperty*)impl,v);
4951+   return (icalproperty*)impl;
4952+}
4953+
4954+void icalproperty_set_xlicmimeoptinfo(icalproperty* prop, const char* v){
4955+    icalerror_check_arg_rv( (v!=0),"v");
4956+
4957+    icalerror_check_arg_rv( (prop!=0),"prop");
4958+    icalproperty_set_value(prop,icalvalue_new_string(v));
4959+}
4960+const char* icalproperty_get_xlicmimeoptinfo(const icalproperty* prop){
4961+    icalerror_check_arg( (prop!=0),"prop");
4962+    return icalvalue_get_string(icalproperty_get_value(prop));
4963+}
4964+
4965+int icalproperty_kind_is_valid(const icalproperty_kind kind)
4966+{
4967+    int i = 0;
4968+    do {
4969+      if (property_map[i].kind == kind)
4970+       return 1;
4971+    } while (property_map[i++].kind != ICAL_NO_PROPERTY);
4972+
4973+    return 0;
4974+} 
4975+
4976+const char* icalproperty_kind_to_string(icalproperty_kind kind)
4977+{
4978+    int i;
4979+
4980+    for (i=0; property_map[i].kind != ICAL_NO_PROPERTY; i++) {
4981+       if (property_map[i].kind == kind) {
4982+           return property_map[i].name;
4983+       }
4984+    }
4985+
4986+    return 0;
4987+
4988+}
4989+
4990+
4991+icalproperty_kind icalproperty_string_to_kind(const char* string)
4992+{
4993+    int i;
4994+
4995+    if (string ==0 ) {
4996+       return ICAL_NO_PROPERTY;
4997+    }
4998+
4999+
5000+    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
5001+       if (strcasecmp(property_map[i].name, string) == 0) {
5002+           return property_map[i].kind;
5003+       }
5004+    }
5005+
5006+    if(strncmp(string,"X-",2)==0){
5007+       return ICAL_X_PROPERTY;
5008+    }
5009+
5010+
5011+    return ICAL_NO_PROPERTY;
5012+}
5013+
5014+
5015+icalproperty_kind icalproperty_value_kind_to_kind(icalvalue_kind kind)
5016+{
5017+    int i;
5018+
5019+    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
5020+       if ( property_map[i].value == kind ) {
5021+           return property_map[i].kind;
5022+       }
5023+    }
5024+
5025+    return ICAL_NO_PROPERTY;
5026+}
5027+
5028+
5029+
5030+icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind)
5031+{
5032+    int i;
5033+
5034+    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
5035+       if ( property_map[i].kind == kind ) {
5036+           return property_map[i].value;
5037+       }
5038+    }
5039+
5040+    return ICAL_NO_VALUE;
5041+}
5042+
5043+
5044+const char* icalproperty_enum_to_string(int e)
5045+{
5046+    icalerror_check_arg_rz(e >= ICALPROPERTY_FIRST_ENUM,"e");
5047+    icalerror_check_arg_rz(e <= ICALPROPERTY_LAST_ENUM,"e");
5048+
5049+    return enum_map[e-ICALPROPERTY_FIRST_ENUM].str;
5050+}
5051+
5052+
5053+char *icalproperty_enum_to_string_r(int e)
5054+{
5055+       return icalmemory_strdup(icalproperty_enum_to_string(e));
5056+}
5057+
5058+
5059+int icalproperty_kind_and_string_to_enum(const int kind, const char* str)
5060+{
5061+    icalproperty_kind pkind;
5062+    int i;
5063+
5064+    icalerror_check_arg_rz(str!=0,"str")
5065+
5066+    if ((pkind = icalproperty_value_kind_to_kind(kind)) == ICAL_NO_PROPERTY)
5067+       return 0;
5068+
5069+    while(*str == ' '){
5070+       str++;
5071+    }
5072+
5073+    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
5074+       if (enum_map[i-ICALPROPERTY_FIRST_ENUM].prop == pkind)
5075+           break;
5076+    }
5077+    if (i == ICALPROPERTY_LAST_ENUM)
5078+           return 0;
5079+
5080+    for (; i != ICALPROPERTY_LAST_ENUM; i++) {
5081+       if ( strcasecmp(enum_map[i-ICALPROPERTY_FIRST_ENUM].str, str) == 0) {
5082+           return enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum;
5083+       }
5084+    }
5085+
5086+    return 0;
5087+}
5088+
5089+/** @deprecated please use icalproperty_kind_and_string_to_enum instead */
5090+int icalproperty_string_to_enum(const char* str)
5091+{
5092+    int i;
5093+
5094+    icalerror_check_arg_rz(str!=0,"str")
5095+
5096+    while(*str == ' '){
5097+       str++;
5098+    }
5099+
5100+    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
5101+       if ( strcasecmp(enum_map[i-ICALPROPERTY_FIRST_ENUM].str, str) == 0) {
5102+           return enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum;
5103+       }
5104+    }
5105+
5106+    return 0;
5107+}
5108+
5109+int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e)
5110+{
5111+    int i;
5112+
5113+
5114+    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
5115+        if(enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum == e &&
5116+           enum_map[i-ICALPROPERTY_FIRST_ENUM].prop == kind ){
5117+            return 1;
5118+        }
5119+    }
5120+
5121+    return 0;
5122+}
5123+
5124+
5125+const char* icalproperty_method_to_string(icalproperty_method method)
5126+{
5127+    icalerror_check_arg_rz(method >= ICAL_METHOD_X,"method");
5128+    icalerror_check_arg_rz(method <= ICAL_METHOD_NONE,"method");
5129+
5130+    return enum_map[method-ICALPROPERTY_FIRST_ENUM].str;
5131+}
5132+
5133+icalproperty_method icalproperty_string_to_method(const char* str)
5134+{
5135+    int i;
5136+
5137+    icalerror_check_arg_rx(str!=0,"str",ICAL_METHOD_NONE)
5138+
5139+    while(*str == ' '){
5140+       str++;
5141+    }
5142+
5143+    for (i=ICAL_METHOD_X-ICALPROPERTY_FIRST_ENUM;
5144+         i != ICAL_METHOD_NONE-ICALPROPERTY_FIRST_ENUM;
5145+         i++) {
5146+       if ( strcasecmp(enum_map[i].str, str) == 0) {
5147+           return (icalproperty_method)enum_map[i].prop_enum;
5148+       }
5149+    }
5150+
5151+    return ICAL_METHOD_NONE;
5152+}
5153+
5154+
5155+const char* icalenum_status_to_string(icalproperty_status status)
5156+{
5157+    icalerror_check_arg_rz(status >= ICAL_STATUS_X,"status");
5158+    icalerror_check_arg_rz(status <= ICAL_STATUS_NONE,"status");
5159+
5160+    return enum_map[status-ICALPROPERTY_FIRST_ENUM].str;
5161+}
5162+
5163+icalproperty_status icalenum_string_to_status(const char* str)
5164+{
5165+    int i;
5166+
5167+    icalerror_check_arg_rx(str!=0,"str",ICAL_STATUS_NONE)
5168+
5169+    while(*str == ' '){
5170+       str++;
5171+    }
5172+
5173+    for (i=ICAL_STATUS_X-ICALPROPERTY_FIRST_ENUM;
5174+         i != ICAL_STATUS_NONE-ICALPROPERTY_FIRST_ENUM;
5175+         i++) {
5176+       if ( strcasecmp(enum_map[i].str, str) == 0) {
5177+           return (icalproperty_status)enum_map[i].prop_enum;
5178+       }
5179+    }
5180+
5181+    return ICAL_STATUS_NONE;
5182+
5183+}
5184diff -Nurb libical-0.42.orig/src/libical/icalderivedproperty.h libical-0.42/src/libical/icalderivedproperty.h
5185--- libical-0.42.orig/src/libical/icalderivedproperty.h 1970-01-01 01:00:00.000000000 +0100
5186+++ libical-0.42/src/libical/icalderivedproperty.h      2009-01-13 13:31:50.000000000 +0100
5187@@ -0,0 +1,617 @@
5188+/* -*- Mode: C -*-
5189+  ======================================================================
5190+  FILE: icalderivedproperties.{c,h}
5191+  CREATOR: eric 09 May 1999
5192
5193+  $Id: icalderivedproperty.h.in,v 1.7 2007-04-30 13:57:48 artcancro Exp $
5194+   
5195+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
5196+ ======================================================================*/
5197+
5198+
5199+#ifndef ICALDERIVEDPROPERTY_H
5200+#define ICALDERIVEDPROPERTY_H
5201+
5202+#include <time.h>
5203+#include "icalparameter.h"
5204+#include "icalderivedvalue.h" 
5205+#include "icalrecur.h"
5206+
5207+typedef struct icalproperty_impl icalproperty;
5208+
5209+typedef enum icalproperty_kind {
5210+    ICAL_ANY_PROPERTY = 0,
5211+    ICAL_ACTION_PROPERTY,
5212+    ICAL_ALLOWCONFLICT_PROPERTY,
5213+    ICAL_ATTACH_PROPERTY,
5214+    ICAL_ATTENDEE_PROPERTY,
5215+    ICAL_CALID_PROPERTY,
5216+    ICAL_CALMASTER_PROPERTY,
5217+    ICAL_CALSCALE_PROPERTY,
5218+    ICAL_CAPVERSION_PROPERTY,
5219+    ICAL_CARLEVEL_PROPERTY,
5220+    ICAL_CARID_PROPERTY,
5221+    ICAL_CATEGORIES_PROPERTY,
5222+    ICAL_CLASS_PROPERTY,
5223+    ICAL_CMD_PROPERTY,
5224+    ICAL_COMMENT_PROPERTY,
5225+    ICAL_COMPLETED_PROPERTY,
5226+    ICAL_COMPONENTS_PROPERTY,
5227+    ICAL_CONTACT_PROPERTY,
5228+    ICAL_CREATED_PROPERTY,
5229+    ICAL_CSID_PROPERTY,
5230+    ICAL_DATEMAX_PROPERTY,
5231+    ICAL_DATEMIN_PROPERTY,
5232+    ICAL_DECREED_PROPERTY,
5233+    ICAL_DEFAULTCHARSET_PROPERTY,
5234+    ICAL_DEFAULTLOCALE_PROPERTY,
5235+    ICAL_DEFAULTTZID_PROPERTY,
5236+    ICAL_DEFAULTVCARS_PROPERTY,
5237+    ICAL_DENY_PROPERTY,
5238+    ICAL_DESCRIPTION_PROPERTY,
5239+    ICAL_DTEND_PROPERTY,
5240+    ICAL_DTSTAMP_PROPERTY,
5241+    ICAL_DTSTART_PROPERTY,
5242+    ICAL_DUE_PROPERTY,
5243+    ICAL_DURATION_PROPERTY,
5244+    ICAL_EXDATE_PROPERTY,
5245+    ICAL_EXPAND_PROPERTY,
5246+    ICAL_EXRULE_PROPERTY,
5247+    ICAL_FREEBUSY_PROPERTY,
5248+    ICAL_GEO_PROPERTY,
5249+    ICAL_GRANT_PROPERTY,
5250+    ICAL_ITIPVERSION_PROPERTY,
5251+    ICAL_LASTMODIFIED_PROPERTY,
5252+    ICAL_LOCATION_PROPERTY,
5253+    ICAL_MAXCOMPONENTSIZE_PROPERTY,
5254+    ICAL_MAXDATE_PROPERTY,
5255+    ICAL_MAXRESULTS_PROPERTY,
5256+    ICAL_MAXRESULTSSIZE_PROPERTY,
5257+    ICAL_METHOD_PROPERTY,
5258+    ICAL_MINDATE_PROPERTY,
5259+    ICAL_MULTIPART_PROPERTY,
5260+    ICAL_NAME_PROPERTY,
5261+    ICAL_ORGANIZER_PROPERTY,
5262+    ICAL_OWNER_PROPERTY,
5263+    ICAL_PERCENTCOMPLETE_PROPERTY,
5264+    ICAL_PERMISSION_PROPERTY,
5265+    ICAL_PRIORITY_PROPERTY,
5266+    ICAL_PRODID_PROPERTY,
5267+    ICAL_QUERY_PROPERTY,
5268+    ICAL_QUERYLEVEL_PROPERTY,
5269+    ICAL_QUERYID_PROPERTY,
5270+    ICAL_QUERYNAME_PROPERTY,
5271+    ICAL_RDATE_PROPERTY,
5272+    ICAL_RECURACCEPTED_PROPERTY,
5273+    ICAL_RECUREXPAND_PROPERTY,
5274+    ICAL_RECURLIMIT_PROPERTY,
5275+    ICAL_RECURRENCEID_PROPERTY,
5276+    ICAL_RELATEDTO_PROPERTY,
5277+    ICAL_RELCALID_PROPERTY,
5278+    ICAL_REPEAT_PROPERTY,
5279+    ICAL_REQUESTSTATUS_PROPERTY,
5280+    ICAL_RESOURCES_PROPERTY,
5281+    ICAL_RESTRICTION_PROPERTY,
5282+    ICAL_RRULE_PROPERTY,
5283+    ICAL_SCOPE_PROPERTY,
5284+    ICAL_SEQUENCE_PROPERTY,
5285+    ICAL_STATUS_PROPERTY,
5286+    ICAL_STORESEXPANDED_PROPERTY,
5287+    ICAL_SUMMARY_PROPERTY,
5288+    ICAL_TARGET_PROPERTY,
5289+    ICAL_TRANSP_PROPERTY,
5290+    ICAL_TRIGGER_PROPERTY,
5291+    ICAL_TZID_PROPERTY,
5292+    ICAL_TZNAME_PROPERTY,
5293+    ICAL_TZOFFSETFROM_PROPERTY,
5294+    ICAL_TZOFFSETTO_PROPERTY,
5295+    ICAL_TZURL_PROPERTY,
5296+    ICAL_UID_PROPERTY,
5297+    ICAL_URL_PROPERTY,
5298+    ICAL_VERSION_PROPERTY,
5299+    ICAL_X_PROPERTY,
5300+    ICAL_XLICCLASS_PROPERTY,
5301+    ICAL_XLICCLUSTERCOUNT_PROPERTY,
5302+    ICAL_XLICERROR_PROPERTY,
5303+    ICAL_XLICMIMECHARSET_PROPERTY,
5304+    ICAL_XLICMIMECID_PROPERTY,
5305+    ICAL_XLICMIMECONTENTTYPE_PROPERTY,
5306+    ICAL_XLICMIMEENCODING_PROPERTY,
5307+    ICAL_XLICMIMEFILENAME_PROPERTY,
5308+    ICAL_XLICMIMEOPTINFO_PROPERTY,
5309+    ICAL_NO_PROPERTY
5310+} icalproperty_kind;
5311+
5312+
5313+/* ACTION */
5314+icalproperty* icalproperty_new_action(enum icalproperty_action v);
5315+void icalproperty_set_action(icalproperty* prop, enum icalproperty_action v);
5316+enum icalproperty_action icalproperty_get_action(const icalproperty* prop);icalproperty* icalproperty_vanew_action(enum icalproperty_action v, ...);
5317+
5318+/* ALLOW-CONFLICT */
5319+icalproperty* icalproperty_new_allowconflict(const char* v);
5320+void icalproperty_set_allowconflict(icalproperty* prop, const char* v);
5321+const char* icalproperty_get_allowconflict(const icalproperty* prop);icalproperty* icalproperty_vanew_allowconflict(const char* v, ...);
5322+
5323+/* ATTACH */
5324+icalproperty* icalproperty_new_attach(icalattach * v);
5325+void icalproperty_set_attach(icalproperty* prop, icalattach * v);
5326+icalattach * icalproperty_get_attach(const icalproperty* prop);icalproperty* icalproperty_vanew_attach(icalattach * v, ...);
5327+
5328+/* ATTENDEE */
5329+icalproperty* icalproperty_new_attendee(const char* v);
5330+void icalproperty_set_attendee(icalproperty* prop, const char* v);
5331+const char* icalproperty_get_attendee(const icalproperty* prop);icalproperty* icalproperty_vanew_attendee(const char* v, ...);
5332+
5333+/* CALID */
5334+icalproperty* icalproperty_new_calid(const char* v);
5335+void icalproperty_set_calid(icalproperty* prop, const char* v);
5336+const char* icalproperty_get_calid(const icalproperty* prop);icalproperty* icalproperty_vanew_calid(const char* v, ...);
5337+
5338+/* CALMASTER */
5339+icalproperty* icalproperty_new_calmaster(const char* v);
5340+void icalproperty_set_calmaster(icalproperty* prop, const char* v);
5341+const char* icalproperty_get_calmaster(const icalproperty* prop);icalproperty* icalproperty_vanew_calmaster(const char* v, ...);
5342+
5343+/* CALSCALE */
5344+icalproperty* icalproperty_new_calscale(const char* v);
5345+void icalproperty_set_calscale(icalproperty* prop, const char* v);
5346+const char* icalproperty_get_calscale(const icalproperty* prop);icalproperty* icalproperty_vanew_calscale(const char* v, ...);
5347+
5348+/* CAP-VERSION */
5349+icalproperty* icalproperty_new_capversion(const char* v);
5350+void icalproperty_set_capversion(icalproperty* prop, const char* v);
5351+const char* icalproperty_get_capversion(const icalproperty* prop);icalproperty* icalproperty_vanew_capversion(const char* v, ...);
5352+
5353+/* CAR-LEVEL */
5354+icalproperty* icalproperty_new_carlevel(enum icalproperty_carlevel v);
5355+void icalproperty_set_carlevel(icalproperty* prop, enum icalproperty_carlevel v);
5356+enum icalproperty_carlevel icalproperty_get_carlevel(const icalproperty* prop);icalproperty* icalproperty_vanew_carlevel(enum icalproperty_carlevel v, ...);
5357+
5358+/* CARID */
5359+icalproperty* icalproperty_new_carid(const char* v);
5360+void icalproperty_set_carid(icalproperty* prop, const char* v);
5361+const char* icalproperty_get_carid(const icalproperty* prop);icalproperty* icalproperty_vanew_carid(const char* v, ...);
5362+
5363+/* CATEGORIES */
5364+icalproperty* icalproperty_new_categories(const char* v);
5365+void icalproperty_set_categories(icalproperty* prop, const char* v);
5366+const char* icalproperty_get_categories(const icalproperty* prop);icalproperty* icalproperty_vanew_categories(const char* v, ...);
5367+
5368+/* CLASS */
5369+icalproperty* icalproperty_new_class(enum icalproperty_class v);
5370+void icalproperty_set_class(icalproperty* prop, enum icalproperty_class v);
5371+enum icalproperty_class icalproperty_get_class(const icalproperty* prop);icalproperty* icalproperty_vanew_class(enum icalproperty_class v, ...);
5372+
5373+/* CMD */
5374+icalproperty* icalproperty_new_cmd(enum icalproperty_cmd v);
5375+void icalproperty_set_cmd(icalproperty* prop, enum icalproperty_cmd v);
5376+enum icalproperty_cmd icalproperty_get_cmd(const icalproperty* prop);icalproperty* icalproperty_vanew_cmd(enum icalproperty_cmd v, ...);
5377+
5378+/* COMMENT */
5379+icalproperty* icalproperty_new_comment(const char* v);
5380+void icalproperty_set_comment(icalproperty* prop, const char* v);
5381+const char* icalproperty_get_comment(const icalproperty* prop);icalproperty* icalproperty_vanew_comment(const char* v, ...);
5382+
5383+/* COMPLETED */
5384+icalproperty* icalproperty_new_completed(struct icaltimetype v);
5385+void icalproperty_set_completed(icalproperty* prop, struct icaltimetype v);
5386+struct icaltimetype icalproperty_get_completed(const icalproperty* prop);icalproperty* icalproperty_vanew_completed(struct icaltimetype v, ...);
5387+
5388+/* COMPONENTS */
5389+icalproperty* icalproperty_new_components(const char* v);
5390+void icalproperty_set_components(icalproperty* prop, const char* v);
5391+const char* icalproperty_get_components(const icalproperty* prop);icalproperty* icalproperty_vanew_components(const char* v, ...);
5392+
5393+/* CONTACT */
5394+icalproperty* icalproperty_new_contact(const char* v);
5395+void icalproperty_set_contact(icalproperty* prop, const char* v);
5396+const char* icalproperty_get_contact(const icalproperty* prop);icalproperty* icalproperty_vanew_contact(const char* v, ...);
5397+
5398+/* CREATED */
5399+icalproperty* icalproperty_new_created(struct icaltimetype v);
5400+void icalproperty_set_created(icalproperty* prop, struct icaltimetype v);
5401+struct icaltimetype icalproperty_get_created(const icalproperty* prop);icalproperty* icalproperty_vanew_created(struct icaltimetype v, ...);
5402+
5403+/* CSID */
5404+icalproperty* icalproperty_new_csid(const char* v);
5405+void icalproperty_set_csid(icalproperty* prop, const char* v);
5406+const char* icalproperty_get_csid(const icalproperty* prop);icalproperty* icalproperty_vanew_csid(const char* v, ...);
5407+
5408+/* DATE-MAX */
5409+icalproperty* icalproperty_new_datemax(struct icaltimetype v);
5410+void icalproperty_set_datemax(icalproperty* prop, struct icaltimetype v);
5411+struct icaltimetype icalproperty_get_datemax(const icalproperty* prop);icalproperty* icalproperty_vanew_datemax(struct icaltimetype v, ...);
5412+
5413+/* DATE-MIN */
5414+icalproperty* icalproperty_new_datemin(struct icaltimetype v);
5415+void icalproperty_set_datemin(icalproperty* prop, struct icaltimetype v);
5416+struct icaltimetype icalproperty_get_datemin(const icalproperty* prop);icalproperty* icalproperty_vanew_datemin(struct icaltimetype v, ...);
5417+
5418+/* DECREED */
5419+icalproperty* icalproperty_new_decreed(const char* v);
5420+void icalproperty_set_decreed(icalproperty* prop, const char* v);
5421+const char* icalproperty_get_decreed(const icalproperty* prop);icalproperty* icalproperty_vanew_decreed(const char* v, ...);
5422+
5423+/* DEFAULT-CHARSET */
5424+icalproperty* icalproperty_new_defaultcharset(const char* v);
5425+void icalproperty_set_defaultcharset(icalproperty* prop, const char* v);
5426+const char* icalproperty_get_defaultcharset(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultcharset(const char* v, ...);
5427+
5428+/* DEFAULT-LOCALE */
5429+icalproperty* icalproperty_new_defaultlocale(const char* v);
5430+void icalproperty_set_defaultlocale(icalproperty* prop, const char* v);
5431+const char* icalproperty_get_defaultlocale(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultlocale(const char* v, ...);
5432+
5433+/* DEFAULT-TZID */
5434+icalproperty* icalproperty_new_defaulttzid(const char* v);
5435+void icalproperty_set_defaulttzid(icalproperty* prop, const char* v);
5436+const char* icalproperty_get_defaulttzid(const icalproperty* prop);icalproperty* icalproperty_vanew_defaulttzid(const char* v, ...);
5437+
5438+/* DEFAULT-VCARS */
5439+icalproperty* icalproperty_new_defaultvcars(const char* v);
5440+void icalproperty_set_defaultvcars(icalproperty* prop, const char* v);
5441+const char* icalproperty_get_defaultvcars(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultvcars(const char* v, ...);
5442+
5443+/* DENY */
5444+icalproperty* icalproperty_new_deny(const char* v);
5445+void icalproperty_set_deny(icalproperty* prop, const char* v);
5446+const char* icalproperty_get_deny(const icalproperty* prop);icalproperty* icalproperty_vanew_deny(const char* v, ...);
5447+
5448+/* DESCRIPTION */
5449+icalproperty* icalproperty_new_description(const char* v);
5450+void icalproperty_set_description(icalproperty* prop, const char* v);
5451+const char* icalproperty_get_description(const icalproperty* prop);icalproperty* icalproperty_vanew_description(const char* v, ...);
5452+
5453+/* DTEND */
5454+icalproperty* icalproperty_new_dtend(struct icaltimetype v);
5455+void icalproperty_set_dtend(icalproperty* prop, struct icaltimetype v);
5456+struct icaltimetype icalproperty_get_dtend(const icalproperty* prop);icalproperty* icalproperty_vanew_dtend(struct icaltimetype v, ...);
5457+
5458+/* DTSTAMP */
5459+icalproperty* icalproperty_new_dtstamp(struct icaltimetype v);
5460+void icalproperty_set_dtstamp(icalproperty* prop, struct icaltimetype v);
5461+struct icaltimetype icalproperty_get_dtstamp(const icalproperty* prop);icalproperty* icalproperty_vanew_dtstamp(struct icaltimetype v, ...);
5462+
5463+/* DTSTART */
5464+icalproperty* icalproperty_new_dtstart(struct icaltimetype v);
5465+void icalproperty_set_dtstart(icalproperty* prop, struct icaltimetype v);
5466+struct icaltimetype icalproperty_get_dtstart(const icalproperty* prop);icalproperty* icalproperty_vanew_dtstart(struct icaltimetype v, ...);
5467+
5468+/* DUE */
5469+icalproperty* icalproperty_new_due(struct icaltimetype v);
5470+void icalproperty_set_due(icalproperty* prop, struct icaltimetype v);
5471+struct icaltimetype icalproperty_get_due(const icalproperty* prop);icalproperty* icalproperty_vanew_due(struct icaltimetype v, ...);
5472+
5473+/* DURATION */
5474+icalproperty* icalproperty_new_duration(struct icaldurationtype v);
5475+void icalproperty_set_duration(icalproperty* prop, struct icaldurationtype v);
5476+struct icaldurationtype icalproperty_get_duration(const icalproperty* prop);icalproperty* icalproperty_vanew_duration(struct icaldurationtype v, ...);
5477+
5478+/* EXDATE */
5479+icalproperty* icalproperty_new_exdate(struct icaltimetype v);
5480+void icalproperty_set_exdate(icalproperty* prop, struct icaltimetype v);
5481+struct icaltimetype icalproperty_get_exdate(const icalproperty* prop);icalproperty* icalproperty_vanew_exdate(struct icaltimetype v, ...);
5482+
5483+/* EXPAND */
5484+icalproperty* icalproperty_new_expand(int v);
5485+void icalproperty_set_expand(icalproperty* prop, int v);
5486+int icalproperty_get_expand(const icalproperty* prop);icalproperty* icalproperty_vanew_expand(int v, ...);
5487+
5488+/* EXRULE */
5489+icalproperty* icalproperty_new_exrule(struct icalrecurrencetype v);
5490+void icalproperty_set_exrule(icalproperty* prop, struct icalrecurrencetype v);
5491+struct icalrecurrencetype icalproperty_get_exrule(const icalproperty* prop);icalproperty* icalproperty_vanew_exrule(struct icalrecurrencetype v, ...);
5492+
5493+/* FREEBUSY */
5494+icalproperty* icalproperty_new_freebusy(struct icalperiodtype v);
5495+void icalproperty_set_freebusy(icalproperty* prop, struct icalperiodtype v);
5496+struct icalperiodtype icalproperty_get_freebusy(const icalproperty* prop);icalproperty* icalproperty_vanew_freebusy(struct icalperiodtype v, ...);
5497+
5498+/* GEO */
5499+icalproperty* icalproperty_new_geo(struct icalgeotype v);
5500+void icalproperty_set_geo(icalproperty* prop, struct icalgeotype v);
5501+struct icalgeotype icalproperty_get_geo(const icalproperty* prop);icalproperty* icalproperty_vanew_geo(struct icalgeotype v, ...);
5502+
5503+/* GRANT */
5504+icalproperty* icalproperty_new_grant(const char* v);
5505+void icalproperty_set_grant(icalproperty* prop, const char* v);
5506+const char* icalproperty_get_grant(const icalproperty* prop);icalproperty* icalproperty_vanew_grant(const char* v, ...);
5507+
5508+/* ITIP-VERSION */
5509+icalproperty* icalproperty_new_itipversion(const char* v);
5510+void icalproperty_set_itipversion(icalproperty* prop, const char* v);
5511+const char* icalproperty_get_itipversion(const icalproperty* prop);icalproperty* icalproperty_vanew_itipversion(const char* v, ...);
5512+
5513+/* LAST-MODIFIED */
5514+icalproperty* icalproperty_new_lastmodified(struct icaltimetype v);
5515+void icalproperty_set_lastmodified(icalproperty* prop, struct icaltimetype v);
5516+struct icaltimetype icalproperty_get_lastmodified(const icalproperty* prop);icalproperty* icalproperty_vanew_lastmodified(struct icaltimetype v, ...);
5517+
5518+/* LOCATION */
5519+icalproperty* icalproperty_new_location(const char* v);
5520+void icalproperty_set_location(icalproperty* prop, const char* v);
5521+const char* icalproperty_get_location(const icalproperty* prop);icalproperty* icalproperty_vanew_location(const char* v, ...);
5522+
5523+/* MAX-COMPONENT-SIZE */
5524+icalproperty* icalproperty_new_maxcomponentsize(int v);
5525+void icalproperty_set_maxcomponentsize(icalproperty* prop, int v);
5526+int icalproperty_get_maxcomponentsize(const icalproperty* prop);icalproperty* icalproperty_vanew_maxcomponentsize(int v, ...);
5527+
5528+/* MAXDATE */
5529+icalproperty* icalproperty_new_maxdate(struct icaltimetype v);
5530+void icalproperty_set_maxdate(icalproperty* prop, struct icaltimetype v);
5531+struct icaltimetype icalproperty_get_maxdate(const icalproperty* prop);icalproperty* icalproperty_vanew_maxdate(struct icaltimetype v, ...);
5532+
5533+/* MAXRESULTS */
5534+icalproperty* icalproperty_new_maxresults(int v);
5535+void icalproperty_set_maxresults(icalproperty* prop, int v);
5536+int icalproperty_get_maxresults(const icalproperty* prop);icalproperty* icalproperty_vanew_maxresults(int v, ...);
5537+
5538+/* MAXRESULTSSIZE */
5539+icalproperty* icalproperty_new_maxresultssize(int v);
5540+void icalproperty_set_maxresultssize(icalproperty* prop, int v);
5541+int icalproperty_get_maxresultssize(const icalproperty* prop);icalproperty* icalproperty_vanew_maxresultssize(int v, ...);
5542+
5543+/* METHOD */
5544+icalproperty* icalproperty_new_method(enum icalproperty_method v);
5545+void icalproperty_set_method(icalproperty* prop, enum icalproperty_method v);
5546+enum icalproperty_method icalproperty_get_method(const icalproperty* prop);icalproperty* icalproperty_vanew_method(enum icalproperty_method v, ...);
5547+
5548+/* MINDATE */
5549+icalproperty* icalproperty_new_mindate(struct icaltimetype v);
5550+void icalproperty_set_mindate(icalproperty* prop, struct icaltimetype v);
5551+struct icaltimetype icalproperty_get_mindate(const icalproperty* prop);icalproperty* icalproperty_vanew_mindate(struct icaltimetype v, ...);
5552+
5553+/* MULTIPART */
5554+icalproperty* icalproperty_new_multipart(const char* v);
5555+void icalproperty_set_multipart(icalproperty* prop, const char* v);
5556+const char* icalproperty_get_multipart(const icalproperty* prop);icalproperty* icalproperty_vanew_multipart(const char* v, ...);
5557+
5558+/* NAME */
5559+icalproperty* icalproperty_new_name(const char* v);
5560+void icalproperty_set_name(icalproperty* prop, const char* v);
5561+const char* icalproperty_get_name(const icalproperty* prop);icalproperty* icalproperty_vanew_name(const char* v, ...);
5562+
5563+/* ORGANIZER */
5564+icalproperty* icalproperty_new_organizer(const char* v);
5565+void icalproperty_set_organizer(icalproperty* prop, const char* v);
5566+const char* icalproperty_get_organizer(const icalproperty* prop);icalproperty* icalproperty_vanew_organizer(const char* v, ...);
5567+
5568+/* OWNER */
5569+icalproperty* icalproperty_new_owner(const char* v);
5570+void icalproperty_set_owner(icalproperty* prop, const char* v);
5571+const char* icalproperty_get_owner(const icalproperty* prop);icalproperty* icalproperty_vanew_owner(const char* v, ...);
5572+
5573+/* PERCENT-COMPLETE */
5574+icalproperty* icalproperty_new_percentcomplete(int v);
5575+void icalproperty_set_percentcomplete(icalproperty* prop, int v);
5576+int icalproperty_get_percentcomplete(const icalproperty* prop);icalproperty* icalproperty_vanew_percentcomplete(int v, ...);
5577+
5578+/* PERMISSION */
5579+icalproperty* icalproperty_new_permission(const char* v);
5580+void icalproperty_set_permission(icalproperty* prop, const char* v);
5581+const char* icalproperty_get_permission(const icalproperty* prop);icalproperty* icalproperty_vanew_permission(const char* v, ...);
5582+
5583+/* PRIORITY */
5584+icalproperty* icalproperty_new_priority(int v);
5585+void icalproperty_set_priority(icalproperty* prop, int v);
5586+int icalproperty_get_priority(const icalproperty* prop);icalproperty* icalproperty_vanew_priority(int v, ...);
5587+
5588+/* PRODID */
5589+icalproperty* icalproperty_new_prodid(const char* v);
5590+void icalproperty_set_prodid(icalproperty* prop, const char* v);
5591+const char* icalproperty_get_prodid(const icalproperty* prop);icalproperty* icalproperty_vanew_prodid(const char* v, ...);
5592+
5593+/* QUERY */
5594+icalproperty* icalproperty_new_query(const char* v);
5595+void icalproperty_set_query(icalproperty* prop, const char* v);
5596+const char* icalproperty_get_query(const icalproperty* prop);icalproperty* icalproperty_vanew_query(const char* v, ...);
5597+
5598+/* QUERY-LEVEL */
5599+icalproperty* icalproperty_new_querylevel(enum icalproperty_querylevel v);
5600+void icalproperty_set_querylevel(icalproperty* prop, enum icalproperty_querylevel v);
5601+enum icalproperty_querylevel icalproperty_get_querylevel(const icalproperty* prop);icalproperty* icalproperty_vanew_querylevel(enum icalproperty_querylevel v, ...);
5602+
5603+/* QUERYID */
5604+icalproperty* icalproperty_new_queryid(const char* v);
5605+void icalproperty_set_queryid(icalproperty* prop, const char* v);
5606+const char* icalproperty_get_queryid(const icalproperty* prop);icalproperty* icalproperty_vanew_queryid(const char* v, ...);
5607+
5608+/* QUERYNAME */
5609+icalproperty* icalproperty_new_queryname(const char* v);
5610+void icalproperty_set_queryname(icalproperty* prop, const char* v);
5611+const char* icalproperty_get_queryname(const icalproperty* prop);icalproperty* icalproperty_vanew_queryname(const char* v, ...);
5612+
5613+/* RDATE */
5614+icalproperty* icalproperty_new_rdate(struct icaldatetimeperiodtype v);
5615+void icalproperty_set_rdate(icalproperty* prop, struct icaldatetimeperiodtype v);
5616+struct icaldatetimeperiodtype icalproperty_get_rdate(const icalproperty* prop);icalproperty* icalproperty_vanew_rdate(struct icaldatetimeperiodtype v, ...);
5617+
5618+/* RECUR-ACCEPTED */
5619+icalproperty* icalproperty_new_recuraccepted(const char* v);
5620+void icalproperty_set_recuraccepted(icalproperty* prop, const char* v);
5621+const char* icalproperty_get_recuraccepted(const icalproperty* prop);icalproperty* icalproperty_vanew_recuraccepted(const char* v, ...);
5622+
5623+/* RECUR-EXPAND */
5624+icalproperty* icalproperty_new_recurexpand(const char* v);
5625+void icalproperty_set_recurexpand(icalproperty* prop, const char* v);
5626+const char* icalproperty_get_recurexpand(const icalproperty* prop);icalproperty* icalproperty_vanew_recurexpand(const char* v, ...);
5627+
5628+/* RECUR-LIMIT */
5629+icalproperty* icalproperty_new_recurlimit(const char* v);
5630+void icalproperty_set_recurlimit(icalproperty* prop, const char* v);
5631+const char* icalproperty_get_recurlimit(const icalproperty* prop);icalproperty* icalproperty_vanew_recurlimit(const char* v, ...);
5632+
5633+/* RECURRENCE-ID */
5634+icalproperty* icalproperty_new_recurrenceid(struct icaltimetype v);
5635+void icalproperty_set_recurrenceid(icalproperty* prop, struct icaltimetype v);
5636+struct icaltimetype icalproperty_get_recurrenceid(const icalproperty* prop);icalproperty* icalproperty_vanew_recurrenceid(struct icaltimetype v, ...);
5637+
5638+/* RELATED-TO */
5639+icalproperty* icalproperty_new_relatedto(const char* v);
5640+void icalproperty_set_relatedto(icalproperty* prop, const char* v);
5641+const char* icalproperty_get_relatedto(const icalproperty* prop);icalproperty* icalproperty_vanew_relatedto(const char* v, ...);
5642+
5643+/* RELCALID */
5644+icalproperty* icalproperty_new_relcalid(const char* v);
5645+void icalproperty_set_relcalid(icalproperty* prop, const char* v);
5646+const char* icalproperty_get_relcalid(const icalproperty* prop);icalproperty* icalproperty_vanew_relcalid(const char* v, ...);
5647+
5648+/* REPEAT */
5649+icalproperty* icalproperty_new_repeat(int v);
5650+void icalproperty_set_repeat(icalproperty* prop, int v);
5651+int icalproperty_get_repeat(const icalproperty* prop);icalproperty* icalproperty_vanew_repeat(int v, ...);
5652+
5653+/* REQUEST-STATUS */
5654+icalproperty* icalproperty_new_requeststatus(struct icalreqstattype v);
5655+void icalproperty_set_requeststatus(icalproperty* prop, struct icalreqstattype v);
5656+struct icalreqstattype icalproperty_get_requeststatus(const icalproperty* prop);icalproperty* icalproperty_vanew_requeststatus(struct icalreqstattype v, ...);
5657+
5658+/* RESOURCES */
5659+icalproperty* icalproperty_new_resources(const char* v);
5660+void icalproperty_set_resources(icalproperty* prop, const char* v);
5661+const char* icalproperty_get_resources(const icalproperty* prop);icalproperty* icalproperty_vanew_resources(const char* v, ...);
5662+
5663+/* RESTRICTION */
5664+icalproperty* icalproperty_new_restriction(const char* v);
5665+void icalproperty_set_restriction(icalproperty* prop, const char* v);
5666+const char* icalproperty_get_restriction(const icalproperty* prop);icalproperty* icalproperty_vanew_restriction(const char* v, ...);
5667+
5668+/* RRULE */
5669+icalproperty* icalproperty_new_rrule(struct icalrecurrencetype v);
5670+void icalproperty_set_rrule(icalproperty* prop, struct icalrecurrencetype v);
5671+struct icalrecurrencetype icalproperty_get_rrule(const icalproperty* prop);icalproperty* icalproperty_vanew_rrule(struct icalrecurrencetype v, ...);
5672+
5673+/* SCOPE */
5674+icalproperty* icalproperty_new_scope(const char* v);
5675+void icalproperty_set_scope(icalproperty* prop, const char* v);
5676+const char* icalproperty_get_scope(const icalproperty* prop);icalproperty* icalproperty_vanew_scope(const char* v, ...);
5677+
5678+/* SEQUENCE */
5679+icalproperty* icalproperty_new_sequence(int v);
5680+void icalproperty_set_sequence(icalproperty* prop, int v);
5681+int icalproperty_get_sequence(const icalproperty* prop);icalproperty* icalproperty_vanew_sequence(int v, ...);
5682+
5683+/* STATUS */
5684+icalproperty* icalproperty_new_status(enum icalproperty_status v);
5685+void icalproperty_set_status(icalproperty* prop, enum icalproperty_status v);
5686+enum icalproperty_status icalproperty_get_status(const icalproperty* prop);icalproperty* icalproperty_vanew_status(enum icalproperty_status v, ...);
5687+
5688+/* STORES-EXPANDED */
5689+icalproperty* icalproperty_new_storesexpanded(const char* v);
5690+void icalproperty_set_storesexpanded(icalproperty* prop, const char* v);
5691+const char* icalproperty_get_storesexpanded(const icalproperty* prop);icalproperty* icalproperty_vanew_storesexpanded(const char* v, ...);
5692+
5693+/* SUMMARY */
5694+icalproperty* icalproperty_new_summary(const char* v);
5695+void icalproperty_set_summary(icalproperty* prop, const char* v);
5696+const char* icalproperty_get_summary(const icalproperty* prop);icalproperty* icalproperty_vanew_summary(const char* v, ...);
5697+
5698+/* TARGET */
5699+icalproperty* icalproperty_new_target(const char* v);
5700+void icalproperty_set_target(icalproperty* prop, const char* v);
5701+const char* icalproperty_get_target(const icalproperty* prop);icalproperty* icalproperty_vanew_target(const char* v, ...);
5702+
5703+/* TRANSP */
5704+icalproperty* icalproperty_new_transp(enum icalproperty_transp v);
5705+void icalproperty_set_transp(icalproperty* prop, enum icalproperty_transp v);
5706+enum icalproperty_transp icalproperty_get_transp(const icalproperty* prop);icalproperty* icalproperty_vanew_transp(enum icalproperty_transp v, ...);
5707+
5708+/* TRIGGER */
5709+icalproperty* icalproperty_new_trigger(struct icaltriggertype v);
5710+void icalproperty_set_trigger(icalproperty* prop, struct icaltriggertype v);
5711+struct icaltriggertype icalproperty_get_trigger(const icalproperty* prop);icalproperty* icalproperty_vanew_trigger(struct icaltriggertype v, ...);
5712+
5713+/* TZID */
5714+icalproperty* icalproperty_new_tzid(const char* v);
5715+void icalproperty_set_tzid(icalproperty* prop, const char* v);
5716+const char* icalproperty_get_tzid(const icalproperty* prop);icalproperty* icalproperty_vanew_tzid(const char* v, ...);
5717+
5718+/* TZNAME */
5719+icalproperty* icalproperty_new_tzname(const char* v);
5720+void icalproperty_set_tzname(icalproperty* prop, const char* v);
5721+const char* icalproperty_get_tzname(const icalproperty* prop);icalproperty* icalproperty_vanew_tzname(const char* v, ...);
5722+
5723+/* TZOFFSETFROM */
5724+icalproperty* icalproperty_new_tzoffsetfrom(int v);
5725+void icalproperty_set_tzoffsetfrom(icalproperty* prop, int v);
5726+int icalproperty_get_tzoffsetfrom(const icalproperty* prop);icalproperty* icalproperty_vanew_tzoffsetfrom(int v, ...);
5727+
5728+/* TZOFFSETTO */
5729+icalproperty* icalproperty_new_tzoffsetto(int v);
5730+void icalproperty_set_tzoffsetto(icalproperty* prop, int v);
5731+int icalproperty_get_tzoffsetto(const icalproperty* prop);icalproperty* icalproperty_vanew_tzoffsetto(int v, ...);
5732+
5733+/* TZURL */
5734+icalproperty* icalproperty_new_tzurl(const char* v);
5735+void icalproperty_set_tzurl(icalproperty* prop, const char* v);
5736+const char* icalproperty_get_tzurl(const icalproperty* prop);icalproperty* icalproperty_vanew_tzurl(const char* v, ...);
5737+
5738+/* UID */
5739+icalproperty* icalproperty_new_uid(const char* v);
5740+void icalproperty_set_uid(icalproperty* prop, const char* v);
5741+const char* icalproperty_get_uid(const icalproperty* prop);icalproperty* icalproperty_vanew_uid(const char* v, ...);
5742+
5743+/* URL */
5744+icalproperty* icalproperty_new_url(const char* v);
5745+void icalproperty_set_url(icalproperty* prop, const char* v);
5746+const char* icalproperty_get_url(const icalproperty* prop);icalproperty* icalproperty_vanew_url(const char* v, ...);
5747+
5748+/* VERSION */
5749+icalproperty* icalproperty_new_version(const char* v);
5750+void icalproperty_set_version(icalproperty* prop, const char* v);
5751+const char* icalproperty_get_version(const icalproperty* prop);icalproperty* icalproperty_vanew_version(const char* v, ...);
5752+
5753+/* X */
5754+icalproperty* icalproperty_new_x(const char* v);
5755+void icalproperty_set_x(icalproperty* prop, const char* v);
5756+const char* icalproperty_get_x(const icalproperty* prop);icalproperty* icalproperty_vanew_x(const char* v, ...);
5757+
5758+/* X-LIC-CLASS */
5759+icalproperty* icalproperty_new_xlicclass(enum icalproperty_xlicclass v);
5760+void icalproperty_set_xlicclass(icalproperty* prop, enum icalproperty_xlicclass v);
5761+enum icalproperty_xlicclass icalproperty_get_xlicclass(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicclass(enum icalproperty_xlicclass v, ...);
5762+
5763+/* X-LIC-CLUSTERCOUNT */
5764+icalproperty* icalproperty_new_xlicclustercount(const char* v);
5765+void icalproperty_set_xlicclustercount(icalproperty* prop, const char* v);
5766+const char* icalproperty_get_xlicclustercount(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicclustercount(const char* v, ...);
5767+
5768+/* X-LIC-ERROR */
5769+icalproperty* icalproperty_new_xlicerror(const char* v);
5770+void icalproperty_set_xlicerror(icalproperty* prop, const char* v);
5771+const char* icalproperty_get_xlicerror(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicerror(const char* v, ...);
5772+
5773+/* X-LIC-MIMECHARSET */
5774+icalproperty* icalproperty_new_xlicmimecharset(const char* v);
5775+void icalproperty_set_xlicmimecharset(icalproperty* prop, const char* v);
5776+const char* icalproperty_get_xlicmimecharset(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecharset(const char* v, ...);
5777+
5778+/* X-LIC-MIMECID */
5779+icalproperty* icalproperty_new_xlicmimecid(const char* v);
5780+void icalproperty_set_xlicmimecid(icalproperty* prop, const char* v);
5781+const char* icalproperty_get_xlicmimecid(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecid(const char* v, ...);
5782+
5783+/* X-LIC-MIMECONTENTTYPE */
5784+icalproperty* icalproperty_new_xlicmimecontenttype(const char* v);
5785+void icalproperty_set_xlicmimecontenttype(icalproperty* prop, const char* v);
5786+const char* icalproperty_get_xlicmimecontenttype(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecontenttype(const char* v, ...);
5787+
5788+/* X-LIC-MIMEENCODING */
5789+icalproperty* icalproperty_new_xlicmimeencoding(const char* v);
5790+void icalproperty_set_xlicmimeencoding(icalproperty* prop, const char* v);
5791+const char* icalproperty_get_xlicmimeencoding(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimeencoding(const char* v, ...);
5792+
5793+/* X-LIC-MIMEFILENAME */
5794+icalproperty* icalproperty_new_xlicmimefilename(const char* v);
5795+void icalproperty_set_xlicmimefilename(icalproperty* prop, const char* v);
5796+const char* icalproperty_get_xlicmimefilename(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimefilename(const char* v, ...);
5797+
5798+/* X-LIC-MIMEOPTINFO */
5799+icalproperty* icalproperty_new_xlicmimeoptinfo(const char* v);
5800+void icalproperty_set_xlicmimeoptinfo(icalproperty* prop, const char* v);
5801+const char* icalproperty_get_xlicmimeoptinfo(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimeoptinfo(const char* v, ...);
5802+
5803+
5804+#endif /*ICALPROPERTY_H*/
5805diff -Nurb libical-0.42.orig/src/libical/icalderivedvalue.c libical-0.42/src/libical/icalderivedvalue.c
5806--- libical-0.42.orig/src/libical/icalderivedvalue.c    1970-01-01 01:00:00.000000000 +0100
5807+++ libical-0.42/src/libical/icalderivedvalue.c 2009-01-13 13:31:50.000000000 +0100
5808@@ -0,0 +1,1095 @@
5809+/* -*- Mode: C -*- */
5810+/*======================================================================
5811+  FILE: icalvalue.c
5812+  CREATOR: eric 02 May 1999
5813
5814+  $Id: icalderivedvalue.c.in,v 1.15 2007-04-30 13:57:48 artcancro Exp $
5815+
5816+
5817+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
5818+
5819+ This program is free software; you can redistribute it and/or modify
5820+ it under the terms of either:
5821+
5822+    The LGPL as published by the Free Software Foundation, version
5823+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
5824+
5825+  Or:
5826+
5827+    The Mozilla Public License Version 1.0. You may obtain a copy of
5828+    the License at http://www.mozilla.org/MPL/
5829+
5830+  The original code is icalvalue.c
5831+
5832+  Contributions from:
5833+     Graham Davison (g.m.davison@computer.org)
5834+
5835+
5836+======================================================================*/
5837+
5838+#ifdef HAVE_CONFIG_H
5839+#include <config.h>
5840+#endif
5841+
5842+#include "icalerror.h"
5843+#include "icalmemory.h"
5844+#include "icalparser.h"
5845+#include "icalenums.h"
5846+
5847+#include "icalvalueimpl.h"
5848+
5849+#include <stdlib.h> /* for malloc */
5850+#include <stdio.h> /* for snprintf */
5851+#include <string.h> /* For memset, others */
5852+#include <stddef.h> /* For offsetof() macro */
5853+#include <errno.h>
5854+#include <time.h> /* for mktime */
5855+#include <stdlib.h> /* for atoi and atof */
5856+#include <limits.h> /* for SHRT_MAX */
5857+       
5858+#ifdef WIN32
5859+#define strcasecmp      stricmp
5860+#endif
5861+
5862+struct icalvalue_impl*  icalvalue_new_impl(icalvalue_kind kind);
5863+
5864+/* This map associates each of the value types with its string
5865+   representation */
5866+struct icalvalue_kind_map {
5867+       icalvalue_kind kind;
5868+       char name[20];
5869+};
5870+
5871+static const struct icalvalue_kind_map value_map[31]={
5872+    {ICAL_QUERY_VALUE,"QUERY"},
5873+    {ICAL_DATE_VALUE,"DATE"},
5874+    {ICAL_ATTACH_VALUE,"ATTACH"},
5875+    {ICAL_GEO_VALUE,"GEO"},
5876+    {ICAL_STATUS_VALUE,"STATUS"},
5877+    {ICAL_TRANSP_VALUE,"TRANSP"},
5878+    {ICAL_STRING_VALUE,"STRING"},
5879+    {ICAL_TEXT_VALUE,"TEXT"},
5880+    {ICAL_REQUESTSTATUS_VALUE,"REQUEST-STATUS"},
5881+    {ICAL_CMD_VALUE,"CMD"},
5882+    {ICAL_BINARY_VALUE,"BINARY"},
5883+    {ICAL_QUERYLEVEL_VALUE,"QUERY-LEVEL"},
5884+    {ICAL_PERIOD_VALUE,"PERIOD"},
5885+    {ICAL_FLOAT_VALUE,"FLOAT"},
5886+    {ICAL_DATETIMEPERIOD_VALUE,"DATE-TIME-PERIOD"},
5887+    {ICAL_CARLEVEL_VALUE,"CAR-LEVEL"},
5888+    {ICAL_INTEGER_VALUE,"INTEGER"},
5889+    {ICAL_CLASS_VALUE,"CLASS"},
5890+    {ICAL_URI_VALUE,"URI"},
5891+    {ICAL_DURATION_VALUE,"DURATION"},
5892+    {ICAL_BOOLEAN_VALUE,"BOOLEAN"},
5893+    {ICAL_X_VALUE,"X"},
5894+    {ICAL_CALADDRESS_VALUE,"CAL-ADDRESS"},
5895+    {ICAL_TRIGGER_VALUE,"TRIGGER"},
5896+    {ICAL_XLICCLASS_VALUE,"X-LIC-CLASS"},
5897+    {ICAL_RECUR_VALUE,"RECUR"},
5898+    {ICAL_ACTION_VALUE,"ACTION"},
5899+    {ICAL_DATETIME_VALUE,"DATE-TIME"},
5900+    {ICAL_UTCOFFSET_VALUE,"UTC-OFFSET"},
5901+    {ICAL_METHOD_VALUE,"METHOD"},
5902+    {ICAL_NO_VALUE,""}
5903+};
5904+
5905+
5906+icalvalue* icalvalue_new_query (const char* v){
5907+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_QUERY_VALUE);
5908+   icalerror_check_arg_rz( (v!=0),"v");
5909+
5910+   icalvalue_set_query((icalvalue*)impl,v);
5911+   return (icalvalue*)impl;
5912+}
5913+void icalvalue_set_query(icalvalue* value, const char* v) {
5914+    struct icalvalue_impl* impl;
5915+    icalerror_check_arg_rv( (value!=0),"value");
5916+    icalerror_check_arg_rv( (v!=0),"v");
5917+
5918+    icalerror_check_value_type(value, ICAL_QUERY_VALUE);
5919+    impl = (struct icalvalue_impl*)value;
5920+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
5921+
5922+
5923+    impl->data.v_string = icalmemory_strdup(v);
5924+
5925+    if (impl->data.v_string == 0){
5926+      errno = ENOMEM;
5927+    }
5928+
5929+
5930+    icalvalue_reset_kind(impl);
5931+}
5932+const char* icalvalue_get_query (const icalvalue* value) {
5933+
5934+    icalerror_check_arg_rz ((value!=0),"value");
5935+    icalerror_check_value_type (value, ICAL_QUERY_VALUE);
5936+    return ((struct icalvalue_impl*)value)->data.v_string;
5937+}
5938+
5939+
5940+
5941+icalvalue* icalvalue_new_date (struct icaltimetype v){
5942+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATE_VALUE);
5943+   
5944+   icalvalue_set_date((icalvalue*)impl,v);
5945+   return (icalvalue*)impl;
5946+}
5947+void icalvalue_set_date(icalvalue* value, struct icaltimetype v) {
5948+    struct icalvalue_impl* impl;
5949+    icalerror_check_arg_rv( (value!=0),"value");
5950+   
5951+    icalerror_check_value_type(value, ICAL_DATE_VALUE);
5952+    impl = (struct icalvalue_impl*)value;
5953+
5954+
5955+    impl->data.v_time = v;
5956+
5957+    icalvalue_reset_kind(impl);
5958+}
5959+struct icaltimetype icalvalue_get_date (const icalvalue* value) {
5960+
5961+    icalerror_check_arg ((value!=0),"value");
5962+    icalerror_check_value_type (value, ICAL_DATE_VALUE);
5963+    return ((struct icalvalue_impl*)value)->data.v_time;
5964+}
5965+
5966+
5967+
5968+icalvalue* icalvalue_new_geo (struct icalgeotype v){
5969+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_GEO_VALUE);
5970+   
5971+   icalvalue_set_geo((icalvalue*)impl,v);
5972+   return (icalvalue*)impl;
5973+}
5974+void icalvalue_set_geo(icalvalue* value, struct icalgeotype v) {
5975+    struct icalvalue_impl* impl;
5976+    icalerror_check_arg_rv( (value!=0),"value");
5977+   
5978+    icalerror_check_value_type(value, ICAL_GEO_VALUE);
5979+    impl = (struct icalvalue_impl*)value;
5980+
5981+
5982+    impl->data.v_geo = v;
5983+
5984+    icalvalue_reset_kind(impl);
5985+}
5986+struct icalgeotype icalvalue_get_geo (const icalvalue* value) {
5987+
5988+    icalerror_check_arg ((value!=0),"value");
5989+    icalerror_check_value_type (value, ICAL_GEO_VALUE);
5990+    return ((struct icalvalue_impl*)value)->data.v_geo;
5991+}
5992+
5993+
5994+
5995+icalvalue* icalvalue_new_status (enum icalproperty_status v){
5996+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_STATUS_VALUE);
5997+   
5998+   icalvalue_set_status((icalvalue*)impl,v);
5999+   return (icalvalue*)impl;
6000+}
6001+void icalvalue_set_status(icalvalue* value, enum icalproperty_status v) {
6002+    struct icalvalue_impl* impl;
6003+    icalerror_check_arg_rv( (value!=0),"value");
6004+   
6005+    icalerror_check_value_type(value, ICAL_STATUS_VALUE);
6006+    impl = (struct icalvalue_impl*)value;
6007+
6008+
6009+    impl->data.v_enum = v;
6010+
6011+    icalvalue_reset_kind(impl);
6012+}
6013+enum icalproperty_status icalvalue_get_status (const icalvalue* value) {
6014+
6015+    icalerror_check_arg ((value!=0),"value");
6016+    icalerror_check_value_type (value, ICAL_STATUS_VALUE);
6017+    return ((struct icalvalue_impl*)value)->data.v_enum;
6018+}
6019+
6020+
6021+
6022+icalvalue* icalvalue_new_transp (enum icalproperty_transp v){
6023+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_TRANSP_VALUE);
6024+   
6025+   icalvalue_set_transp((icalvalue*)impl,v);
6026+   return (icalvalue*)impl;
6027+}
6028+void icalvalue_set_transp(icalvalue* value, enum icalproperty_transp v) {
6029+    struct icalvalue_impl* impl;
6030+    icalerror_check_arg_rv( (value!=0),"value");
6031+   
6032+    icalerror_check_value_type(value, ICAL_TRANSP_VALUE);
6033+    impl = (struct icalvalue_impl*)value;
6034+
6035+
6036+    impl->data.v_enum = v;
6037+
6038+    icalvalue_reset_kind(impl);
6039+}
6040+enum icalproperty_transp icalvalue_get_transp (const icalvalue* value) {
6041+
6042+    icalerror_check_arg ((value!=0),"value");
6043+    icalerror_check_value_type (value, ICAL_TRANSP_VALUE);
6044+    return ((struct icalvalue_impl*)value)->data.v_enum;
6045+}
6046+
6047+
6048+
6049+icalvalue* icalvalue_new_string (const char* v){
6050+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_STRING_VALUE);
6051+   icalerror_check_arg_rz( (v!=0),"v");
6052+
6053+   icalvalue_set_string((icalvalue*)impl,v);
6054+   return (icalvalue*)impl;
6055+}
6056+void icalvalue_set_string(icalvalue* value, const char* v) {
6057+    struct icalvalue_impl* impl;
6058+    icalerror_check_arg_rv( (value!=0),"value");
6059+    icalerror_check_arg_rv( (v!=0),"v");
6060+
6061+    icalerror_check_value_type(value, ICAL_STRING_VALUE);
6062+    impl = (struct icalvalue_impl*)value;
6063+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
6064+
6065+
6066+    impl->data.v_string = icalmemory_strdup(v);
6067+
6068+    if (impl->data.v_string == 0){
6069+      errno = ENOMEM;
6070+    }
6071+
6072+
6073+    icalvalue_reset_kind(impl);
6074+}
6075+const char* icalvalue_get_string (const icalvalue* value) {
6076+
6077+    icalerror_check_arg_rz ((value!=0),"value");
6078+    icalerror_check_value_type (value, ICAL_STRING_VALUE);
6079+    return ((struct icalvalue_impl*)value)->data.v_string;
6080+}
6081+
6082+
6083+
6084+icalvalue* icalvalue_new_text (const char* v){
6085+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_TEXT_VALUE);
6086+   icalerror_check_arg_rz( (v!=0),"v");
6087+
6088+   icalvalue_set_text((icalvalue*)impl,v);
6089+   return (icalvalue*)impl;
6090+}
6091+void icalvalue_set_text(icalvalue* value, const char* v) {
6092+    struct icalvalue_impl* impl;
6093+    icalerror_check_arg_rv( (value!=0),"value");
6094+    icalerror_check_arg_rv( (v!=0),"v");
6095+
6096+    icalerror_check_value_type(value, ICAL_TEXT_VALUE);
6097+    impl = (struct icalvalue_impl*)value;
6098+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
6099+
6100+
6101+    impl->data.v_string = icalmemory_strdup(v);
6102+
6103+    if (impl->data.v_string == 0){
6104+      errno = ENOMEM;
6105+    }
6106+
6107+
6108+    icalvalue_reset_kind(impl);
6109+}
6110+const char* icalvalue_get_text (const icalvalue* value) {
6111+
6112+    icalerror_check_arg_rz ((value!=0),"value");
6113+    icalerror_check_value_type (value, ICAL_TEXT_VALUE);
6114+    return ((struct icalvalue_impl*)value)->data.v_string;
6115+}
6116+
6117+
6118+
6119+icalvalue* icalvalue_new_requeststatus (struct icalreqstattype v){
6120+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_REQUESTSTATUS_VALUE);
6121+   
6122+   icalvalue_set_requeststatus((icalvalue*)impl,v);
6123+   return (icalvalue*)impl;
6124+}
6125+void icalvalue_set_requeststatus(icalvalue* value, struct icalreqstattype v) {
6126+    struct icalvalue_impl* impl;
6127+    icalerror_check_arg_rv( (value!=0),"value");
6128+   
6129+    icalerror_check_value_type(value, ICAL_REQUESTSTATUS_VALUE);
6130+    impl = (struct icalvalue_impl*)value;
6131+
6132+
6133+    impl->data.v_requeststatus = v;
6134+
6135+    icalvalue_reset_kind(impl);
6136+}
6137+struct icalreqstattype icalvalue_get_requeststatus (const icalvalue* value) {
6138+
6139+    icalerror_check_arg ((value!=0),"value");
6140+    icalerror_check_value_type (value, ICAL_REQUESTSTATUS_VALUE);
6141+    return ((struct icalvalue_impl*)value)->data.v_requeststatus;
6142+}
6143+
6144+
6145+
6146+icalvalue* icalvalue_new_cmd (enum icalproperty_cmd v){
6147+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_CMD_VALUE);
6148+   
6149+   icalvalue_set_cmd((icalvalue*)impl,v);
6150+   return (icalvalue*)impl;
6151+}
6152+void icalvalue_set_cmd(icalvalue* value, enum icalproperty_cmd v) {
6153+    struct icalvalue_impl* impl;
6154+    icalerror_check_arg_rv( (value!=0),"value");
6155+   
6156+    icalerror_check_value_type(value, ICAL_CMD_VALUE);
6157+    impl = (struct icalvalue_impl*)value;
6158+
6159+
6160+    impl->data.v_enum = v;
6161+
6162+    icalvalue_reset_kind(impl);
6163+}
6164+enum icalproperty_cmd icalvalue_get_cmd (const icalvalue* value) {
6165+
6166+    icalerror_check_arg ((value!=0),"value");
6167+    icalerror_check_value_type (value, ICAL_CMD_VALUE);
6168+    return ((struct icalvalue_impl*)value)->data.v_enum;
6169+}
6170+
6171+
6172+
6173+icalvalue* icalvalue_new_binary (const char* v){
6174+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_BINARY_VALUE);
6175+   icalerror_check_arg_rz( (v!=0),"v");
6176+
6177+   icalvalue_set_binary((icalvalue*)impl,v);
6178+   return (icalvalue*)impl;
6179+}
6180+void icalvalue_set_binary(icalvalue* value, const char* v) {
6181+    struct icalvalue_impl* impl;
6182+    icalerror_check_arg_rv( (value!=0),"value");
6183+    icalerror_check_arg_rv( (v!=0),"v");
6184+
6185+    icalerror_check_value_type(value, ICAL_BINARY_VALUE);
6186+    impl = (struct icalvalue_impl*)value;
6187+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
6188+
6189+
6190+    impl->data.v_string = icalmemory_strdup(v);
6191+
6192+    if (impl->data.v_string == 0){
6193+      errno = ENOMEM;
6194+    }
6195+
6196+
6197+    icalvalue_reset_kind(impl);
6198+}
6199+const char* icalvalue_get_binary (const icalvalue* value) {
6200+
6201+    icalerror_check_arg_rz ((value!=0),"value");
6202+    icalerror_check_value_type (value, ICAL_BINARY_VALUE);
6203+    return ((struct icalvalue_impl*)value)->data.v_string;
6204+}
6205+
6206+
6207+
6208+icalvalue* icalvalue_new_querylevel (enum icalproperty_querylevel v){
6209+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_QUERYLEVEL_VALUE);
6210+   
6211+   icalvalue_set_querylevel((icalvalue*)impl,v);
6212+   return (icalvalue*)impl;
6213+}
6214+void icalvalue_set_querylevel(icalvalue* value, enum icalproperty_querylevel v) {
6215+    struct icalvalue_impl* impl;
6216+    icalerror_check_arg_rv( (value!=0),"value");
6217+   
6218+    icalerror_check_value_type(value, ICAL_QUERYLEVEL_VALUE);
6219+    impl = (struct icalvalue_impl*)value;
6220+
6221+
6222+    impl->data.v_enum = v;
6223+
6224+    icalvalue_reset_kind(impl);
6225+}
6226+enum icalproperty_querylevel icalvalue_get_querylevel (const icalvalue* value) {
6227+
6228+    icalerror_check_arg ((value!=0),"value");
6229+    icalerror_check_value_type (value, ICAL_QUERYLEVEL_VALUE);
6230+    return ((struct icalvalue_impl*)value)->data.v_enum;
6231+}
6232+
6233+
6234+
6235+icalvalue* icalvalue_new_period (struct icalperiodtype v){
6236+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_PERIOD_VALUE);
6237+   
6238+   icalvalue_set_period((icalvalue*)impl,v);
6239+   return (icalvalue*)impl;
6240+}
6241+void icalvalue_set_period(icalvalue* value, struct icalperiodtype v) {
6242+    struct icalvalue_impl* impl;
6243+    icalerror_check_arg_rv( (value!=0),"value");
6244+   
6245+    icalerror_check_value_type(value, ICAL_PERIOD_VALUE);
6246+    impl = (struct icalvalue_impl*)value;
6247+
6248+
6249+    impl->data.v_period = v;
6250+
6251+    icalvalue_reset_kind(impl);
6252+}
6253+struct icalperiodtype icalvalue_get_period (const icalvalue* value) {
6254+
6255+    icalerror_check_arg ((value!=0),"value");
6256+    icalerror_check_value_type (value, ICAL_PERIOD_VALUE);
6257+    return ((struct icalvalue_impl*)value)->data.v_period;
6258+}
6259+
6260+
6261+
6262+icalvalue* icalvalue_new_float (float v){
6263+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_FLOAT_VALUE);
6264+   
6265+   icalvalue_set_float((icalvalue*)impl,v);
6266+   return (icalvalue*)impl;
6267+}
6268+void icalvalue_set_float(icalvalue* value, float v) {
6269+    struct icalvalue_impl* impl;
6270+    icalerror_check_arg_rv( (value!=0),"value");
6271+   
6272+    icalerror_check_value_type(value, ICAL_FLOAT_VALUE);
6273+    impl = (struct icalvalue_impl*)value;
6274+
6275+
6276+    impl->data.v_float = v;
6277+
6278+    icalvalue_reset_kind(impl);
6279+}
6280+float icalvalue_get_float (const icalvalue* value) {
6281+
6282+    icalerror_check_arg ((value!=0),"value");
6283+    icalerror_check_value_type (value, ICAL_FLOAT_VALUE);
6284+    return ((struct icalvalue_impl*)value)->data.v_float;
6285+}
6286+
6287+
6288+
6289+icalvalue* icalvalue_new_carlevel (enum icalproperty_carlevel v){
6290+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_CARLEVEL_VALUE);
6291+   
6292+   icalvalue_set_carlevel((icalvalue*)impl,v);
6293+   return (icalvalue*)impl;
6294+}
6295+void icalvalue_set_carlevel(icalvalue* value, enum icalproperty_carlevel v) {
6296+    struct icalvalue_impl* impl;
6297+    icalerror_check_arg_rv( (value!=0),"value");
6298+   
6299+    icalerror_check_value_type(value, ICAL_CARLEVEL_VALUE);
6300+    impl = (struct icalvalue_impl*)value;
6301+
6302+
6303+    impl->data.v_enum = v;
6304+
6305+    icalvalue_reset_kind(impl);
6306+}
6307+enum icalproperty_carlevel icalvalue_get_carlevel (const icalvalue* value) {
6308+
6309+    icalerror_check_arg ((value!=0),"value");
6310+    icalerror_check_value_type (value, ICAL_CARLEVEL_VALUE);
6311+    return ((struct icalvalue_impl*)value)->data.v_enum;
6312+}
6313+
6314+
6315+
6316+icalvalue* icalvalue_new_integer (int v){
6317+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_INTEGER_VALUE);
6318+   
6319+   icalvalue_set_integer((icalvalue*)impl,v);
6320+   return (icalvalue*)impl;
6321+}
6322+void icalvalue_set_integer(icalvalue* value, int v) {
6323+    struct icalvalue_impl* impl;
6324+    icalerror_check_arg_rv( (value!=0),"value");
6325+   
6326+    icalerror_check_value_type(value, ICAL_INTEGER_VALUE);
6327+    impl = (struct icalvalue_impl*)value;
6328+
6329+
6330+    impl->data.v_int = v;
6331+
6332+    icalvalue_reset_kind(impl);
6333+}
6334+int icalvalue_get_integer (const icalvalue* value) {
6335+
6336+    icalerror_check_arg ((value!=0),"value");
6337+    icalerror_check_value_type (value, ICAL_INTEGER_VALUE);
6338+    return ((struct icalvalue_impl*)value)->data.v_int;
6339+}
6340+
6341+
6342+
6343+icalvalue* icalvalue_new_class (enum icalproperty_class v){
6344+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_CLASS_VALUE);
6345+   
6346+   icalvalue_set_class((icalvalue*)impl,v);
6347+   return (icalvalue*)impl;
6348+}
6349+void icalvalue_set_class(icalvalue* value, enum icalproperty_class v) {
6350+    struct icalvalue_impl* impl;
6351+    icalerror_check_arg_rv( (value!=0),"value");
6352+   
6353+    icalerror_check_value_type(value, ICAL_CLASS_VALUE);
6354+    impl = (struct icalvalue_impl*)value;
6355+
6356+
6357+    impl->data.v_enum = v;
6358+
6359+    icalvalue_reset_kind(impl);
6360+}
6361+enum icalproperty_class icalvalue_get_class (const icalvalue* value) {
6362+
6363+    icalerror_check_arg ((value!=0),"value");
6364+    icalerror_check_value_type (value, ICAL_CLASS_VALUE);
6365+    return ((struct icalvalue_impl*)value)->data.v_enum;
6366+}
6367+
6368+
6369+
6370+icalvalue* icalvalue_new_uri (const char* v){
6371+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_URI_VALUE);
6372+   icalerror_check_arg_rz( (v!=0),"v");
6373+
6374+   icalvalue_set_uri((icalvalue*)impl,v);
6375+   return (icalvalue*)impl;
6376+}
6377+void icalvalue_set_uri(icalvalue* value, const char* v) {
6378+    struct icalvalue_impl* impl;
6379+    icalerror_check_arg_rv( (value!=0),"value");
6380+    icalerror_check_arg_rv( (v!=0),"v");
6381+
6382+    icalerror_check_value_type(value, ICAL_URI_VALUE);
6383+    impl = (struct icalvalue_impl*)value;
6384+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
6385+
6386+
6387+    impl->data.v_string = icalmemory_strdup(v);
6388+
6389+    if (impl->data.v_string == 0){
6390+      errno = ENOMEM;
6391+    }
6392+
6393+
6394+    icalvalue_reset_kind(impl);
6395+}
6396+const char* icalvalue_get_uri (const icalvalue* value) {
6397+
6398+    icalerror_check_arg_rz ((value!=0),"value");
6399+    icalerror_check_value_type (value, ICAL_URI_VALUE);
6400+    return ((struct icalvalue_impl*)value)->data.v_string;
6401+}
6402+
6403+
6404+
6405+icalvalue* icalvalue_new_duration (struct icaldurationtype v){
6406+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DURATION_VALUE);
6407+   
6408+   icalvalue_set_duration((icalvalue*)impl,v);
6409+   return (icalvalue*)impl;
6410+}
6411+void icalvalue_set_duration(icalvalue* value, struct icaldurationtype v) {
6412+    struct icalvalue_impl* impl;
6413+    icalerror_check_arg_rv( (value!=0),"value");
6414+   
6415+    icalerror_check_value_type(value, ICAL_DURATION_VALUE);
6416+    impl = (struct icalvalue_impl*)value;
6417+
6418+
6419+    impl->data.v_duration = v;
6420+
6421+    icalvalue_reset_kind(impl);
6422+}
6423+struct icaldurationtype icalvalue_get_duration (const icalvalue* value) {
6424+
6425+    icalerror_check_arg ((value!=0),"value");
6426+    icalerror_check_value_type (value, ICAL_DURATION_VALUE);
6427+    return ((struct icalvalue_impl*)value)->data.v_duration;
6428+}
6429+
6430+
6431+
6432+icalvalue* icalvalue_new_boolean (int v){
6433+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_BOOLEAN_VALUE);
6434+   
6435+   icalvalue_set_boolean((icalvalue*)impl,v);
6436+   return (icalvalue*)impl;
6437+}
6438+void icalvalue_set_boolean(icalvalue* value, int v) {
6439+    struct icalvalue_impl* impl;
6440+    icalerror_check_arg_rv( (value!=0),"value");
6441+   
6442+    icalerror_check_value_type(value, ICAL_BOOLEAN_VALUE);
6443+    impl = (struct icalvalue_impl*)value;
6444+
6445+
6446+    impl->data.v_int = v;
6447+
6448+    icalvalue_reset_kind(impl);
6449+}
6450+int icalvalue_get_boolean (const icalvalue* value) {
6451+
6452+    icalerror_check_arg ((value!=0),"value");
6453+    icalerror_check_value_type (value, ICAL_BOOLEAN_VALUE);
6454+    return ((struct icalvalue_impl*)value)->data.v_int;
6455+}
6456+
6457+
6458+
6459+icalvalue* icalvalue_new_caladdress (const char* v){
6460+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_CALADDRESS_VALUE);
6461+   icalerror_check_arg_rz( (v!=0),"v");
6462+
6463+   icalvalue_set_caladdress((icalvalue*)impl,v);
6464+   return (icalvalue*)impl;
6465+}
6466+void icalvalue_set_caladdress(icalvalue* value, const char* v) {
6467+    struct icalvalue_impl* impl;
6468+    icalerror_check_arg_rv( (value!=0),"value");
6469+    icalerror_check_arg_rv( (v!=0),"v");
6470+
6471+    icalerror_check_value_type(value, ICAL_CALADDRESS_VALUE);
6472+    impl = (struct icalvalue_impl*)value;
6473+    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
6474+
6475+
6476+    impl->data.v_string = icalmemory_strdup(v);
6477+
6478+    if (impl->data.v_string == 0){
6479+      errno = ENOMEM;
6480+    }
6481+
6482+
6483+    icalvalue_reset_kind(impl);
6484+}
6485+const char* icalvalue_get_caladdress (const icalvalue* value) {
6486+
6487+    icalerror_check_arg_rz ((value!=0),"value");
6488+    icalerror_check_value_type (value, ICAL_CALADDRESS_VALUE);
6489+    return ((struct icalvalue_impl*)value)->data.v_string;
6490+}
6491+
6492+
6493+
6494+icalvalue* icalvalue_new_xlicclass (enum icalproperty_xlicclass v){
6495+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_XLICCLASS_VALUE);
6496+   
6497+   icalvalue_set_xlicclass((icalvalue*)impl,v);
6498+   return (icalvalue*)impl;
6499+}
6500+void icalvalue_set_xlicclass(icalvalue* value, enum icalproperty_xlicclass v) {
6501+    struct icalvalue_impl* impl;
6502+    icalerror_check_arg_rv( (value!=0),"value");
6503+   
6504+    icalerror_check_value_type(value, ICAL_XLICCLASS_VALUE);
6505+    impl = (struct icalvalue_impl*)value;
6506+
6507+
6508+    impl->data.v_enum = v;
6509+
6510+    icalvalue_reset_kind(impl);
6511+}
6512+enum icalproperty_xlicclass icalvalue_get_xlicclass (const icalvalue* value) {
6513+
6514+    icalerror_check_arg ((value!=0),"value");
6515+    icalerror_check_value_type (value, ICAL_XLICCLASS_VALUE);
6516+    return ((struct icalvalue_impl*)value)->data.v_enum;
6517+}
6518+
6519+
6520+
6521+icalvalue* icalvalue_new_action (enum icalproperty_action v){
6522+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_ACTION_VALUE);
6523+   
6524+   icalvalue_set_action((icalvalue*)impl,v);
6525+   return (icalvalue*)impl;
6526+}
6527+void icalvalue_set_action(icalvalue* value, enum icalproperty_action v) {
6528+    struct icalvalue_impl* impl;
6529+    icalerror_check_arg_rv( (value!=0),"value");
6530+   
6531+    icalerror_check_value_type(value, ICAL_ACTION_VALUE);
6532+    impl = (struct icalvalue_impl*)value;
6533+
6534+
6535+    impl->data.v_enum = v;
6536+
6537+    icalvalue_reset_kind(impl);
6538+}
6539+enum icalproperty_action icalvalue_get_action (const icalvalue* value) {
6540+
6541+    icalerror_check_arg ((value!=0),"value");
6542+    icalerror_check_value_type (value, ICAL_ACTION_VALUE);
6543+    return ((struct icalvalue_impl*)value)->data.v_enum;
6544+}
6545+
6546+
6547+
6548+icalvalue* icalvalue_new_datetime (struct icaltimetype v){
6549+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATETIME_VALUE);
6550+   
6551+   icalvalue_set_datetime((icalvalue*)impl,v);
6552+   return (icalvalue*)impl;
6553+}
6554+void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v) {
6555+    struct icalvalue_impl* impl;
6556+    icalerror_check_arg_rv( (value!=0),"value");
6557+   
6558+    icalerror_check_value_type(value, ICAL_DATETIME_VALUE);
6559+    impl = (struct icalvalue_impl*)value;
6560+
6561+
6562+    impl->data.v_time = v;
6563+
6564+    icalvalue_reset_kind(impl);
6565+}
6566+struct icaltimetype icalvalue_get_datetime (const icalvalue* value) {
6567+
6568+    icalerror_check_arg ((value!=0),"value");
6569+    icalerror_check_value_type (value, ICAL_DATETIME_VALUE);
6570+    return ((struct icalvalue_impl*)value)->data.v_time;
6571+}
6572+
6573+
6574+
6575+icalvalue* icalvalue_new_utcoffset (int v){
6576+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_UTCOFFSET_VALUE);
6577+   
6578+   icalvalue_set_utcoffset((icalvalue*)impl,v);
6579+   return (icalvalue*)impl;
6580+}
6581+void icalvalue_set_utcoffset(icalvalue* value, int v) {
6582+    struct icalvalue_impl* impl;
6583+    icalerror_check_arg_rv( (value!=0),"value");
6584+   
6585+    icalerror_check_value_type(value, ICAL_UTCOFFSET_VALUE);
6586+    impl = (struct icalvalue_impl*)value;
6587+
6588+
6589+    impl->data.v_int = v;
6590+
6591+    icalvalue_reset_kind(impl);
6592+}
6593+int icalvalue_get_utcoffset (const icalvalue* value) {
6594+
6595+    icalerror_check_arg ((value!=0),"value");
6596+    icalerror_check_value_type (value, ICAL_UTCOFFSET_VALUE);
6597+    return ((struct icalvalue_impl*)value)->data.v_int;
6598+}
6599+
6600+
6601+
6602+icalvalue* icalvalue_new_method (enum icalproperty_method v){
6603+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_METHOD_VALUE);
6604+   
6605+   icalvalue_set_method((icalvalue*)impl,v);
6606+   return (icalvalue*)impl;
6607+}
6608+void icalvalue_set_method(icalvalue* value, enum icalproperty_method v) {
6609+    struct icalvalue_impl* impl;
6610+    icalerror_check_arg_rv( (value!=0),"value");
6611+   
6612+    icalerror_check_value_type(value, ICAL_METHOD_VALUE);
6613+    impl = (struct icalvalue_impl*)value;
6614+
6615+
6616+    impl->data.v_enum = v;
6617+
6618+    icalvalue_reset_kind(impl);
6619+}
6620+enum icalproperty_method icalvalue_get_method (const icalvalue* value) {
6621+
6622+    icalerror_check_arg ((value!=0),"value");
6623+    icalerror_check_value_type (value, ICAL_METHOD_VALUE);
6624+    return ((struct icalvalue_impl*)value)->data.v_enum;
6625+}
6626+
6627+
6628+int icalvalue_kind_is_valid(const icalvalue_kind kind)
6629+{
6630+    int i = 0;
6631+    do {
6632+      if (value_map[i].kind == kind)
6633+       return 1;
6634+    } while (value_map[i++].kind != ICAL_NO_VALUE);
6635+
6636+    return 0;
6637+} 
6638+
6639+const char* icalvalue_kind_to_string(const icalvalue_kind kind)
6640+{
6641+    int i;
6642+
6643+    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
6644+       if (value_map[i].kind == kind) {
6645+           return value_map[i].name;
6646+       }
6647+    }
6648+
6649+    return 0;
6650+}
6651+
6652+icalvalue_kind icalvalue_string_to_kind(const char* str)
6653+{
6654+    int i;
6655+
6656+    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
6657+       if (strcasecmp(value_map[i].name,str) == 0) {
6658+           return value_map[i].kind;
6659+       }
6660+    }
6661+
6662+    return  value_map[i].kind;
6663+
6664+}
6665+
6666+icalvalue* icalvalue_new_x (const char* v){
6667+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_X_VALUE);
6668+   icalerror_check_arg_rz( (v!=0),"v");
6669+
6670+   icalvalue_set_x((icalvalue*)impl,v);
6671+   return (icalvalue*)impl;
6672+}
6673+void icalvalue_set_x(icalvalue* impl, const char* v) {
6674+    icalerror_check_arg_rv( (impl!=0),"value");
6675+    icalerror_check_arg_rv( (v!=0),"v");
6676+
6677+    if(impl->x_value!=0) {free((void*)impl->x_value);}
6678+
6679+    impl->x_value = icalmemory_strdup(v);
6680+
6681+    if (impl->x_value == 0){
6682+      errno = ENOMEM;
6683+    }
6684+
6685+ }
6686+const char* icalvalue_get_x(const icalvalue* value) {
6687+
6688+    icalerror_check_arg( (value!=0),"value");
6689+    icalerror_check_value_type(value, ICAL_X_VALUE);
6690+    return value->x_value;
6691+}
6692+
6693+/* Recur is a special case, so it is not auto generated. */
6694+icalvalue*
6695+icalvalue_new_recur (struct icalrecurrencetype v)
6696+{
6697+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_RECUR_VALUE);
6698+   
6699+   icalvalue_set_recur((icalvalue*)impl,v);
6700+
6701+   return (icalvalue*)impl;
6702+}
6703+
6704+void
6705+icalvalue_set_recur(icalvalue* impl, struct icalrecurrencetype v)
6706+{
6707+    icalerror_check_arg_rv( (impl!=0),"value");
6708+    icalerror_check_value_type(value, ICAL_RECUR_VALUE);
6709+
6710+    if (impl->data.v_recur != 0){
6711+       free(impl->data.v_recur);
6712+       impl->data.v_recur = 0;
6713+    }
6714+
6715+    impl->data.v_recur = malloc(sizeof(struct icalrecurrencetype));
6716+
6717+    if (impl->data.v_recur == 0){
6718+       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
6719+       return;
6720+    } else {
6721+       memcpy(impl->data.v_recur, &v, sizeof(struct icalrecurrencetype));
6722+    }
6723+             
6724+}
6725+
6726+struct icalrecurrencetype
6727+icalvalue_get_recur(const icalvalue* value)
6728+{
6729+    icalerror_check_arg( (value!=0),"value");
6730+    icalerror_check_value_type(value, ICAL_RECUR_VALUE);
6731
6732+    return *(value->data.v_recur);
6733+}
6734+
6735+
6736+
6737+
6738+icalvalue*
6739+icalvalue_new_trigger (struct icaltriggertype v)
6740+{
6741+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_TRIGGER_VALUE);
6742+
6743+   icalvalue_set_trigger((icalvalue*)impl,v);
6744+
6745+   return (icalvalue*)impl;
6746+}
6747+
6748+void
6749+icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v)
6750+{
6751+    icalerror_check_arg_rv( (value!=0),"value");
6752+   
6753+   if(!icaltime_is_null_time(v.time)){
6754+       icalvalue_set_datetime(value,v.time);
6755+       value->kind = ICAL_DATETIME_VALUE;
6756+   } else {
6757+       icalvalue_set_duration(value,v.duration);
6758+       value->kind = ICAL_DURATION_VALUE;
6759+   }
6760+}
6761+
6762+struct icaltriggertype
6763+icalvalue_get_trigger(const icalvalue* impl)
6764+{
6765+    struct icaltriggertype tr;
6766+
6767+    icalerror_check_arg( (impl!=0),"value");
6768+    icalerror_check_arg( (impl!=0),"value");
6769+
6770+    if(impl->kind == ICAL_DATETIME_VALUE){
6771+        tr.duration = icaldurationtype_from_int(0);
6772+        tr.time = impl->data.v_time;
6773+    } else if(impl->kind == ICAL_DURATION_VALUE){
6774+       tr.time = icaltime_null_time();
6775+       tr.duration = impl->data.v_duration;
6776+    } else {
6777+       tr.duration = icaldurationtype_from_int(0);
6778+       tr.time = icaltime_null_time();
6779+       icalerror_set_errno(ICAL_BADARG_ERROR);
6780+    }
6781+
6782+    return tr;
6783+}
6784+
6785+/* DATE-TIME-PERIOD is a special case, and is not auto generated */
6786+
6787+icalvalue*
6788+icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v)
6789+{
6790+   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATETIMEPERIOD_VALUE);
6791+
6792+   icalvalue_set_datetimeperiod(impl,v);
6793+
6794+   return (icalvalue*)impl;
6795+}
6796+
6797+void
6798+icalvalue_set_datetimeperiod(icalvalue* impl, struct icaldatetimeperiodtype v)
6799+{
6800+    icalerror_check_arg_rv( (impl!=0),"value");
6801+   
6802+    icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
6803+
6804+    if(!icaltime_is_null_time(v.time)){
6805+       if(!icaltime_is_valid_time(v.time)){
6806+           icalerror_set_errno(ICAL_BADARG_ERROR);
6807+           return;
6808+       }
6809+       impl->kind = ICAL_DATETIME_VALUE;
6810+       icalvalue_set_datetime(impl,v.time);
6811+    } else if (!icalperiodtype_is_null_period(v.period)) {
6812+       if(!icalperiodtype_is_valid_period(v.period)){
6813+           icalerror_set_errno(ICAL_BADARG_ERROR);
6814+           return;
6815+       }
6816+       impl->kind = ICAL_PERIOD_VALUE;
6817+       icalvalue_set_period(impl,v.period);
6818+    } else {
6819+       icalerror_set_errno(ICAL_BADARG_ERROR);
6820+    }
6821+}
6822+
6823+struct icaldatetimeperiodtype
6824+icalvalue_get_datetimeperiod(const icalvalue* impl)
6825+{
6826+  struct icaldatetimeperiodtype dtp;
6827
6828+  icalerror_check_arg( (impl!=0),"value");
6829+  icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
6830
6831+  if( impl->kind == ICAL_DATETIME_VALUE || impl->kind == ICAL_DATE_VALUE ){
6832+      dtp.period = icalperiodtype_null_period();
6833+      dtp.time = impl->data.v_time;
6834+  } else if(impl->kind == ICAL_PERIOD_VALUE) {
6835+      dtp.period = impl->data.v_period;
6836+      dtp.time = icaltime_null_time();
6837+  } else {
6838+      dtp.period = icalperiodtype_null_period();
6839+      dtp.time = icaltime_null_time();
6840+      icalerror_set_errno(ICAL_BADARG_ERROR);
6841+  }   
6842+
6843+  return dtp;
6844+}
6845+
6846+
6847+
6848+icalvalue *
6849+icalvalue_new_attach (icalattach *attach)
6850+{
6851+    struct icalvalue_impl *impl;
6852+
6853+    icalerror_check_arg_rz ((attach != NULL), "attach");
6854+
6855+    impl = icalvalue_new_impl (ICAL_ATTACH_VALUE);
6856+    if (!impl) {
6857+       errno = ENOMEM;
6858+       return NULL;
6859+    }
6860+
6861+    icalvalue_set_attach ((icalvalue *) impl, attach);
6862+    return (icalvalue *) impl;
6863+}
6864+
6865+void
6866+icalvalue_set_attach (icalvalue *value, icalattach *attach)
6867+{
6868+    struct icalvalue_impl *impl;
6869+
6870+    icalerror_check_arg_rv ((value != NULL), "value");
6871+    icalerror_check_value_type (value, ICAL_ATTACH_VALUE);
6872+    icalerror_check_arg_rv ((attach != NULL), "attach");
6873
6874+    impl = (struct icalvalue_impl *) value;
6875+
6876+    icalattach_ref (attach);
6877+
6878+    if (impl->data.v_attach)
6879+       icalattach_unref (impl->data.v_attach);
6880
6881+    impl->data.v_attach = attach;
6882+}
6883+
6884+icalattach *
6885+icalvalue_get_attach (const icalvalue *value)
6886+{
6887+    icalerror_check_arg_rz ((value != NULL), "value");
6888+    icalerror_check_value_type (value, ICAL_ATTACH_VALUE);
6889+   
6890+    return value->data.v_attach;
6891+}
6892+
6893+
6894+
6895+
6896+
6897+
6898+
6899+/* The remaining interfaces are 'new', 'set' and 'get' for each of the value
6900+   types */
6901+
6902+
6903+/* Everything below this line is machine generated. Do not edit. */
6904diff -Nurb libical-0.42.orig/src/libical/icalderivedvalue.h libical-0.42/src/libical/icalderivedvalue.h
6905--- libical-0.42.orig/src/libical/icalderivedvalue.h    1970-01-01 01:00:00.000000000 +0100
6906+++ libical-0.42/src/libical/icalderivedvalue.h 2009-01-13 13:31:50.000000000 +0100
6907@@ -0,0 +1,377 @@
6908+/* -*- Mode: C -*- */
6909+/*======================================================================
6910+  FILE: icalvalue.h
6911+  CREATOR: eric 20 March 1999
6912+
6913+
6914+  $Id: icalderivedvalue.h.in,v 1.10 2007-04-30 13:57:48 artcancro Exp $
6915+  $Locker:  $
6916+
6917
6918+
6919+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
6920+
6921+ This program is free software; you can redistribute it and/or modify
6922+ it under the terms of either:
6923+
6924+    The LGPL as published by the Free Software Foundation, version
6925+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
6926+
6927+  Or:
6928+
6929+    The Mozilla Public License Version 1.0. You may obtain a copy of
6930+    the License at http://www.mozilla.org/MPL/
6931+
6932+  The original code is icalvalue.h
6933+
6934+  ======================================================================*/
6935+
6936+#ifndef ICALDERIVEDVALUE_H
6937+#define ICALDERIVEDVALUE_H
6938+
6939+#include "icaltypes.h"
6940+#include "icalrecur.h"
6941+#include "icaltime.h"
6942+#include "icalduration.h"
6943+#include "icalperiod.h"
6944+#include "icalattach.h"
6945+     
6946+typedef struct icalvalue_impl icalvalue;
6947+
6948+
6949+
6950+void icalvalue_set_x(icalvalue* value, const char* v);
6951+icalvalue* icalvalue_new_x(const char* v);
6952+const char* icalvalue_get_x(const icalvalue* value);
6953+
6954+icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
6955+void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
6956+struct icalrecurrencetype icalvalue_get_recur(const icalvalue* value);
6957+
6958+icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
6959+void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
6960+struct icaltriggertype icalvalue_get_trigger(const icalvalue* value);
6961+
6962+icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
6963+void icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v);
6964+struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(const icalvalue* value);
6965+
6966+icalvalue *icalvalue_new_attach (icalattach *attach);
6967+void icalvalue_set_attach (icalvalue *value, icalattach *attach);
6968+icalattach *icalvalue_get_attach (const icalvalue *value);
6969+
6970+void icalvalue_reset_kind(icalvalue* value);
6971+
6972+typedef enum icalvalue_kind {
6973+   ICAL_ANY_VALUE=5000,
6974+    ICAL_QUERY_VALUE=5001,
6975+    ICAL_DATE_VALUE=5002,
6976+    ICAL_ATTACH_VALUE=5003,
6977+    ICAL_GEO_VALUE=5004,
6978+    ICAL_STATUS_VALUE=5005,
6979+    ICAL_TRANSP_VALUE=5006,
6980+    ICAL_STRING_VALUE=5007,
6981+    ICAL_TEXT_VALUE=5008,
6982+    ICAL_REQUESTSTATUS_VALUE=5009,
6983+    ICAL_CMD_VALUE=5010,
6984+    ICAL_BINARY_VALUE=5011,
6985+    ICAL_QUERYLEVEL_VALUE=5012,
6986+    ICAL_PERIOD_VALUE=5013,
6987+    ICAL_FLOAT_VALUE=5014,
6988+    ICAL_DATETIMEPERIOD_VALUE=5015,
6989+    ICAL_CARLEVEL_VALUE=5016,
6990+    ICAL_INTEGER_VALUE=5017,
6991+    ICAL_CLASS_VALUE=5018,
6992+    ICAL_URI_VALUE=5019,
6993+    ICAL_DURATION_VALUE=5020,
6994+    ICAL_BOOLEAN_VALUE=5021,
6995+    ICAL_X_VALUE=5022,
6996+    ICAL_CALADDRESS_VALUE=5023,
6997+    ICAL_TRIGGER_VALUE=5024,
6998+    ICAL_XLICCLASS_VALUE=5025,
6999+    ICAL_RECUR_VALUE=5026,
7000+    ICAL_ACTION_VALUE=5027,
7001+    ICAL_DATETIME_VALUE=5028,
7002+    ICAL_UTCOFFSET_VALUE=5029,
7003+    ICAL_METHOD_VALUE=5030,
7004+   ICAL_NO_VALUE=5031
7005+} icalvalue_kind ;
7006+
7007+#define ICALPROPERTY_FIRST_ENUM 10000
7008+
7009+typedef enum icalproperty_action {
7010+    ICAL_ACTION_X = 10000,
7011+    ICAL_ACTION_AUDIO = 10001,
7012+    ICAL_ACTION_DISPLAY = 10002,
7013+    ICAL_ACTION_EMAIL = 10003,
7014+    ICAL_ACTION_PROCEDURE = 10004,
7015+    ICAL_ACTION_NONE = 10005
7016+} icalproperty_action;
7017+
7018+typedef enum icalproperty_carlevel {
7019+    ICAL_CARLEVEL_X = 10006,
7020+    ICAL_CARLEVEL_CARNONE = 10007,
7021+    ICAL_CARLEVEL_CARMIN = 10008,
7022+    ICAL_CARLEVEL_CARFULL1 = 10009,
7023+    ICAL_CARLEVEL_NONE = 10010
7024+} icalproperty_carlevel;
7025+
7026+typedef enum icalproperty_class {
7027+    ICAL_CLASS_X = 10011,
7028+    ICAL_CLASS_PUBLIC = 10012,
7029+    ICAL_CLASS_PRIVATE = 10013,
7030+    ICAL_CLASS_CONFIDENTIAL = 10014,
7031+    ICAL_CLASS_NONE = 10015
7032+} icalproperty_class;
7033+
7034+typedef enum icalproperty_cmd {
7035+    ICAL_CMD_X = 10016,
7036+    ICAL_CMD_ABORT = 10017,
7037+    ICAL_CMD_CONTINUE = 10018,
7038+    ICAL_CMD_CREATE = 10019,
7039+    ICAL_CMD_DELETE = 10020,
7040+    ICAL_CMD_GENERATEUID = 10021,
7041+    ICAL_CMD_GETCAPABILITY = 10022,
7042+    ICAL_CMD_IDENTIFY = 10023,
7043+    ICAL_CMD_MODIFY = 10024,
7044+    ICAL_CMD_MOVE = 10025,
7045+    ICAL_CMD_REPLY = 10026,
7046+    ICAL_CMD_SEARCH = 10027,
7047+    ICAL_CMD_SETLOCALE = 10028,
7048+    ICAL_CMD_NONE = 10029
7049+} icalproperty_cmd;
7050+
7051+typedef enum icalproperty_method {
7052+    ICAL_METHOD_X = 10030,
7053+    ICAL_METHOD_PUBLISH = 10031,
7054+    ICAL_METHOD_REQUEST = 10032,
7055+    ICAL_METHOD_REPLY = 10033,
7056+    ICAL_METHOD_ADD = 10034,
7057+    ICAL_METHOD_CANCEL = 10035,
7058+    ICAL_METHOD_REFRESH = 10036,
7059+    ICAL_METHOD_COUNTER = 10037,
7060+    ICAL_METHOD_DECLINECOUNTER = 10038,
7061+    ICAL_METHOD_CREATE = 10039,
7062+    ICAL_METHOD_READ = 10040,
7063+    ICAL_METHOD_RESPONSE = 10041,
7064+    ICAL_METHOD_MOVE = 10042,
7065+    ICAL_METHOD_MODIFY = 10043,
7066+    ICAL_METHOD_GENERATEUID = 10044,
7067+    ICAL_METHOD_DELETE = 10045,
7068+    ICAL_METHOD_NONE = 10046
7069+} icalproperty_method;
7070+
7071+typedef enum icalproperty_querylevel {
7072+    ICAL_QUERYLEVEL_X = 10047,
7073+    ICAL_QUERYLEVEL_CALQL1 = 10048,
7074+    ICAL_QUERYLEVEL_CALQLNONE = 10049,
7075+    ICAL_QUERYLEVEL_NONE = 10050
7076+} icalproperty_querylevel;
7077+
7078+typedef enum icalproperty_status {
7079+    ICAL_STATUS_X = 10051,
7080+    ICAL_STATUS_TENTATIVE = 10052,
7081+    ICAL_STATUS_CONFIRMED = 10053,
7082+    ICAL_STATUS_COMPLETED = 10054,
7083+    ICAL_STATUS_NEEDSACTION = 10055,
7084+    ICAL_STATUS_CANCELLED = 10056,
7085+    ICAL_STATUS_INPROCESS = 10057,
7086+    ICAL_STATUS_DRAFT = 10058,
7087+    ICAL_STATUS_FINAL = 10059,
7088+    ICAL_STATUS_NONE = 10060
7089+} icalproperty_status;
7090+
7091+typedef enum icalproperty_transp {
7092+    ICAL_TRANSP_X = 10061,
7093+    ICAL_TRANSP_OPAQUE = 10062,
7094+    ICAL_TRANSP_OPAQUENOCONFLICT = 10063,
7095+    ICAL_TRANSP_TRANSPARENT = 10064,
7096+    ICAL_TRANSP_TRANSPARENTNOCONFLICT = 10065,
7097+    ICAL_TRANSP_NONE = 10066
7098+} icalproperty_transp;
7099+
7100+typedef enum icalproperty_xlicclass {
7101+    ICAL_XLICCLASS_X = 10067,
7102+    ICAL_XLICCLASS_PUBLISHNEW = 10068,
7103+    ICAL_XLICCLASS_PUBLISHUPDATE = 10069,
7104+    ICAL_XLICCLASS_PUBLISHFREEBUSY = 10070,
7105+    ICAL_XLICCLASS_REQUESTNEW = 10071,
7106+    ICAL_XLICCLASS_REQUESTUPDATE = 10072,
7107+    ICAL_XLICCLASS_REQUESTRESCHEDULE = 10073,
7108+    ICAL_XLICCLASS_REQUESTDELEGATE = 10074,
7109+    ICAL_XLICCLASS_REQUESTNEWORGANIZER = 10075,
7110+    ICAL_XLICCLASS_REQUESTFORWARD = 10076,
7111+    ICAL_XLICCLASS_REQUESTSTATUS = 10077,
7112+    ICAL_XLICCLASS_REQUESTFREEBUSY = 10078,
7113+    ICAL_XLICCLASS_REPLYACCEPT = 10079,
7114+    ICAL_XLICCLASS_REPLYDECLINE = 10080,
7115+    ICAL_XLICCLASS_REPLYDELEGATE = 10081,
7116+    ICAL_XLICCLASS_REPLYCRASHERACCEPT = 10082,
7117+    ICAL_XLICCLASS_REPLYCRASHERDECLINE = 10083,
7118+    ICAL_XLICCLASS_ADDINSTANCE = 10084,
7119+    ICAL_XLICCLASS_CANCELEVENT = 10085,
7120+    ICAL_XLICCLASS_CANCELINSTANCE = 10086,
7121+    ICAL_XLICCLASS_CANCELALL = 10087,
7122+    ICAL_XLICCLASS_REFRESH = 10088,
7123+    ICAL_XLICCLASS_COUNTER = 10089,
7124+    ICAL_XLICCLASS_DECLINECOUNTER = 10090,
7125+    ICAL_XLICCLASS_MALFORMED = 10091,
7126+    ICAL_XLICCLASS_OBSOLETE = 10092,
7127+    ICAL_XLICCLASS_MISSEQUENCED = 10093,
7128+    ICAL_XLICCLASS_UNKNOWN = 10094,
7129+    ICAL_XLICCLASS_NONE = 10095
7130+} icalproperty_xlicclass;
7131+
7132+#define ICALPROPERTY_LAST_ENUM 10096
7133+
7134+
7135+ /* QUERY */
7136+icalvalue* icalvalue_new_query(const char* v);
7137+const char* icalvalue_get_query(const icalvalue* value);
7138+void icalvalue_set_query(icalvalue* value, const char* v);
7139+
7140+
7141+ /* DATE */
7142+icalvalue* icalvalue_new_date(struct icaltimetype v);
7143+struct icaltimetype icalvalue_get_date(const icalvalue* value);
7144+void icalvalue_set_date(icalvalue* value, struct icaltimetype v);
7145+
7146+
7147+ /* GEO */
7148+icalvalue* icalvalue_new_geo(struct icalgeotype v);
7149+struct icalgeotype icalvalue_get_geo(const icalvalue* value);
7150+void icalvalue_set_geo(icalvalue* value, struct icalgeotype v);
7151+
7152+
7153+ /* STATUS */
7154+icalvalue* icalvalue_new_status(enum icalproperty_status v);
7155+enum icalproperty_status icalvalue_get_status(const icalvalue* value);
7156+void icalvalue_set_status(icalvalue* value, enum icalproperty_status v);
7157+
7158+
7159+ /* TRANSP */
7160+icalvalue* icalvalue_new_transp(enum icalproperty_transp v);
7161+enum icalproperty_transp icalvalue_get_transp(const icalvalue* value);
7162+void icalvalue_set_transp(icalvalue* value, enum icalproperty_transp v);
7163+
7164+
7165+ /* STRING */
7166+icalvalue* icalvalue_new_string(const char* v);
7167+const char* icalvalue_get_string(const icalvalue* value);
7168+void icalvalue_set_string(icalvalue* value, const char* v);
7169+
7170+
7171+ /* TEXT */
7172+icalvalue* icalvalue_new_text(const char* v);
7173+const char* icalvalue_get_text(const icalvalue* value);
7174+void icalvalue_set_text(icalvalue* value, const char* v);
7175+
7176+
7177+ /* REQUEST-STATUS */
7178+icalvalue* icalvalue_new_requeststatus(struct icalreqstattype v);
7179+struct icalreqstattype icalvalue_get_requeststatus(const icalvalue* value);
7180+void icalvalue_set_requeststatus(icalvalue* value, struct icalreqstattype v);
7181+
7182+
7183+ /* CMD */
7184+icalvalue* icalvalue_new_cmd(enum icalproperty_cmd v);
7185+enum icalproperty_cmd icalvalue_get_cmd(const icalvalue* value);
7186+void icalvalue_set_cmd(icalvalue* value, enum icalproperty_cmd v);
7187+
7188+
7189+ /* BINARY */
7190+icalvalue* icalvalue_new_binary(const char* v);
7191+const char* icalvalue_get_binary(const icalvalue* value);
7192+void icalvalue_set_binary(icalvalue* value, const char* v);
7193+
7194+
7195+ /* QUERY-LEVEL */
7196+icalvalue* icalvalue_new_querylevel(enum icalproperty_querylevel v);
7197+enum icalproperty_querylevel icalvalue_get_querylevel(const icalvalue* value);
7198+void icalvalue_set_querylevel(icalvalue* value, enum icalproperty_querylevel v);
7199+
7200+
7201+ /* PERIOD */
7202+icalvalue* icalvalue_new_period(struct icalperiodtype v);
7203+struct icalperiodtype icalvalue_get_period(const icalvalue* value);
7204+void icalvalue_set_period(icalvalue* value, struct icalperiodtype v);
7205+
7206+
7207+ /* FLOAT */
7208+icalvalue* icalvalue_new_float(float v);
7209+float icalvalue_get_float(const icalvalue* value);
7210+void icalvalue_set_float(icalvalue* value, float v);
7211+
7212+
7213+ /* CAR-LEVEL */
7214+icalvalue* icalvalue_new_carlevel(enum icalproperty_carlevel v);
7215+enum icalproperty_carlevel icalvalue_get_carlevel(const icalvalue* value);
7216+void icalvalue_set_carlevel(icalvalue* value, enum icalproperty_carlevel v);
7217+
7218+
7219+ /* INTEGER */
7220+icalvalue* icalvalue_new_integer(int v);
7221+int icalvalue_get_integer(const icalvalue* value);
7222+void icalvalue_set_integer(icalvalue* value, int v);
7223+
7224+
7225+ /* CLASS */
7226+icalvalue* icalvalue_new_class(enum icalproperty_class v);
7227+enum icalproperty_class icalvalue_get_class(const icalvalue* value);
7228+void icalvalue_set_class(icalvalue* value, enum icalproperty_class v);
7229+
7230+
7231+ /* URI */
7232+icalvalue* icalvalue_new_uri(const char* v);
7233+const char* icalvalue_get_uri(const icalvalue* value);
7234+void icalvalue_set_uri(icalvalue* value, const char* v);
7235+
7236+
7237+ /* DURATION */
7238+icalvalue* icalvalue_new_duration(struct icaldurationtype v);
7239+struct icaldurationtype icalvalue_get_duration(const icalvalue* value);
7240+void icalvalue_set_duration(icalvalue* value, struct icaldurationtype v);
7241+
7242+
7243+ /* BOOLEAN */
7244+icalvalue* icalvalue_new_boolean(int v);
7245+int icalvalue_get_boolean(const icalvalue* value);
7246+void icalvalue_set_boolean(icalvalue* value, int v);
7247+
7248+
7249+ /* CAL-ADDRESS */
7250+icalvalue* icalvalue_new_caladdress(const char* v);
7251+const char* icalvalue_get_caladdress(const icalvalue* value);
7252+void icalvalue_set_caladdress(icalvalue* value, const char* v);
7253+
7254+
7255+ /* X-LIC-CLASS */
7256+icalvalue* icalvalue_new_xlicclass(enum icalproperty_xlicclass v);
7257+enum icalproperty_xlicclass icalvalue_get_xlicclass(const icalvalue* value);
7258+void icalvalue_set_xlicclass(icalvalue* value, enum icalproperty_xlicclass v);
7259+
7260+
7261+ /* ACTION */
7262+icalvalue* icalvalue_new_action(enum icalproperty_action v);
7263+enum icalproperty_action icalvalue_get_action(const icalvalue* value);
7264+void icalvalue_set_action(icalvalue* value, enum icalproperty_action v);
7265+
7266+
7267+ /* DATE-TIME */
7268+icalvalue* icalvalue_new_datetime(struct icaltimetype v);
7269+struct icaltimetype icalvalue_get_datetime(const icalvalue* value);
7270+void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v);
7271+
7272+
7273+ /* UTC-OFFSET */
7274+icalvalue* icalvalue_new_utcoffset(int v);
7275+int icalvalue_get_utcoffset(const icalvalue* value);
7276+void icalvalue_set_utcoffset(icalvalue* value, int v);
7277+
7278+
7279+ /* METHOD */
7280+icalvalue* icalvalue_new_method(enum icalproperty_method v);
7281+enum icalproperty_method icalvalue_get_method(const icalvalue* value);
7282+void icalvalue_set_method(icalvalue* value, enum icalproperty_method v);
7283+
7284+#endif /*ICALVALUE_H*/
7285diff -Nurb libical-0.42.orig/src/libical/ical.h libical-0.42/src/libical/ical.h
7286--- libical-0.42.orig/src/libical/ical.h        1970-01-01 01:00:00.000000000 +0100
7287+++ libical-0.42/src/libical/ical.h     2009-01-13 13:32:26.000000000 +0100
7288@@ -0,0 +1,3857 @@
7289+#ifndef LIBICAL_ICAL_H
7290+#define LIBICAL_ICAL_H
7291+#ifdef __cplusplus
7292+extern "C" {
7293+#endif
7294+/*
7295+ $Id$
7296+*/
7297+#ifndef ICAL_VERSION_H
7298+#define ICAL_VERSION_H
7299+
7300+#define ICAL_PACKAGE "libical"
7301+#define ICAL_VERSION "0.42"
7302+
7303+#endif
7304+/* -*- Mode: C -*- */
7305+/*======================================================================
7306+ FILE: icaltime.h
7307+ CREATOR: eric 02 June 2000
7308+
7309+
7310+
7311+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
7312+     http://www.softwarestudio.org
7313+
7314+ This program is free software; you can redistribute it and/or modify
7315+ it under the terms of either:
7316+
7317+    The LGPL as published by the Free Software Foundation, version
7318+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
7319+
7320+  Or:
7321+
7322+    The Mozilla Public License Version 1.0. You may obtain a copy of
7323+    the License at http://www.mozilla.org/MPL/
7324+
7325+ The Original Code is eric. The Initial Developer of the Original
7326+ Code is Eric Busboom
7327+
7328+
7329+======================================================================*/
7330+
7331+/**    @file icaltime.h
7332+ *     @brief struct icaltimetype is a pseudo-object that abstracts time
7333+ *     handling.
7334+ *
7335+ *     It can represent either a DATE or a DATE-TIME (floating, UTC or in a
7336+ *     given timezone), and it keeps track internally of its native timezone.
7337+ *
7338+ *     The typical usage is to call the correct constructor specifying the
7339+ *     desired timezone. If this is not known until a later time, the
7340+ *     correct behavior is to specify a NULL timezone and call
7341+ *     icaltime_convert_to_zone() at a later time.
7342+ *
7343+ *     There are several ways to create a new icaltimetype:
7344+ *
7345+ *     - icaltime_null_time()
7346+ *     - icaltime_null_date()
7347+ *     - icaltime_current_time_with_zone()
7348+ *     - icaltime_today()
7349+ *     - icaltime_from_timet_with_zone(time_t tm, int is_date,
7350+ *             icaltimezone *zone)
7351+ *     - icaltime_from_string_with_zone(const char* str, icaltimezone *zone)
7352+ *     - icaltime_from_day_of_year(int doy,  int year)
7353+ *     - icaltime_from_week_number(int week_number, int year)
7354+ *
7355+ *     italtimetype objects can be converted to different formats:
7356+ *
7357+ *     - icaltime_as_timet(struct icaltimetype tt)
7358+ *     - icaltime_as_timet_with_zone(struct icaltimetype tt,
7359+ *             icaltimezone *zone)
7360+ *     - icaltime_as_ical_string(struct icaltimetype tt)
7361+ *
7362+ *     Accessor methods include:
7363+ *
7364+ *     - icaltime_get_timezone(struct icaltimetype t)
7365+ *     - icaltime_get_tzid(struct icaltimetype t)
7366+ *     - icaltime_set_timezone(struct icaltimetype t, const icaltimezone *zone)
7367+ *     - icaltime_day_of_year(struct icaltimetype t)
7368+ *     - icaltime_day_of_week(struct icaltimetype t)
7369+ *     - icaltime_start_doy_of_week(struct icaltimetype t, int fdow)
7370+ *     - icaltime_week_number(struct icaltimetype t)
7371+ *
7372+ *     Query methods include:
7373+ *
7374+ *     - icaltime_is_null_time(struct icaltimetype t)
7375+ *     - icaltime_is_valid_time(struct icaltimetype t)
7376+ *     - icaltime_is_date(struct icaltimetype t)
7377+ *     - icaltime_is_utc(struct icaltimetype t)
7378+ *     - icaltime_is_floating(struct icaltimetype t)
7379+ *
7380+ *     Modify, compare and utility methods include:
7381+ *
7382+ *     - icaltime_add(struct icaltimetype t, struct icaldurationtype  d)
7383+ *     - icaltime_subtract(struct icaltimetype t1, struct icaltimetype t2)
7384+ *      - icaltime_compare_with_zone(struct icaltimetype a,struct icaltimetype b)
7385+ *     - icaltime_compare(struct icaltimetype a,struct icaltimetype b)
7386+ *     - icaltime_compare_date_only(struct icaltimetype a,
7387+ *             struct icaltimetype b)
7388+ *     - icaltime_adjust(struct icaltimetype *tt, int days, int hours,
7389+ *             int minutes, int seconds);
7390+ *     - icaltime_normalize(struct icaltimetype t);
7391+ *     - icaltime_convert_to_zone(const struct icaltimetype tt,
7392+ *             icaltimezone *zone);
7393+ */
7394+
7395+#ifndef ICALTIME_H
7396+#define ICALTIME_H
7397+
7398+#include <time.h>
7399+
7400+/* An opaque struct representing a timezone. We declare this here to avoid
7401+   a circular dependancy. */
7402+#ifndef ICALTIMEZONE_DEFINED
7403+#define ICALTIMEZONE_DEFINED
7404+typedef struct _icaltimezone           icaltimezone;
7405+#endif
7406+
7407+/** icaltime_span is returned by icalcomponent_get_span() */
7408+struct icaltime_span {
7409+       time_t start;   /**< in UTC */
7410+       time_t end;     /**< in UTC */
7411+       int is_busy;    /**< 1->busy time, 0-> free time */
7412+};
7413+
7414+typedef struct icaltime_span icaltime_span;
7415+
7416+/*
7417+ *     FIXME
7418+ *
7419+ *     is_utc is redundant, and might be considered a minor optimization.
7420+ *     It might be deprecated, so you should use icaltime_is_utc() instead.
7421+ */
7422+struct icaltimetype
7423+{
7424+       int year;       /**< Actual year, e.g. 2001. */
7425+       int month;      /**< 1 (Jan) to 12 (Dec). */
7426+       int day;
7427+       int hour;
7428+       int minute;
7429+       int second;
7430+
7431+       int is_utc;     /**< 1-> time is in UTC timezone */
7432+
7433+       int is_date;    /**< 1 -> interpret this as date. */
7434+   
7435+       int is_daylight; /**< 1 -> time is in daylight savings time. */
7436+   
7437+       const icaltimezone *zone;       /**< timezone */
7438+};     
7439+
7440+typedef struct icaltimetype icaltimetype;
7441+
7442+/** Return a null time, which indicates no time has been set.
7443+    This time represent the beginning of the epoch */
7444+struct icaltimetype icaltime_null_time(void);
7445+
7446+/** Return a null date */
7447+struct icaltimetype icaltime_null_date(void);
7448+
7449+/** Returns the current time in the given timezone, as an icaltimetype. */
7450+struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone);
7451+
7452+/** Returns the current day as an icaltimetype, with is_date set. */
7453+struct icaltimetype icaltime_today(void);
7454+
7455+/** Convert seconds past UNIX epoch to a timetype*/
7456+struct icaltimetype icaltime_from_timet(const time_t v, const int is_date);
7457+
7458+/** Convert seconds past UNIX epoch to a timetype, using timezones. */
7459+struct icaltimetype icaltime_from_timet_with_zone(const time_t tm,
7460+       const int is_date, const icaltimezone *zone);
7461+
7462+/** create a time from an ISO format string */
7463+struct icaltimetype icaltime_from_string(const char* str);
7464+
7465+/** create a time from an ISO format string */
7466+struct icaltimetype icaltime_from_string_with_zone(const char* str,
7467+       const icaltimezone *zone);
7468+
7469+/** Create a new time, given a day of year and a year. */
7470+struct icaltimetype icaltime_from_day_of_year(const int doy,
7471+       const int year);
7472+
7473+/**    @brief Contructor (TODO).
7474+ * Create a new time from a weeknumber and a year. */
7475+struct icaltimetype icaltime_from_week_number(const int week_number,
7476+       const int year);
7477+
7478+/** Return the time as seconds past the UNIX epoch */
7479+time_t icaltime_as_timet(const struct icaltimetype);
7480+
7481+/** Return the time as seconds past the UNIX epoch, using timezones. */
7482+time_t icaltime_as_timet_with_zone(const struct icaltimetype tt,
7483+       const icaltimezone *zone);
7484+
7485+/** Return a string represention of the time, in RFC2445 format. */
7486+const char* icaltime_as_ical_string(const struct icaltimetype tt);
7487+char* icaltime_as_ical_string_r(const struct icaltimetype tt);
7488+
7489+/** @brief Return the timezone */
7490+const icaltimezone *icaltime_get_timezone(const struct icaltimetype t);
7491+
7492+/** @brief Return the tzid, or NULL for a floating time */
7493+const char *icaltime_get_tzid(const struct icaltimetype t);
7494+
7495+/** @brief Set the timezone */
7496+struct icaltimetype icaltime_set_timezone(struct icaltimetype *t,
7497+       const icaltimezone *zone);
7498+
7499+/** Return the day of the year of the given time */
7500+int icaltime_day_of_year(const struct icaltimetype t);
7501+
7502+/** Return the day of the week of the given time. Sunday is 1 */
7503+int icaltime_day_of_week(const struct icaltimetype t);
7504+
7505+/** Return the day of the year for the Sunday of the week that the
7506+   given time is within. */
7507+int icaltime_start_doy_of_week(const struct icaltimetype t);
7508+
7509+/** Return the day of the year for the first day of the week that the
7510+   given time is within. */
7511+int icaltime_start_doy_week(const struct icaltimetype t, int fdow);
7512+
7513+/** Return the week number for the week the given time is within */
7514+int icaltime_week_number(const struct icaltimetype t);
7515+
7516+/** Return true of the time is null. */
7517+int icaltime_is_null_time(const struct icaltimetype t);
7518+
7519+/** Returns false if the time is clearly invalid, but is not null. This
7520+   is usually the result of creating a new time type buy not clearing
7521+   it, or setting one of the flags to an illegal value. */
7522+int icaltime_is_valid_time(const struct icaltimetype t);
7523+
7524+/** @brief Returns true if time is of DATE type, false if DATE-TIME */
7525+int icaltime_is_date(const struct icaltimetype t);
7526+
7527+/** @brief Returns true if time is relative to UTC zone */
7528+int icaltime_is_utc(const struct icaltimetype t);
7529+
7530+/** @brief Returns true if time is a floating time */
7531+int icaltime_is_floating(const struct icaltimetype t);
7532+
7533+/** Return -1, 0, or 1 to indicate that a<b, a==b or a>b */
7534+int icaltime_compare_with_zone(const struct icaltimetype a,
7535+        const struct icaltimetype b);
7536+
7537+/** Return -1, 0, or 1 to indicate that a<b, a==b or a>b */
7538+int icaltime_compare(const struct icaltimetype a,
7539+       const struct icaltimetype b);
7540+
7541+/** like icaltime_compare, but only use the date parts. */
7542+int icaltime_compare_date_only(const struct icaltimetype a,
7543+       const struct icaltimetype b);
7544+
7545+/** like icaltime_compare, but only use the date parts. */
7546+int icaltime_compare_date_only_tz(const struct icaltimetype a,
7547+       const struct icaltimetype b, icaltimezone *tz);
7548+
7549+/** Adds or subtracts a number of days, hours, minutes and seconds. */
7550+void  icaltime_adjust(struct icaltimetype *tt, const int days,
7551+       const int hours, const int minutes, const int seconds);
7552+
7553+/** Normalize the icaltime, so that all fields are within the normal range. */
7554+struct icaltimetype icaltime_normalize(const struct icaltimetype t);
7555+
7556+/** convert tt, of timezone tzid, into a utc time. Does nothing if the
7557+   time is already UTC.  */
7558+struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt,
7559+       icaltimezone *zone);
7560+
7561+/** Return the number of days in the given month */
7562+int icaltime_days_in_month(const int month, const int year);
7563+
7564+/** Return whether you've specified a leapyear or not. */
7565+int icaltime_is_leap_year (const int year);
7566+
7567+/** Return the number of days in this year */
7568+int icaltime_days_in_year (const int year);
7569+
7570+/** @brief calculate an icaltimespan given a start and end time. */
7571+struct icaltime_span icaltime_span_new(struct icaltimetype dtstart,
7572+                                      struct icaltimetype dtend,
7573+                                      int is_busy);
7574+
7575+/** @brief Returns true if the two spans overlap **/
7576+int icaltime_span_overlaps(icaltime_span *s1,
7577+                          icaltime_span *s2);
7578+
7579+/** @brief Returns true if the span is totally within the containing
7580+ *  span
7581+ */
7582+int icaltime_span_contains(icaltime_span *s,
7583+                          icaltime_span *container);
7584+
7585+
7586+#endif /* !ICALTIME_H */
7587+
7588+
7589+/* -*- Mode: C -*- */
7590+/*======================================================================
7591+ FILE: icalduration.h
7592+ CREATOR: eric 26 Jan 2001
7593+
7594+
7595+
7596+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
7597+     http://www.softwarestudio.org
7598+
7599+ This program is free software; you can redistribute it and/or modify
7600+ it under the terms of either:
7601+
7602+    The LGPL as published by the Free Software Foundation, version
7603+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
7604+
7605+  Or:
7606+
7607+    The Mozilla Public License Version 1.0. You may obtain a copy of
7608+    the License at http://www.mozilla.org/MPL/
7609+
7610+ The Original Code is eric. The Initial Developer of the Original
7611+ Code is Eric Busboom
7612+
7613+
7614+======================================================================*/
7615+
7616+#ifndef ICALDURATION_H
7617+#define ICALDURATION_H
7618+
7619+
7620+struct icaldurationtype
7621+{
7622+       int is_neg;
7623+       unsigned int days;
7624+       unsigned int weeks;
7625+       unsigned int hours;
7626+       unsigned int minutes;
7627+       unsigned int seconds;
7628+};
7629+
7630+struct icaldurationtype icaldurationtype_from_int(int t);
7631+struct icaldurationtype icaldurationtype_from_string(const char*);
7632+int icaldurationtype_as_int(struct icaldurationtype duration);
7633+char* icaldurationtype_as_ical_string(struct icaldurationtype d);
7634+char* icaldurationtype_as_ical_string_r(struct icaldurationtype d);
7635+struct icaldurationtype icaldurationtype_null_duration(void);
7636+struct icaldurationtype icaldurationtype_bad_duration(void);
7637+int icaldurationtype_is_null_duration(struct icaldurationtype d);
7638+int icaldurationtype_is_bad_duration(struct icaldurationtype d);
7639+
7640+struct icaltimetype  icaltime_add(struct icaltimetype t,
7641+                                 struct icaldurationtype  d);
7642+
7643+struct icaldurationtype  icaltime_subtract(struct icaltimetype t1,
7644+                                          struct icaltimetype t2);
7645+
7646+#endif /* !ICALDURATION_H */
7647+
7648+
7649+
7650+/* -*- Mode: C -*- */
7651+/*======================================================================
7652+ FILE: icalperiod.h
7653+ CREATOR: eric 26 Jan 2001
7654+
7655+
7656+
7657+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
7658+     http://www.softwarestudio.org
7659+
7660+ This program is free software; you can redistribute it and/or modify
7661+ it under the terms of either:
7662+
7663+    The LGPL as published by the Free Software Foundation, version
7664+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
7665+
7666+  Or:
7667+
7668+    The Mozilla Public License Version 1.0. You may obtain a copy of
7669+    the License at http://www.mozilla.org/MPL/
7670+
7671+ The Original Code is eric. The Initial Developer of the Original
7672+ Code is Eric Busboom
7673+
7674+
7675+======================================================================*/
7676+
7677+#ifndef ICALPERIOD_H
7678+#define ICALPERIOD_H
7679+
7680+
7681+struct icalperiodtype
7682+{
7683+       struct icaltimetype start;
7684+       struct icaltimetype end;
7685+       struct icaldurationtype duration;
7686+};
7687+
7688+struct icalperiodtype icalperiodtype_from_string (const char* str);
7689+
7690+const char* icalperiodtype_as_ical_string(struct icalperiodtype p);
7691+char* icalperiodtype_as_ical_string_r(struct icalperiodtype p);
7692+
7693+struct icalperiodtype icalperiodtype_null_period(void);
7694+
7695+int icalperiodtype_is_null_period(struct icalperiodtype p);
7696+
7697+int icalperiodtype_is_valid_period(struct icalperiodtype p);
7698+
7699+#endif /* !ICALTIME_H */
7700+
7701+
7702+
7703+
7704+/* -*- Mode: C -*-*/
7705+/*======================================================================
7706+ FILE: icalenums.h
7707+
7708+
7709+
7710+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
7711+     http://www.softwarestudio.org
7712+
7713+ This program is free software; you can redistribute it and/or modify
7714+ it under the terms of either:
7715+
7716+    The LGPL as published by the Free Software Foundation, version
7717+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
7718+
7719+  Or:
7720+
7721+    The Mozilla Public License Version 1.0. You may obtain a copy of
7722+    the License at http://www.mozilla.org/MPL/
7723+
7724+  The original code is icalenums.h
7725+
7726+  Contributions from:
7727+     Graham Davison <g.m.davison@computer.org>
7728+
7729+======================================================================*/
7730+
7731+#ifndef ICALENUMS_H
7732+#define ICALENUMS_H
7733+
7734+
7735+
7736+/***********************************************************************
7737+ * Component enumerations
7738+**********************************************************************/
7739+
7740+typedef enum icalcomponent_kind {
7741+    ICAL_NO_COMPONENT,
7742+    ICAL_ANY_COMPONENT,        /* Used to select all components*/
7743+    ICAL_XROOT_COMPONENT,
7744+    ICAL_XATTACH_COMPONENT, /* MIME attached data, returned by parser. */
7745+    ICAL_VEVENT_COMPONENT,
7746+    ICAL_VTODO_COMPONENT,
7747+    ICAL_VJOURNAL_COMPONENT,
7748+    ICAL_VCALENDAR_COMPONENT,
7749+    ICAL_VAGENDA_COMPONENT,
7750+    ICAL_VFREEBUSY_COMPONENT,
7751+    ICAL_VALARM_COMPONENT,
7752+    ICAL_XAUDIOALARM_COMPONENT, 
7753+    ICAL_XDISPLAYALARM_COMPONENT,
7754+    ICAL_XEMAILALARM_COMPONENT,
7755+    ICAL_XPROCEDUREALARM_COMPONENT,
7756+    ICAL_VTIMEZONE_COMPONENT,
7757+    ICAL_XSTANDARD_COMPONENT,
7758+    ICAL_XDAYLIGHT_COMPONENT,
7759+    ICAL_X_COMPONENT,
7760+    ICAL_VSCHEDULE_COMPONENT,
7761+    ICAL_VQUERY_COMPONENT,
7762+    ICAL_VREPLY_COMPONENT,
7763+    ICAL_VCAR_COMPONENT,
7764+    ICAL_VCOMMAND_COMPONENT,
7765+    ICAL_XLICINVALID_COMPONENT,
7766+    ICAL_XLICMIMEPART_COMPONENT /* a non-stardard component that mirrors
7767+                               structure of MIME data */
7768+
7769+} icalcomponent_kind;
7770+
7771+
7772+
7773+/***********************************************************************
7774+ * Request Status codes
7775+ **********************************************************************/
7776+
7777+typedef enum icalrequeststatus {
7778+    ICAL_UNKNOWN_STATUS,
7779+    ICAL_2_0_SUCCESS_STATUS,
7780+    ICAL_2_1_FALLBACK_STATUS,
7781+    ICAL_2_2_IGPROP_STATUS,
7782+    ICAL_2_3_IGPARAM_STATUS,
7783+    ICAL_2_4_IGXPROP_STATUS,
7784+    ICAL_2_5_IGXPARAM_STATUS,
7785+    ICAL_2_6_IGCOMP_STATUS,
7786+    ICAL_2_7_FORWARD_STATUS,
7787+    ICAL_2_8_ONEEVENT_STATUS,
7788+    ICAL_2_9_TRUNC_STATUS,
7789+    ICAL_2_10_ONETODO_STATUS,
7790+    ICAL_2_11_TRUNCRRULE_STATUS,
7791+    ICAL_3_0_INVPROPNAME_STATUS,
7792+    ICAL_3_1_INVPROPVAL_STATUS,
7793+    ICAL_3_2_INVPARAM_STATUS,
7794+    ICAL_3_3_INVPARAMVAL_STATUS,
7795+    ICAL_3_4_INVCOMP_STATUS,
7796+    ICAL_3_5_INVTIME_STATUS,
7797+    ICAL_3_6_INVRULE_STATUS,
7798+    ICAL_3_7_INVCU_STATUS,
7799+    ICAL_3_8_NOAUTH_STATUS,
7800+    ICAL_3_9_BADVERSION_STATUS,
7801+    ICAL_3_10_TOOBIG_STATUS,
7802+    ICAL_3_11_MISSREQCOMP_STATUS,
7803+    ICAL_3_12_UNKCOMP_STATUS,
7804+    ICAL_3_13_BADCOMP_STATUS,
7805+    ICAL_3_14_NOCAP_STATUS,
7806+    ICAL_3_15_INVCOMMAND,
7807+    ICAL_4_0_BUSY_STATUS,
7808+    ICAL_4_1_STORE_ACCESS_DENIED,
7809+    ICAL_4_2_STORE_FAILED,
7810+    ICAL_4_3_STORE_NOT_FOUND,
7811+    ICAL_5_0_MAYBE_STATUS,
7812+    ICAL_5_1_UNAVAIL_STATUS,
7813+    ICAL_5_2_NOSERVICE_STATUS,
7814+    ICAL_5_3_NOSCHED_STATUS,
7815+    ICAL_6_1_CONTAINER_NOT_FOUND,
7816+       ICAL_9_0_UNRECOGNIZED_COMMAND
7817+} icalrequeststatus;
7818+
7819+
7820+const char* icalenum_reqstat_desc(icalrequeststatus stat);
7821+short icalenum_reqstat_major(icalrequeststatus stat);
7822+short icalenum_reqstat_minor(icalrequeststatus stat);
7823+icalrequeststatus icalenum_num_to_reqstat(short major, short minor);
7824+char* icalenum_reqstat_code(icalrequeststatus stat);
7825+char* icalenum_reqstat_code_r(icalrequeststatus stat);
7826+
7827+/***********************************************************************
7828+ * Conversion functions
7829+**********************************************************************/
7830+
7831+
7832+/* Thse routines used to be in icalenums.c, but were moved into the
7833+   icalproperty, icalparameter, icalvalue, or icalcomponent modules. */
7834+
7835+/* const char* icalproperty_kind_to_string(icalproperty_kind kind);*/
7836+#define icalenum_property_kind_to_string(x) icalproperty_kind_to_string(x)
7837+
7838+/*icalproperty_kind icalproperty_string_to_kind(const char* string)*/
7839+#define icalenum_string_to_property_kind(x) icalproperty_string_to_kind(x)
7840+
7841+/*icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);*/
7842+#define icalenum_property_kind_to_value_kind(x) icalproperty_kind_to_value_kind(x)
7843+
7844+/*const char* icalenum_method_to_string(icalproperty_method);*/
7845+#define icalenum_method_to_string(x) icalproperty_method_to_string(x)
7846+
7847+/*icalproperty_method icalenum_string_to_method(const char* string);*/
7848+#define icalenum_string_to_method(x) icalproperty_string_to_method(x)
7849+
7850+/*const char* icalenum_status_to_string(icalproperty_status);*/
7851+#define icalenum_status_to_string(x) icalproperty_status_to_string(x)
7852+
7853+/*icalproperty_status icalenum_string_to_status(const char* string);*/
7854+#define icalenum_string_to_status(x) icalproperty_string_to_status(x)
7855+
7856+/*icalvalue_kind icalenum_string_to_value_kind(const char* str);*/
7857+#define icalenum_string_to_value_kind(x) icalvalue_string_to_kind(x)
7858+
7859+/*const char* icalenum_value_kind_to_string(icalvalue_kind kind);*/
7860+#define icalenum_value_kind_to_string(x) icalvalue_kind_to_string(x)
7861+
7862+/*const char* icalenum_component_kind_to_string(icalcomponent_kind kind);*/
7863+#define icalenum_component_kind_to_string(x) icalcomponent_kind_to_string(x)
7864+
7865+/*icalcomponent_kind icalenum_string_to_component_kind(const char* string);*/
7866+#define icalenum_string_to_component_kind(x) icalcomponent_string_to_kind(x)
7867+
7868+
7869+#endif /* !ICALENUMS_H */
7870+
7871+/* -*- Mode: C -*- */
7872+/*======================================================================
7873+ FILE: icaltypes.h
7874+ CREATOR: eric 20 March 1999
7875+
7876+
7877+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
7878+     http://www.softwarestudio.org
7879+
7880+ This program is free software; you can redistribute it and/or modify
7881+ it under the terms of either:
7882+
7883+    The LGPL as published by the Free Software Foundation, version
7884+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
7885+
7886+  Or:
7887+
7888+    The Mozilla Public License Version 1.0. You may obtain a copy of
7889+    the License at http://www.mozilla.org/MPL/
7890+
7891+  The original code is icaltypes.h
7892+
7893+======================================================================*/
7894+
7895+#ifndef ICALTYPES_H
7896+#define ICALTYPES_H
7897+
7898+#include <time.h>
7899+
7900+
7901+struct icalgeotype
7902+{
7903+       float lat;
7904+       float lon;
7905+};
7906+
7907+
7908+struct icaldatetimeperiodtype
7909+{
7910+       struct icaltimetype time;
7911+       struct icalperiodtype period;
7912+};
7913+
7914+
7915+struct icaltriggertype
7916+{
7917+       struct icaltimetype time;
7918+       struct icaldurationtype duration;
7919+};
7920+
7921+struct icaltriggertype icaltriggertype_from_int(const int reltime);
7922+struct icaltriggertype icaltriggertype_from_string(const char* str);
7923+
7924+int icaltriggertype_is_null_trigger(struct icaltriggertype tr);
7925+int icaltriggertype_is_bad_trigger(struct icaltriggertype tr);
7926+
7927+/* struct icalreqstattype. This struct contains two string pointers,
7928+but don't try to free either of them. The "desc" string is a pointer
7929+to a static table inside the library.  Don't try to free it. The
7930+"debug" string is a pointer into the string that the called passed
7931+into to icalreqstattype_from_string. Don't try to free it either, and
7932+don't use it after the original string has been freed.
7933+
7934+BTW, you would get that original string from
7935+*icalproperty_get_requeststatus() or icalvalue_get_text(), when
7936+operating on a the value of a request_status property. */
7937+
7938+struct icalreqstattype {
7939+
7940+       icalrequeststatus code;
7941+       const char* desc;
7942+       const char* debug;
7943+};
7944+
7945+struct icalreqstattype icalreqstattype_from_string(const char* str);
7946+const char* icalreqstattype_as_string(struct icalreqstattype);
7947+char* icalreqstattype_as_string_r(struct icalreqstattype);
7948+
7949+
7950+
7951+struct icaltimezonephase {
7952+    const char* tzname;
7953+    int is_stdandard; /* 1 = standard tme, 0 = daylight savings time */
7954+    struct icaltimetype dtstart;
7955+    int offsetto;
7956+    int tzoffsetfrom;
7957+    const char* comment;
7958+    struct icaldatetimeperiodtype rdate;
7959+    const char* rrule;   
7960+};
7961+
7962+
7963+struct icaltimezonetype {
7964+    const char* tzid;
7965+    struct icaltimetype last_mod;
7966+    const char* tzurl;
7967+   
7968+    /* Array of phases. The end of the array is a phase with tzname == 0 */
7969+    struct icaltimezonephase *phases;
7970+};
7971+
7972+void icaltimezonetype_free(struct icaltimezonetype tzt);
7973+
7974+
7975+#endif /* !ICALTYPES_H */
7976+/* -*- Mode: C -*- */
7977+/*======================================================================
7978+ FILE: icalrecur.h
7979+ CREATOR: eric 20 March 2000
7980+
7981+
7982+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
7983+     http://www.softwarestudio.org
7984+
7985+ This program is free software; you can redistribute it and/or modify
7986+ it under the terms of either:
7987+
7988+    The LGPL as published by the Free Software Foundation, version
7989+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
7990+
7991+  Or:
7992+
7993+    The Mozilla Public License Version 1.0. You may obtain a copy of
7994+    the License at http://www.mozilla.org/MPL/
7995+*/
7996+
7997+/**
7998+@file icalrecur.h
7999+@brief Routines for dealing with recurring time
8000+
8001+How to use:
8002+
8003+1) Get a rule and a start time from a component
8004+
8005+@code
8006+        icalproperty rrule;
8007+        struct icalrecurrencetype recur;
8008+        struct icaltimetype dtstart;
8009+
8010+       rrule = icalcomponent_get_first_property(comp,ICAL_RRULE_PROPERTY);
8011+       recur = icalproperty_get_rrule(rrule);
8012+       start = icalproperty_get_dtstart(dtstart);
8013+@endcode
8014+
8015+Or, just make them up:
8016+
8017+@code
8018+        recur = icalrecurrencetype_from_string("FREQ=YEARLY;BYDAY=SU,WE");
8019+        dtstart = icaltime_from_string("19970101T123000")
8020+@endcode
8021+
8022+2) Create an iterator
8023+
8024+@code
8025+        icalrecur_iterator* ritr;
8026+        ritr = icalrecur_iterator_new(recur,start);
8027+@endcode
8028+
8029+3) Iterator over the occurrences
8030+
8031+@code
8032+        struct icaltimetype next;
8033+        while (next = icalrecur_iterator_next(ritr)
8034+               && !icaltime_is_null_time(next){
8035+                Do something with next
8036+        }
8037+@endcode
8038+
8039+Note that that the time returned by icalrecur_iterator_next is in
8040+whatever timezone that dtstart is in.
8041+
8042+*/
8043+
8044+#ifndef ICALRECUR_H
8045+#define ICALRECUR_H
8046+
8047+#include <time.h>
8048+
8049+/*
8050+ * Recurrance enumerations
8051+ */
8052+
8053+typedef enum icalrecurrencetype_frequency
8054+{
8055+    /* These enums are used to index an array, so don't change the
8056+       order or the integers */
8057+
8058+    ICAL_SECONDLY_RECURRENCE=0,
8059+    ICAL_MINUTELY_RECURRENCE=1,
8060+    ICAL_HOURLY_RECURRENCE=2,
8061+    ICAL_DAILY_RECURRENCE=3,
8062+    ICAL_WEEKLY_RECURRENCE=4,
8063+    ICAL_MONTHLY_RECURRENCE=5,
8064+    ICAL_YEARLY_RECURRENCE=6,
8065+    ICAL_NO_RECURRENCE=7
8066+
8067+} icalrecurrencetype_frequency;
8068+
8069+typedef enum icalrecurrencetype_weekday
8070+{
8071+    ICAL_NO_WEEKDAY,
8072+    ICAL_SUNDAY_WEEKDAY,
8073+    ICAL_MONDAY_WEEKDAY,
8074+    ICAL_TUESDAY_WEEKDAY,
8075+    ICAL_WEDNESDAY_WEEKDAY,
8076+    ICAL_THURSDAY_WEEKDAY,
8077+    ICAL_FRIDAY_WEEKDAY,
8078+    ICAL_SATURDAY_WEEKDAY
8079+} icalrecurrencetype_weekday;
8080+
8081+enum {
8082+    ICAL_RECURRENCE_ARRAY_MAX = 0x7f7f,
8083+    ICAL_RECURRENCE_ARRAY_MAX_BYTE = 0x7f
8084+};
8085+
8086+
8087+
8088+/**
8089+ * Recurrence type routines
8090+ */
8091+
8092+/* See RFC 2445 Section 4.3.10, RECUR Value, for an explaination of
8093+   the values and fields in struct icalrecurrencetype */
8094+
8095+#define ICAL_BY_SECOND_SIZE 61
8096+#define ICAL_BY_MINUTE_SIZE 61
8097+#define ICAL_BY_HOUR_SIZE 25
8098+#define ICAL_BY_DAY_SIZE 364 /* 7 days * 52 weeks */
8099+#define ICAL_BY_MONTHDAY_SIZE 32
8100+#define ICAL_BY_YEARDAY_SIZE 367
8101+#define ICAL_BY_WEEKNO_SIZE 54
8102+#define ICAL_BY_MONTH_SIZE 13
8103+#define ICAL_BY_SETPOS_SIZE 367
8104+
8105+/** Main struct for holding digested recurrence rules */
8106+struct icalrecurrencetype
8107+{
8108+       icalrecurrencetype_frequency freq;
8109+
8110+
8111+       /* until and count are mutually exclusive. */
8112+               struct icaltimetype until;
8113+       int count;
8114+
8115+       short interval;
8116+       
8117+       icalrecurrencetype_weekday week_start;
8118+       
8119+       /* The BY* parameters can each take a list of values. Here I
8120+        * assume that the list of values will not be larger than the
8121+        * range of the value -- that is, the client will not name a
8122+        * value more than once.
8123+       
8124+        * Each of the lists is terminated with the value
8125+        * ICAL_RECURRENCE_ARRAY_MAX unless the the list is full.
8126+        */
8127+
8128+       short by_second[ICAL_BY_SECOND_SIZE];
8129+       short by_minute[ICAL_BY_MINUTE_SIZE];
8130+       short by_hour[ICAL_BY_HOUR_SIZE];
8131+       short by_day[ICAL_BY_DAY_SIZE]; /* Encoded value, see below */
8132+       short by_month_day[ICAL_BY_MONTHDAY_SIZE];
8133+       short by_year_day[ ICAL_BY_YEARDAY_SIZE];
8134+       short by_week_no[ICAL_BY_WEEKNO_SIZE];
8135+       short by_month[ICAL_BY_MONTH_SIZE];
8136+       short by_set_pos[ICAL_BY_SETPOS_SIZE];
8137+};
8138+
8139+
8140+void icalrecurrencetype_clear(struct icalrecurrencetype *r);
8141+
8142+/**
8143+ * Array Encoding
8144+ *
8145+ * The 'day' element of the by_day array is encoded to allow
8146+ * representation of both the day of the week ( Monday, Tueday), but also
8147+ * the Nth day of the week ( First tuesday of the month, last thursday of
8148+ * the year) These routines decode the day values
8149+ */
8150+
8151+/** 1 == Monday, etc. */
8152+enum icalrecurrencetype_weekday icalrecurrencetype_day_day_of_week(short day);
8153+
8154+/** 0 == any of day of week. 1 == first, 2 = second, -2 == second to last, etc */
8155+int icalrecurrencetype_day_position(short day);
8156+
8157+icalrecurrencetype_weekday icalrecur_string_to_weekday(const char* str);
8158+
8159+/** Recurrance rule parser */
8160+
8161+/** Convert between strings and recurrencetype structures. */
8162+struct icalrecurrencetype icalrecurrencetype_from_string(const char* str);
8163+char* icalrecurrencetype_as_string(struct icalrecurrencetype *recur);
8164+char* icalrecurrencetype_as_string_r(struct icalrecurrencetype *recur);
8165+
8166+
8167+/** Recurrence iteration routines */
8168+
8169+typedef struct icalrecur_iterator_impl  icalrecur_iterator;
8170+
8171+/** Create a new recurrence rule iterator */
8172+icalrecur_iterator* icalrecur_iterator_new(struct icalrecurrencetype rule,
8173+                                           struct icaltimetype dtstart);
8174+
8175+/** Get the next occurrence from an iterator */
8176+struct icaltimetype icalrecur_iterator_next(icalrecur_iterator*);
8177+
8178+void icalrecur_iterator_decrement_count(icalrecur_iterator*);
8179+
8180+/** Free the iterator */
8181+void icalrecur_iterator_free(icalrecur_iterator*);
8182+
8183+/**
8184+ * Fills array up with at most 'count' time_t values, each
8185+ *  representing an occurrence time in seconds past the POSIX epoch
8186+ */
8187+int icalrecur_expand_recurrence(char* rule, time_t start,
8188+                               int count, time_t* array);
8189+
8190+
8191+#endif
8192+/* -*- Mode: C -*- */
8193+/*======================================================================
8194+ FILE: icalattach.h
8195+ CREATOR: acampi 28 May 02
8196+
8197+
8198+ (C) COPYRIGHT 2002, Andrea Campi <a.campi@inet.it>
8199+
8200+ This program is free software; you can redistribute it and/or modify
8201+ it under the terms of either:
8202+
8203+    The LGPL as published by the Free Software Foundation, version
8204+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
8205+
8206+  Or:
8207+
8208+    The Mozilla Public License Version 1.0. You may obtain a copy of
8209+    the License at http://www.mozilla.org/MPL/
8210+
8211+  The original code is icalattach.h
8212+
8213+======================================================================*/
8214+
8215+#ifndef ICALATTACH_H
8216+#define ICALATTACH_H
8217+
8218+
8219+typedef struct icalattach_impl icalattach;
8220+
8221+typedef void (* icalattach_free_fn_t) (unsigned char *data, void *user_data);
8222+
8223+icalattach *icalattach_new_from_url (const char *url);
8224+icalattach *icalattach_new_from_data (unsigned char *data,
8225+       icalattach_free_fn_t free_fn, void *free_fn_data);
8226+
8227+void icalattach_ref (icalattach *attach);
8228+void icalattach_unref (icalattach *attach);
8229+
8230+int icalattach_get_is_url (icalattach *attach);
8231+const char *icalattach_get_url (icalattach *attach);
8232+unsigned char *icalattach_get_data (icalattach *attach);
8233+
8234+struct icalattachtype* icalattachtype_new(void);
8235+void  icalattachtype_add_reference(struct icalattachtype* v);
8236+void icalattachtype_free(struct icalattachtype* v);
8237+
8238+void icalattachtype_set_url(struct icalattachtype* v, char* url);
8239+char* icalattachtype_get_url(struct icalattachtype* v);
8240+
8241+void icalattachtype_set_base64(struct icalattachtype* v, char* base64,
8242+                               int owns);
8243+char* icalattachtype_get_base64(struct icalattachtype* v);
8244+
8245+void icalattachtype_set_binary(struct icalattachtype* v, char* binary,
8246+                               int owns);
8247+void* icalattachtype_get_binary(struct icalattachtype* v);
8248+
8249+
8250+
8251+#endif /* !ICALATTACH_H */
8252+/* -*- Mode: C -*- */
8253+/*======================================================================
8254+  FILE: icalvalue.h
8255+  CREATOR: eric 20 March 1999
8256+
8257+
8258+
8259
8260+
8261+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
8262+
8263+ This program is free software; you can redistribute it and/or modify
8264+ it under the terms of either:
8265+
8266+    The LGPL as published by the Free Software Foundation, version
8267+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
8268+
8269+  Or:
8270+
8271+    The Mozilla Public License Version 1.0. You may obtain a copy of
8272+    the License at http://www.mozilla.org/MPL/
8273+
8274+  The original code is icalvalue.h
8275+
8276+  ======================================================================*/
8277+
8278+#ifndef ICALDERIVEDVALUE_H
8279+#define ICALDERIVEDVALUE_H
8280+
8281+     
8282+typedef struct icalvalue_impl icalvalue;
8283+
8284+
8285+
8286+void icalvalue_set_x(icalvalue* value, const char* v);
8287+icalvalue* icalvalue_new_x(const char* v);
8288+const char* icalvalue_get_x(const icalvalue* value);
8289+
8290+icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
8291+void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
8292+struct icalrecurrencetype icalvalue_get_recur(const icalvalue* value);
8293+
8294+icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
8295+void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
8296+struct icaltriggertype icalvalue_get_trigger(const icalvalue* value);
8297+
8298+icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
8299+void icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v);
8300+struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(const icalvalue* value);
8301+
8302+icalvalue *icalvalue_new_attach (icalattach *attach);
8303+void icalvalue_set_attach (icalvalue *value, icalattach *attach);
8304+icalattach *icalvalue_get_attach (const icalvalue *value);
8305+
8306+void icalvalue_reset_kind(icalvalue* value);
8307+
8308+typedef enum icalvalue_kind {
8309+   ICAL_ANY_VALUE=5000,
8310+    ICAL_QUERY_VALUE=5001,
8311+    ICAL_DATE_VALUE=5002,
8312+    ICAL_ATTACH_VALUE=5003,
8313+    ICAL_GEO_VALUE=5004,
8314+    ICAL_STATUS_VALUE=5005,
8315+    ICAL_TRANSP_VALUE=5006,
8316+    ICAL_STRING_VALUE=5007,
8317+    ICAL_TEXT_VALUE=5008,
8318+    ICAL_REQUESTSTATUS_VALUE=5009,
8319+    ICAL_CMD_VALUE=5010,
8320+    ICAL_BINARY_VALUE=5011,
8321+    ICAL_QUERYLEVEL_VALUE=5012,
8322+    ICAL_PERIOD_VALUE=5013,
8323+    ICAL_FLOAT_VALUE=5014,
8324+    ICAL_DATETIMEPERIOD_VALUE=5015,
8325+    ICAL_CARLEVEL_VALUE=5016,
8326+    ICAL_INTEGER_VALUE=5017,
8327+    ICAL_CLASS_VALUE=5018,
8328+    ICAL_URI_VALUE=5019,
8329+    ICAL_DURATION_VALUE=5020,
8330+    ICAL_BOOLEAN_VALUE=5021,
8331+    ICAL_X_VALUE=5022,
8332+    ICAL_CALADDRESS_VALUE=5023,
8333+    ICAL_TRIGGER_VALUE=5024,
8334+    ICAL_XLICCLASS_VALUE=5025,
8335+    ICAL_RECUR_VALUE=5026,
8336+    ICAL_ACTION_VALUE=5027,
8337+    ICAL_DATETIME_VALUE=5028,
8338+    ICAL_UTCOFFSET_VALUE=5029,
8339+    ICAL_METHOD_VALUE=5030,
8340+   ICAL_NO_VALUE=5031
8341+} icalvalue_kind ;
8342+
8343+#define ICALPROPERTY_FIRST_ENUM 10000
8344+
8345+typedef enum icalproperty_action {
8346+    ICAL_ACTION_X = 10000,
8347+    ICAL_ACTION_AUDIO = 10001,
8348+    ICAL_ACTION_DISPLAY = 10002,
8349+    ICAL_ACTION_EMAIL = 10003,
8350+    ICAL_ACTION_PROCEDURE = 10004,
8351+    ICAL_ACTION_NONE = 10005
8352+} icalproperty_action;
8353+
8354+typedef enum icalproperty_carlevel {
8355+    ICAL_CARLEVEL_X = 10006,
8356+    ICAL_CARLEVEL_CARNONE = 10007,
8357+    ICAL_CARLEVEL_CARMIN = 10008,
8358+    ICAL_CARLEVEL_CARFULL1 = 10009,
8359+    ICAL_CARLEVEL_NONE = 10010
8360+} icalproperty_carlevel;
8361+
8362+typedef enum icalproperty_class {
8363+    ICAL_CLASS_X = 10011,
8364+    ICAL_CLASS_PUBLIC = 10012,
8365+    ICAL_CLASS_PRIVATE = 10013,
8366+    ICAL_CLASS_CONFIDENTIAL = 10014,
8367+    ICAL_CLASS_NONE = 10015
8368+} icalproperty_class;
8369+
8370+typedef enum icalproperty_cmd {
8371+    ICAL_CMD_X = 10016,
8372+    ICAL_CMD_ABORT = 10017,
8373+    ICAL_CMD_CONTINUE = 10018,
8374+    ICAL_CMD_CREATE = 10019,
8375+    ICAL_CMD_DELETE = 10020,
8376+    ICAL_CMD_GENERATEUID = 10021,
8377+    ICAL_CMD_GETCAPABILITY = 10022,
8378+    ICAL_CMD_IDENTIFY = 10023,
8379+    ICAL_CMD_MODIFY = 10024,
8380+    ICAL_CMD_MOVE = 10025,
8381+    ICAL_CMD_REPLY = 10026,
8382+    ICAL_CMD_SEARCH = 10027,
8383+    ICAL_CMD_SETLOCALE = 10028,
8384+    ICAL_CMD_NONE = 10029
8385+} icalproperty_cmd;
8386+
8387+typedef enum icalproperty_method {
8388+    ICAL_METHOD_X = 10030,
8389+    ICAL_METHOD_PUBLISH = 10031,
8390+    ICAL_METHOD_REQUEST = 10032,
8391+    ICAL_METHOD_REPLY = 10033,
8392+    ICAL_METHOD_ADD = 10034,
8393+    ICAL_METHOD_CANCEL = 10035,
8394+    ICAL_METHOD_REFRESH = 10036,
8395+    ICAL_METHOD_COUNTER = 10037,
8396+    ICAL_METHOD_DECLINECOUNTER = 10038,
8397+    ICAL_METHOD_CREATE = 10039,
8398+    ICAL_METHOD_READ = 10040,
8399+    ICAL_METHOD_RESPONSE = 10041,
8400+    ICAL_METHOD_MOVE = 10042,
8401+    ICAL_METHOD_MODIFY = 10043,
8402+    ICAL_METHOD_GENERATEUID = 10044,
8403+    ICAL_METHOD_DELETE = 10045,
8404+    ICAL_METHOD_NONE = 10046
8405+} icalproperty_method;
8406+
8407+typedef enum icalproperty_querylevel {
8408+    ICAL_QUERYLEVEL_X = 10047,
8409+    ICAL_QUERYLEVEL_CALQL1 = 10048,
8410+    ICAL_QUERYLEVEL_CALQLNONE = 10049,
8411+    ICAL_QUERYLEVEL_NONE = 10050
8412+} icalproperty_querylevel;
8413+
8414+typedef enum icalproperty_status {
8415+    ICAL_STATUS_X = 10051,
8416+    ICAL_STATUS_TENTATIVE = 10052,
8417+    ICAL_STATUS_CONFIRMED = 10053,
8418+    ICAL_STATUS_COMPLETED = 10054,
8419+    ICAL_STATUS_NEEDSACTION = 10055,
8420+    ICAL_STATUS_CANCELLED = 10056,
8421+    ICAL_STATUS_INPROCESS = 10057,
8422+    ICAL_STATUS_DRAFT = 10058,
8423+    ICAL_STATUS_FINAL = 10059,
8424+    ICAL_STATUS_NONE = 10060
8425+} icalproperty_status;
8426+
8427+typedef enum icalproperty_transp {
8428+    ICAL_TRANSP_X = 10061,
8429+    ICAL_TRANSP_OPAQUE = 10062,
8430+    ICAL_TRANSP_OPAQUENOCONFLICT = 10063,
8431+    ICAL_TRANSP_TRANSPARENT = 10064,
8432+    ICAL_TRANSP_TRANSPARENTNOCONFLICT = 10065,
8433+    ICAL_TRANSP_NONE = 10066
8434+} icalproperty_transp;
8435+
8436+typedef enum icalproperty_xlicclass {
8437+    ICAL_XLICCLASS_X = 10067,
8438+    ICAL_XLICCLASS_PUBLISHNEW = 10068,
8439+    ICAL_XLICCLASS_PUBLISHUPDATE = 10069,
8440+    ICAL_XLICCLASS_PUBLISHFREEBUSY = 10070,
8441+    ICAL_XLICCLASS_REQUESTNEW = 10071,
8442+    ICAL_XLICCLASS_REQUESTUPDATE = 10072,
8443+    ICAL_XLICCLASS_REQUESTRESCHEDULE = 10073,
8444+    ICAL_XLICCLASS_REQUESTDELEGATE = 10074,
8445+    ICAL_XLICCLASS_REQUESTNEWORGANIZER = 10075,
8446+    ICAL_XLICCLASS_REQUESTFORWARD = 10076,
8447+    ICAL_XLICCLASS_REQUESTSTATUS = 10077,
8448+    ICAL_XLICCLASS_REQUESTFREEBUSY = 10078,
8449+    ICAL_XLICCLASS_REPLYACCEPT = 10079,
8450+    ICAL_XLICCLASS_REPLYDECLINE = 10080,
8451+    ICAL_XLICCLASS_REPLYDELEGATE = 10081,
8452+    ICAL_XLICCLASS_REPLYCRASHERACCEPT = 10082,
8453+    ICAL_XLICCLASS_REPLYCRASHERDECLINE = 10083,
8454+    ICAL_XLICCLASS_ADDINSTANCE = 10084,
8455+    ICAL_XLICCLASS_CANCELEVENT = 10085,
8456+    ICAL_XLICCLASS_CANCELINSTANCE = 10086,
8457+    ICAL_XLICCLASS_CANCELALL = 10087,
8458+    ICAL_XLICCLASS_REFRESH = 10088,
8459+    ICAL_XLICCLASS_COUNTER = 10089,
8460+    ICAL_XLICCLASS_DECLINECOUNTER = 10090,
8461+    ICAL_XLICCLASS_MALFORMED = 10091,
8462+    ICAL_XLICCLASS_OBSOLETE = 10092,
8463+    ICAL_XLICCLASS_MISSEQUENCED = 10093,
8464+    ICAL_XLICCLASS_UNKNOWN = 10094,
8465+    ICAL_XLICCLASS_NONE = 10095
8466+} icalproperty_xlicclass;
8467+
8468+#define ICALPROPERTY_LAST_ENUM 10096
8469+
8470+
8471+ /* QUERY */
8472+icalvalue* icalvalue_new_query(const char* v);
8473+const char* icalvalue_get_query(const icalvalue* value);
8474+void icalvalue_set_query(icalvalue* value, const char* v);
8475+
8476+
8477+ /* DATE */
8478+icalvalue* icalvalue_new_date(struct icaltimetype v);
8479+struct icaltimetype icalvalue_get_date(const icalvalue* value);
8480+void icalvalue_set_date(icalvalue* value, struct icaltimetype v);
8481+
8482+
8483+ /* GEO */
8484+icalvalue* icalvalue_new_geo(struct icalgeotype v);
8485+struct icalgeotype icalvalue_get_geo(const icalvalue* value);
8486+void icalvalue_set_geo(icalvalue* value, struct icalgeotype v);
8487+
8488+
8489+ /* STATUS */
8490+icalvalue* icalvalue_new_status(enum icalproperty_status v);
8491+enum icalproperty_status icalvalue_get_status(const icalvalue* value);
8492+void icalvalue_set_status(icalvalue* value, enum icalproperty_status v);
8493+
8494+
8495+ /* TRANSP */
8496+icalvalue* icalvalue_new_transp(enum icalproperty_transp v);
8497+enum icalproperty_transp icalvalue_get_transp(const icalvalue* value);
8498+void icalvalue_set_transp(icalvalue* value, enum icalproperty_transp v);
8499+
8500+
8501+ /* STRING */
8502+icalvalue* icalvalue_new_string(const char* v);
8503+const char* icalvalue_get_string(const icalvalue* value);
8504+void icalvalue_set_string(icalvalue* value, const char* v);
8505+
8506+
8507+ /* TEXT */
8508+icalvalue* icalvalue_new_text(const char* v);
8509+const char* icalvalue_get_text(const icalvalue* value);
8510+void icalvalue_set_text(icalvalue* value, const char* v);
8511+
8512+
8513+ /* REQUEST-STATUS */
8514+icalvalue* icalvalue_new_requeststatus(struct icalreqstattype v);
8515+struct icalreqstattype icalvalue_get_requeststatus(const icalvalue* value);
8516+void icalvalue_set_requeststatus(icalvalue* value, struct icalreqstattype v);
8517+
8518+
8519+ /* CMD */
8520+icalvalue* icalvalue_new_cmd(enum icalproperty_cmd v);
8521+enum icalproperty_cmd icalvalue_get_cmd(const icalvalue* value);
8522+void icalvalue_set_cmd(icalvalue* value, enum icalproperty_cmd v);
8523+
8524+
8525+ /* BINARY */
8526+icalvalue* icalvalue_new_binary(const char* v);
8527+const char* icalvalue_get_binary(const icalvalue* value);
8528+void icalvalue_set_binary(icalvalue* value, const char* v);
8529+
8530+
8531+ /* QUERY-LEVEL */
8532+icalvalue* icalvalue_new_querylevel(enum icalproperty_querylevel v);
8533+enum icalproperty_querylevel icalvalue_get_querylevel(const icalvalue* value);
8534+void icalvalue_set_querylevel(icalvalue* value, enum icalproperty_querylevel v);
8535+
8536+
8537+ /* PERIOD */
8538+icalvalue* icalvalue_new_period(struct icalperiodtype v);
8539+struct icalperiodtype icalvalue_get_period(const icalvalue* value);
8540+void icalvalue_set_period(icalvalue* value, struct icalperiodtype v);
8541+
8542+
8543+ /* FLOAT */
8544+icalvalue* icalvalue_new_float(float v);
8545+float icalvalue_get_float(const icalvalue* value);
8546+void icalvalue_set_float(icalvalue* value, float v);
8547+
8548+
8549+ /* CAR-LEVEL */
8550+icalvalue* icalvalue_new_carlevel(enum icalproperty_carlevel v);
8551+enum icalproperty_carlevel icalvalue_get_carlevel(const icalvalue* value);
8552+void icalvalue_set_carlevel(icalvalue* value, enum icalproperty_carlevel v);
8553+
8554+
8555+ /* INTEGER */
8556+icalvalue* icalvalue_new_integer(int v);
8557+int icalvalue_get_integer(const icalvalue* value);
8558+void icalvalue_set_integer(icalvalue* value, int v);
8559+
8560+
8561+ /* CLASS */
8562+icalvalue* icalvalue_new_class(enum icalproperty_class v);
8563+enum icalproperty_class icalvalue_get_class(const icalvalue* value);
8564+void icalvalue_set_class(icalvalue* value, enum icalproperty_class v);
8565+
8566+
8567+ /* URI */
8568+icalvalue* icalvalue_new_uri(const char* v);
8569+const char* icalvalue_get_uri(const icalvalue* value);
8570+void icalvalue_set_uri(icalvalue* value, const char* v);
8571+
8572+
8573+ /* DURATION */
8574+icalvalue* icalvalue_new_duration(struct icaldurationtype v);
8575+struct icaldurationtype icalvalue_get_duration(const icalvalue* value);
8576+void icalvalue_set_duration(icalvalue* value, struct icaldurationtype v);
8577+
8578+
8579+ /* BOOLEAN */
8580+icalvalue* icalvalue_new_boolean(int v);
8581+int icalvalue_get_boolean(const icalvalue* value);
8582+void icalvalue_set_boolean(icalvalue* value, int v);
8583+
8584+
8585+ /* CAL-ADDRESS */
8586+icalvalue* icalvalue_new_caladdress(const char* v);
8587+const char* icalvalue_get_caladdress(const icalvalue* value);
8588+void icalvalue_set_caladdress(icalvalue* value, const char* v);
8589+
8590+
8591+ /* X-LIC-CLASS */
8592+icalvalue* icalvalue_new_xlicclass(enum icalproperty_xlicclass v);
8593+enum icalproperty_xlicclass icalvalue_get_xlicclass(const icalvalue* value);
8594+void icalvalue_set_xlicclass(icalvalue* value, enum icalproperty_xlicclass v);
8595+
8596+
8597+ /* ACTION */
8598+icalvalue* icalvalue_new_action(enum icalproperty_action v);
8599+enum icalproperty_action icalvalue_get_action(const icalvalue* value);
8600+void icalvalue_set_action(icalvalue* value, enum icalproperty_action v);
8601+
8602+
8603+ /* DATE-TIME */
8604+icalvalue* icalvalue_new_datetime(struct icaltimetype v);
8605+struct icaltimetype icalvalue_get_datetime(const icalvalue* value);
8606+void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v);
8607+
8608+
8609+ /* UTC-OFFSET */
8610+icalvalue* icalvalue_new_utcoffset(int v);
8611+int icalvalue_get_utcoffset(const icalvalue* value);
8612+void icalvalue_set_utcoffset(icalvalue* value, int v);
8613+
8614+
8615+ /* METHOD */
8616+icalvalue* icalvalue_new_method(enum icalproperty_method v);
8617+enum icalproperty_method icalvalue_get_method(const icalvalue* value);
8618+void icalvalue_set_method(icalvalue* value, enum icalproperty_method v);
8619+
8620+#endif /*ICALVALUE_H*/
8621+/* -*- Mode: C -*- */
8622+/*======================================================================
8623+  FILE: icalparam.h
8624+  CREATOR: eric 20 March 1999
8625+
8626+
8627+
8628
8629+
8630+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
8631+
8632+ This program is free software; you can redistribute it and/or modify
8633+ it under the terms of either:
8634+
8635+    The LGPL as published by the Free Software Foundation, version
8636+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
8637+
8638+  Or:
8639+
8640+    The Mozilla Public License Version 1.0. You may obtain a copy of
8641+    the License at http://www.mozilla.org/MPL/
8642+
8643+  The original code is icalparam.h
8644+
8645+  ======================================================================*/
8646+
8647+#ifndef ICALDERIVEDPARAMETER_H
8648+#define ICALDERIVEDPARAMETER_H
8649+
8650+
8651+typedef struct icalparameter_impl icalparameter;
8652+
8653+const char* icalparameter_enum_to_string(int e);
8654+int icalparameter_string_to_enum(const char* str);
8655+
8656+typedef enum icalparameter_kind {
8657+    ICAL_ANY_PARAMETER = 0,
8658+    ICAL_ACTIONPARAM_PARAMETER,
8659+    ICAL_ALTREP_PARAMETER,
8660+    ICAL_CHARSET_PARAMETER,
8661+    ICAL_CN_PARAMETER,
8662+    ICAL_CUTYPE_PARAMETER,
8663+    ICAL_DELEGATEDFROM_PARAMETER,
8664+    ICAL_DELEGATEDTO_PARAMETER,
8665+    ICAL_DIR_PARAMETER,
8666+    ICAL_ENABLE_PARAMETER,
8667+    ICAL_ENCODING_PARAMETER,
8668+    ICAL_FBTYPE_PARAMETER,
8669+    ICAL_FMTTYPE_PARAMETER,
8670+    ICAL_ID_PARAMETER,
8671+    ICAL_LANGUAGE_PARAMETER,
8672+    ICAL_LATENCY_PARAMETER,
8673+    ICAL_LOCAL_PARAMETER,
8674+    ICAL_LOCALIZE_PARAMETER,
8675+    ICAL_MEMBER_PARAMETER,
8676+    ICAL_OPTIONS_PARAMETER,
8677+    ICAL_PARTSTAT_PARAMETER,
8678+    ICAL_RANGE_PARAMETER,
8679+    ICAL_RELATED_PARAMETER,
8680+    ICAL_RELTYPE_PARAMETER,
8681+    ICAL_ROLE_PARAMETER,
8682+    ICAL_RSVP_PARAMETER,
8683+    ICAL_SENTBY_PARAMETER,
8684+    ICAL_TZID_PARAMETER,
8685+    ICAL_VALUE_PARAMETER,
8686+    ICAL_X_PARAMETER,
8687+    ICAL_XLICCOMPARETYPE_PARAMETER,
8688+    ICAL_XLICERRORTYPE_PARAMETER,
8689+    ICAL_NO_PARAMETER
8690+} icalparameter_kind;
8691+
8692+#define ICALPARAMETER_FIRST_ENUM 20000
8693+
8694+typedef enum icalparameter_action {
8695+    ICAL_ACTIONPARAM_X = 20000,
8696+    ICAL_ACTIONPARAM_ASK = 20001,
8697+    ICAL_ACTIONPARAM_ABORT = 20002,
8698+    ICAL_ACTIONPARAM_NONE = 20003
8699+} icalparameter_action;
8700+
8701+typedef enum icalparameter_cutype {
8702+    ICAL_CUTYPE_X = 20004,
8703+    ICAL_CUTYPE_INDIVIDUAL = 20005,
8704+    ICAL_CUTYPE_GROUP = 20006,
8705+    ICAL_CUTYPE_RESOURCE = 20007,
8706+    ICAL_CUTYPE_ROOM = 20008,
8707+    ICAL_CUTYPE_UNKNOWN = 20009,
8708+    ICAL_CUTYPE_NONE = 20010
8709+} icalparameter_cutype;
8710+
8711+typedef enum icalparameter_enable {
8712+    ICAL_ENABLE_X = 20011,
8713+    ICAL_ENABLE_TRUE = 20012,
8714+    ICAL_ENABLE_FALSE = 20013,
8715+    ICAL_ENABLE_NONE = 20014
8716+} icalparameter_enable;
8717+
8718+typedef enum icalparameter_encoding {
8719+    ICAL_ENCODING_X = 20015,
8720+    ICAL_ENCODING_8BIT = 20016,
8721+    ICAL_ENCODING_BASE64 = 20017,
8722+    ICAL_ENCODING_NONE = 20018
8723+} icalparameter_encoding;
8724+
8725+typedef enum icalparameter_fbtype {
8726+    ICAL_FBTYPE_X = 20019,
8727+    ICAL_FBTYPE_FREE = 20020,
8728+    ICAL_FBTYPE_BUSY = 20021,
8729+    ICAL_FBTYPE_BUSYUNAVAILABLE = 20022,
8730+    ICAL_FBTYPE_BUSYTENTATIVE = 20023,
8731+    ICAL_FBTYPE_NONE = 20024
8732+} icalparameter_fbtype;
8733+
8734+typedef enum icalparameter_local {
8735+    ICAL_LOCAL_X = 20025,
8736+    ICAL_LOCAL_TRUE = 20026,
8737+    ICAL_LOCAL_FALSE = 20027,
8738+    ICAL_LOCAL_NONE = 20028
8739+} icalparameter_local;
8740+
8741+typedef enum icalparameter_partstat {
8742+    ICAL_PARTSTAT_X = 20029,
8743+    ICAL_PARTSTAT_NEEDSACTION = 20030,
8744+    ICAL_PARTSTAT_ACCEPTED = 20031,
8745+    ICAL_PARTSTAT_DECLINED = 20032,
8746+    ICAL_PARTSTAT_TENTATIVE = 20033,
8747+    ICAL_PARTSTAT_DELEGATED = 20034,
8748+    ICAL_PARTSTAT_COMPLETED = 20035,
8749+    ICAL_PARTSTAT_INPROCESS = 20036,
8750+    ICAL_PARTSTAT_NONE = 20037
8751+} icalparameter_partstat;
8752+
8753+typedef enum icalparameter_range {
8754+    ICAL_RANGE_X = 20038,
8755+    ICAL_RANGE_THISANDPRIOR = 20039,
8756+    ICAL_RANGE_THISANDFUTURE = 20040,
8757+    ICAL_RANGE_NONE = 20041
8758+} icalparameter_range;
8759+
8760+typedef enum icalparameter_related {
8761+    ICAL_RELATED_X = 20042,
8762+    ICAL_RELATED_START = 20043,
8763+    ICAL_RELATED_END = 20044,
8764+    ICAL_RELATED_NONE = 20045
8765+} icalparameter_related;
8766+
8767+typedef enum icalparameter_reltype {
8768+    ICAL_RELTYPE_X = 20046,
8769+    ICAL_RELTYPE_PARENT = 20047,
8770+    ICAL_RELTYPE_CHILD = 20048,
8771+    ICAL_RELTYPE_SIBLING = 20049,
8772+    ICAL_RELTYPE_NONE = 20050
8773+} icalparameter_reltype;
8774+
8775+typedef enum icalparameter_role {
8776+    ICAL_ROLE_X = 20051,
8777+    ICAL_ROLE_CHAIR = 20052,
8778+    ICAL_ROLE_REQPARTICIPANT = 20053,
8779+    ICAL_ROLE_OPTPARTICIPANT = 20054,
8780+    ICAL_ROLE_NONPARTICIPANT = 20055,
8781+    ICAL_ROLE_NONE = 20056
8782+} icalparameter_role;
8783+
8784+typedef enum icalparameter_rsvp {
8785+    ICAL_RSVP_X = 20057,
8786+    ICAL_RSVP_TRUE = 20058,
8787+    ICAL_RSVP_FALSE = 20059,
8788+    ICAL_RSVP_NONE = 20060
8789+} icalparameter_rsvp;
8790+
8791+typedef enum icalparameter_value {
8792+    ICAL_VALUE_X = 20061,
8793+    ICAL_VALUE_BINARY = 20062,
8794+    ICAL_VALUE_BOOLEAN = 20063,
8795+    ICAL_VALUE_DATE = 20064,
8796+    ICAL_VALUE_DURATION = 20065,
8797+    ICAL_VALUE_FLOAT = 20066,
8798+    ICAL_VALUE_INTEGER = 20067,
8799+    ICAL_VALUE_PERIOD = 20068,
8800+    ICAL_VALUE_RECUR = 20069,
8801+    ICAL_VALUE_TEXT = 20070,
8802+    ICAL_VALUE_URI = 20071,
8803+    ICAL_VALUE_ERROR = 20072,
8804+    ICAL_VALUE_DATETIME = 20073,
8805+    ICAL_VALUE_UTCOFFSET = 20074,
8806+    ICAL_VALUE_CALADDRESS = 20075,
8807+    ICAL_VALUE_NONE = 20076
8808+} icalparameter_value;
8809+
8810+typedef enum icalparameter_xliccomparetype {
8811+    ICAL_XLICCOMPARETYPE_X = 20077,
8812+    ICAL_XLICCOMPARETYPE_EQUAL = 20078,
8813+    ICAL_XLICCOMPARETYPE_NOTEQUAL = 20079,
8814+    ICAL_XLICCOMPARETYPE_LESS = 20080,
8815+    ICAL_XLICCOMPARETYPE_GREATER = 20081,
8816+    ICAL_XLICCOMPARETYPE_LESSEQUAL = 20082,
8817+    ICAL_XLICCOMPARETYPE_GREATEREQUAL = 20083,
8818+    ICAL_XLICCOMPARETYPE_REGEX = 20084,
8819+    ICAL_XLICCOMPARETYPE_ISNULL = 20085,
8820+    ICAL_XLICCOMPARETYPE_ISNOTNULL = 20086,
8821+    ICAL_XLICCOMPARETYPE_NONE = 20087
8822+} icalparameter_xliccomparetype;
8823+
8824+typedef enum icalparameter_xlicerrortype {
8825+    ICAL_XLICERRORTYPE_X = 20088,
8826+    ICAL_XLICERRORTYPE_COMPONENTPARSEERROR = 20089,
8827+    ICAL_XLICERRORTYPE_PROPERTYPARSEERROR = 20090,
8828+    ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR = 20091,
8829+    ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR = 20092,
8830+    ICAL_XLICERRORTYPE_VALUEPARSEERROR = 20093,
8831+    ICAL_XLICERRORTYPE_INVALIDITIP = 20094,
8832+    ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR = 20095,
8833+    ICAL_XLICERRORTYPE_MIMEPARSEERROR = 20096,
8834+    ICAL_XLICERRORTYPE_VCALPROPPARSEERROR = 20097,
8835+    ICAL_XLICERRORTYPE_NONE = 20098
8836+} icalparameter_xlicerrortype;
8837+
8838+#define ICALPARAMETER_LAST_ENUM 20099
8839+
8840+/* ID */
8841+icalparameter* icalparameter_new_id(const char* v);
8842+const char* icalparameter_get_id(const icalparameter* value);
8843+void icalparameter_set_id(icalparameter* value, const char* v);
8844+
8845+/* LOCALIZE */
8846+icalparameter* icalparameter_new_localize(const char* v);
8847+const char* icalparameter_get_localize(const icalparameter* value);
8848+void icalparameter_set_localize(icalparameter* value, const char* v);
8849+
8850+/* LANGUAGE */
8851+icalparameter* icalparameter_new_language(const char* v);
8852+const char* icalparameter_get_language(const icalparameter* value);
8853+void icalparameter_set_language(icalparameter* value, const char* v);
8854+
8855+/* DIR */
8856+icalparameter* icalparameter_new_dir(const char* v);
8857+const char* icalparameter_get_dir(const icalparameter* value);
8858+void icalparameter_set_dir(icalparameter* value, const char* v);
8859+
8860+/* RELTYPE */
8861+icalparameter* icalparameter_new_reltype(icalparameter_reltype v);
8862+icalparameter_reltype icalparameter_get_reltype(const icalparameter* value);
8863+void icalparameter_set_reltype(icalparameter* value, icalparameter_reltype v);
8864+
8865+/* FMTTYPE */
8866+icalparameter* icalparameter_new_fmttype(const char* v);
8867+const char* icalparameter_get_fmttype(const icalparameter* value);
8868+void icalparameter_set_fmttype(icalparameter* value, const char* v);
8869+
8870+/* OPTIONS */
8871+icalparameter* icalparameter_new_options(const char* v);
8872+const char* icalparameter_get_options(const icalparameter* value);
8873+void icalparameter_set_options(icalparameter* value, const char* v);
8874+
8875+/* TZID */
8876+icalparameter* icalparameter_new_tzid(const char* v);
8877+const char* icalparameter_get_tzid(const icalparameter* value);
8878+void icalparameter_set_tzid(icalparameter* value, const char* v);
8879+
8880+/* ENABLE */
8881+icalparameter* icalparameter_new_enable(icalparameter_enable v);
8882+icalparameter_enable icalparameter_get_enable(const icalparameter* value);
8883+void icalparameter_set_enable(icalparameter* value, icalparameter_enable v);
8884+
8885+/* RANGE */
8886+icalparameter* icalparameter_new_range(icalparameter_range v);
8887+icalparameter_range icalparameter_get_range(const icalparameter* value);
8888+void icalparameter_set_range(icalparameter* value, icalparameter_range v);
8889+
8890+/* LATENCY */
8891+icalparameter* icalparameter_new_latency(const char* v);
8892+const char* icalparameter_get_latency(const icalparameter* value);
8893+void icalparameter_set_latency(icalparameter* value, const char* v);
8894+
8895+/* DELEGATED-TO */
8896+icalparameter* icalparameter_new_delegatedto(const char* v);
8897+const char* icalparameter_get_delegatedto(const icalparameter* value);
8898+void icalparameter_set_delegatedto(icalparameter* value, const char* v);
8899+
8900+/* LOCAL */
8901+icalparameter* icalparameter_new_local(icalparameter_local v);
8902+icalparameter_local icalparameter_get_local(const icalparameter* value);
8903+void icalparameter_set_local(icalparameter* value, icalparameter_local v);
8904+
8905+/* CN */
8906+icalparameter* icalparameter_new_cn(const char* v);
8907+const char* icalparameter_get_cn(const icalparameter* value);
8908+void icalparameter_set_cn(icalparameter* value, const char* v);
8909+
8910+/* CHARSET */
8911+icalparameter* icalparameter_new_charset(const char* v);
8912+const char* icalparameter_get_charset(const icalparameter* value);
8913+void icalparameter_set_charset(icalparameter* value, const char* v);
8914+
8915+/* ACTIONPARAM */
8916+icalparameter* icalparameter_new_actionparam(icalparameter_action v);
8917+icalparameter_action icalparameter_get_actionparam(const icalparameter* value);
8918+void icalparameter_set_actionparam(icalparameter* value, icalparameter_action v);
8919+
8920+/* VALUE */
8921+icalparameter* icalparameter_new_value(icalparameter_value v);
8922+icalparameter_value icalparameter_get_value(const icalparameter* value);
8923+void icalparameter_set_value(icalparameter* value, icalparameter_value v);
8924+
8925+/* X-LIC-COMPARETYPE */
8926+icalparameter* icalparameter_new_xliccomparetype(icalparameter_xliccomparetype v);
8927+icalparameter_xliccomparetype icalparameter_get_xliccomparetype(const icalparameter* value);
8928+void icalparameter_set_xliccomparetype(icalparameter* value, icalparameter_xliccomparetype v);
8929+
8930+/* X */
8931+icalparameter* icalparameter_new_x(const char* v);
8932+const char* icalparameter_get_x(const icalparameter* value);
8933+void icalparameter_set_x(icalparameter* value, const char* v);
8934+
8935+/* MEMBER */
8936+icalparameter* icalparameter_new_member(const char* v);
8937+const char* icalparameter_get_member(const icalparameter* value);
8938+void icalparameter_set_member(icalparameter* value, const char* v);
8939+
8940+/* SENT-BY */
8941+icalparameter* icalparameter_new_sentby(const char* v);
8942+const char* icalparameter_get_sentby(const icalparameter* value);
8943+void icalparameter_set_sentby(icalparameter* value, const char* v);
8944+
8945+/* CUTYPE */
8946+icalparameter* icalparameter_new_cutype(icalparameter_cutype v);
8947+icalparameter_cutype icalparameter_get_cutype(const icalparameter* value);
8948+void icalparameter_set_cutype(icalparameter* value, icalparameter_cutype v);
8949+
8950+/* RSVP */
8951+icalparameter* icalparameter_new_rsvp(icalparameter_rsvp v);
8952+icalparameter_rsvp icalparameter_get_rsvp(const icalparameter* value);
8953+void icalparameter_set_rsvp(icalparameter* value, icalparameter_rsvp v);
8954+
8955+/* RELATED */
8956+icalparameter* icalparameter_new_related(icalparameter_related v);
8957+icalparameter_related icalparameter_get_related(const icalparameter* value);
8958+void icalparameter_set_related(icalparameter* value, icalparameter_related v);
8959+
8960+/* X-LIC-ERRORTYPE */
8961+icalparameter* icalparameter_new_xlicerrortype(icalparameter_xlicerrortype v);
8962+icalparameter_xlicerrortype icalparameter_get_xlicerrortype(const icalparameter* value);
8963+void icalparameter_set_xlicerrortype(icalparameter* value, icalparameter_xlicerrortype v);
8964+
8965+/* ENCODING */
8966+icalparameter* icalparameter_new_encoding(icalparameter_encoding v);
8967+icalparameter_encoding icalparameter_get_encoding(const icalparameter* value);
8968+void icalparameter_set_encoding(icalparameter* value, icalparameter_encoding v);
8969+
8970+/* ALTREP */
8971+icalparameter* icalparameter_new_altrep(const char* v);
8972+const char* icalparameter_get_altrep(const icalparameter* value);
8973+void icalparameter_set_altrep(icalparameter* value, const char* v);
8974+
8975+/* DELEGATED-FROM */
8976+icalparameter* icalparameter_new_delegatedfrom(const char* v);
8977+const char* icalparameter_get_delegatedfrom(const icalparameter* value);
8978+void icalparameter_set_delegatedfrom(icalparameter* value, const char* v);
8979+
8980+/* FBTYPE */
8981+icalparameter* icalparameter_new_fbtype(icalparameter_fbtype v);
8982+icalparameter_fbtype icalparameter_get_fbtype(const icalparameter* value);
8983+void icalparameter_set_fbtype(icalparameter* value, icalparameter_fbtype v);
8984+
8985+/* PARTSTAT */
8986+icalparameter* icalparameter_new_partstat(icalparameter_partstat v);
8987+icalparameter_partstat icalparameter_get_partstat(const icalparameter* value);
8988+void icalparameter_set_partstat(icalparameter* value, icalparameter_partstat v);
8989+
8990+/* ROLE */
8991+icalparameter* icalparameter_new_role(icalparameter_role v);
8992+icalparameter_role icalparameter_get_role(const icalparameter* value);
8993+void icalparameter_set_role(icalparameter* value, icalparameter_role v);
8994+
8995+#endif /*ICALPARAMETER_H*/
8996+
8997+/* Everything below this line is machine generated. Do not edit. */
8998+/* -*- Mode: C -*- */
8999+/*======================================================================
9000+  FILE: icalvalue.h
9001+  CREATOR: eric 20 March 1999
9002+
9003+
9004+
9005+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
9006+     http://www.softwarestudio.org
9007+
9008+ This program is free software; you can redistribute it and/or modify
9009+ it under the terms of either:
9010+
9011+    The LGPL as published by the Free Software Foundation, version
9012+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
9013+
9014+  Or:
9015+
9016+    The Mozilla Public License Version 1.0. You may obtain a copy of
9017+    the License at http://www.mozilla.org/MPL/
9018+
9019+  The original code is icalvalue.h
9020+
9021+  ======================================================================*/
9022+
9023+#ifndef ICALVALUE_H
9024+#define ICALVALUE_H
9025+
9026+#include <time.h>
9027+                         
9028+/* Defined in icalderivedvalue.h */
9029+/*typedef struct icalvalue_impl icalvalue;*/
9030+
9031+icalvalue* icalvalue_new(icalvalue_kind kind);
9032+
9033+icalvalue* icalvalue_new_clone(const icalvalue* value);
9034+
9035+icalvalue* icalvalue_new_from_string(icalvalue_kind kind, const char* str);
9036+
9037+void icalvalue_free(icalvalue* value);
9038+
9039+int icalvalue_is_valid(const icalvalue* value);
9040+
9041+const char* icalvalue_as_ical_string(const icalvalue* value);
9042+char* icalvalue_as_ical_string_r(const icalvalue* value);
9043+
9044+icalvalue_kind icalvalue_isa(const icalvalue* value);
9045+
9046+int icalvalue_isa_value(void*);
9047+
9048+icalparameter_xliccomparetype icalvalue_compare(const icalvalue* a, const icalvalue *b);
9049+
9050+
9051+/* Special, non autogenerated value accessors */
9052+
9053+icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
9054+void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
9055+struct icalrecurrencetype icalvalue_get_recur(const icalvalue* value);
9056+
9057+icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
9058+void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
9059+struct icaltriggertype icalvalue_get_trigger(const icalvalue* value);
9060+
9061+icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
9062+void icalvalue_set_datetimeperiod(icalvalue* value,
9063+                                 struct icaldatetimeperiodtype v);
9064+struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(const icalvalue* value);
9065+
9066+/* Convert enumerations */
9067+
9068+icalvalue_kind icalvalue_string_to_kind(const char* str);
9069+const char* icalvalue_kind_to_string(const icalvalue_kind kind);
9070+
9071+/** Check validity of a specific icalvalue_kind **/
9072+int icalvalue_kind_is_valid(const icalvalue_kind kind);
9073+
9074+/** Encode a character string in ical format, esacpe certain characters, etc. */
9075+int icalvalue_encode_ical_string(const char *szText, char *szEncText, int MaxBufferLen);
9076+
9077+/** Extract the original character string encoded by the above function **/
9078+int icalvalue_decode_ical_string(const char *szText, char *szDecText, int nMaxBufferLen);
9079+
9080+#endif /*ICALVALUE_H*/
9081+/* -*- Mode: C -*- */
9082+/*======================================================================
9083+  FILE: icalparam.h
9084+  CREATOR: eric 20 March 1999
9085+
9086+
9087+
9088
9089+
9090+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
9091+     http://www.softwarestudio.org
9092+
9093+ This program is free software; you can redistribute it and/or modify
9094+ it under the terms of either:
9095+
9096+    The LGPL as published by the Free Software Foundation, version
9097+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
9098+
9099+  Or:
9100+
9101+    The Mozilla Public License Version 1.0. You may obtain a copy of
9102+    the License at http://www.mozilla.org/MPL/
9103+
9104+  The original code is icalparam.h
9105+
9106+  ======================================================================*/
9107+
9108+#ifndef ICALPARAM_H
9109+#define ICALPARAM_H
9110+
9111+
9112+/* Declared in icalderivedparameter.h */
9113+/*typedef struct icalparameter_impl icalparameter;*/
9114+
9115+icalparameter* icalparameter_new(icalparameter_kind kind);
9116+icalparameter* icalparameter_new_clone(icalparameter* p);
9117+
9118+/* Create from string of form "PARAMNAME=VALUE" */
9119+icalparameter* icalparameter_new_from_string(const char* value);
9120+
9121+/* Create from just the value, the part after the "=" */
9122+icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind, const char* value);
9123+
9124+void icalparameter_free(icalparameter* parameter);
9125+
9126+char* icalparameter_as_ical_string(icalparameter* parameter);
9127+char* icalparameter_as_ical_string_r(icalparameter* parameter);
9128+
9129+int icalparameter_is_valid(icalparameter* parameter);
9130+
9131+icalparameter_kind icalparameter_isa(icalparameter* parameter);
9132+
9133+int icalparameter_isa_parameter(void* param);
9134+
9135+/* Access the name of an X parameer */
9136+void icalparameter_set_xname (icalparameter* param, const char* v);
9137+const char* icalparameter_get_xname(icalparameter* param);
9138+void icalparameter_set_xvalue (icalparameter* param, const char* v);
9139+const char* icalparameter_get_xvalue(icalparameter* param);
9140+
9141+/* Convert enumerations */
9142+
9143+const char* icalparameter_kind_to_string(icalparameter_kind kind);
9144+icalparameter_kind icalparameter_string_to_kind(const char* string);
9145+
9146+
9147+
9148+#endif
9149+/* -*- Mode: C -*-
9150+  ======================================================================
9151+  FILE: icalderivedproperties.{c,h}
9152+  CREATOR: eric 09 May 1999
9153
9154+   
9155+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
9156+ ======================================================================*/
9157+
9158+
9159+#ifndef ICALDERIVEDPROPERTY_H
9160+#define ICALDERIVEDPROPERTY_H
9161+
9162+#include <time.h>
9163+
9164+typedef struct icalproperty_impl icalproperty;
9165+
9166+typedef enum icalproperty_kind {
9167+    ICAL_ANY_PROPERTY = 0,
9168+    ICAL_ACTION_PROPERTY,
9169+    ICAL_ALLOWCONFLICT_PROPERTY,
9170+    ICAL_ATTACH_PROPERTY,
9171+    ICAL_ATTENDEE_PROPERTY,
9172+    ICAL_CALID_PROPERTY,
9173+    ICAL_CALMASTER_PROPERTY,
9174+    ICAL_CALSCALE_PROPERTY,
9175+    ICAL_CAPVERSION_PROPERTY,
9176+    ICAL_CARLEVEL_PROPERTY,
9177+    ICAL_CARID_PROPERTY,
9178+    ICAL_CATEGORIES_PROPERTY,
9179+    ICAL_CLASS_PROPERTY,
9180+    ICAL_CMD_PROPERTY,
9181+    ICAL_COMMENT_PROPERTY,
9182+    ICAL_COMPLETED_PROPERTY,
9183+    ICAL_COMPONENTS_PROPERTY,
9184+    ICAL_CONTACT_PROPERTY,
9185+    ICAL_CREATED_PROPERTY,
9186+    ICAL_CSID_PROPERTY,
9187+    ICAL_DATEMAX_PROPERTY,
9188+    ICAL_DATEMIN_PROPERTY,
9189+    ICAL_DECREED_PROPERTY,
9190+    ICAL_DEFAULTCHARSET_PROPERTY,
9191+    ICAL_DEFAULTLOCALE_PROPERTY,
9192+    ICAL_DEFAULTTZID_PROPERTY,
9193+    ICAL_DEFAULTVCARS_PROPERTY,
9194+    ICAL_DENY_PROPERTY,
9195+    ICAL_DESCRIPTION_PROPERTY,
9196+    ICAL_DTEND_PROPERTY,
9197+    ICAL_DTSTAMP_PROPERTY,
9198+    ICAL_DTSTART_PROPERTY,
9199+    ICAL_DUE_PROPERTY,
9200+    ICAL_DURATION_PROPERTY,
9201+    ICAL_EXDATE_PROPERTY,
9202+    ICAL_EXPAND_PROPERTY,
9203+    ICAL_EXRULE_PROPERTY,
9204+    ICAL_FREEBUSY_PROPERTY,
9205+    ICAL_GEO_PROPERTY,
9206+    ICAL_GRANT_PROPERTY,
9207+    ICAL_ITIPVERSION_PROPERTY,
9208+    ICAL_LASTMODIFIED_PROPERTY,
9209+    ICAL_LOCATION_PROPERTY,
9210+    ICAL_MAXCOMPONENTSIZE_PROPERTY,
9211+    ICAL_MAXDATE_PROPERTY,
9212+    ICAL_MAXRESULTS_PROPERTY,
9213+    ICAL_MAXRESULTSSIZE_PROPERTY,
9214+    ICAL_METHOD_PROPERTY,
9215+    ICAL_MINDATE_PROPERTY,
9216+    ICAL_MULTIPART_PROPERTY,
9217+    ICAL_NAME_PROPERTY,
9218+    ICAL_ORGANIZER_PROPERTY,
9219+    ICAL_OWNER_PROPERTY,
9220+    ICAL_PERCENTCOMPLETE_PROPERTY,
9221+    ICAL_PERMISSION_PROPERTY,
9222+    ICAL_PRIORITY_PROPERTY,
9223+    ICAL_PRODID_PROPERTY,
9224+    ICAL_QUERY_PROPERTY,
9225+    ICAL_QUERYLEVEL_PROPERTY,
9226+    ICAL_QUERYID_PROPERTY,
9227+    ICAL_QUERYNAME_PROPERTY,
9228+    ICAL_RDATE_PROPERTY,
9229+    ICAL_RECURACCEPTED_PROPERTY,
9230+    ICAL_RECUREXPAND_PROPERTY,
9231+    ICAL_RECURLIMIT_PROPERTY,
9232+    ICAL_RECURRENCEID_PROPERTY,
9233+    ICAL_RELATEDTO_PROPERTY,
9234+    ICAL_RELCALID_PROPERTY,
9235+    ICAL_REPEAT_PROPERTY,
9236+    ICAL_REQUESTSTATUS_PROPERTY,
9237+    ICAL_RESOURCES_PROPERTY,
9238+    ICAL_RESTRICTION_PROPERTY,
9239+    ICAL_RRULE_PROPERTY,
9240+    ICAL_SCOPE_PROPERTY,
9241+    ICAL_SEQUENCE_PROPERTY,
9242+    ICAL_STATUS_PROPERTY,
9243+    ICAL_STORESEXPANDED_PROPERTY,
9244+    ICAL_SUMMARY_PROPERTY,
9245+    ICAL_TARGET_PROPERTY,
9246+    ICAL_TRANSP_PROPERTY,
9247+    ICAL_TRIGGER_PROPERTY,
9248+    ICAL_TZID_PROPERTY,
9249+    ICAL_TZNAME_PROPERTY,
9250+    ICAL_TZOFFSETFROM_PROPERTY,
9251+    ICAL_TZOFFSETTO_PROPERTY,
9252+    ICAL_TZURL_PROPERTY,
9253+    ICAL_UID_PROPERTY,
9254+    ICAL_URL_PROPERTY,
9255+    ICAL_VERSION_PROPERTY,
9256+    ICAL_X_PROPERTY,
9257+    ICAL_XLICCLASS_PROPERTY,
9258+    ICAL_XLICCLUSTERCOUNT_PROPERTY,
9259+    ICAL_XLICERROR_PROPERTY,
9260+    ICAL_XLICMIMECHARSET_PROPERTY,
9261+    ICAL_XLICMIMECID_PROPERTY,
9262+    ICAL_XLICMIMECONTENTTYPE_PROPERTY,
9263+    ICAL_XLICMIMEENCODING_PROPERTY,
9264+    ICAL_XLICMIMEFILENAME_PROPERTY,
9265+    ICAL_XLICMIMEOPTINFO_PROPERTY,
9266+    ICAL_NO_PROPERTY
9267+} icalproperty_kind;
9268+
9269+
9270+/* ACTION */
9271+icalproperty* icalproperty_new_action(enum icalproperty_action v);
9272+void icalproperty_set_action(icalproperty* prop, enum icalproperty_action v);
9273+enum icalproperty_action icalproperty_get_action(const icalproperty* prop);icalproperty* icalproperty_vanew_action(enum icalproperty_action v, ...);
9274+
9275+/* ALLOW-CONFLICT */
9276+icalproperty* icalproperty_new_allowconflict(const char* v);
9277+void icalproperty_set_allowconflict(icalproperty* prop, const char* v);
9278+const char* icalproperty_get_allowconflict(const icalproperty* prop);icalproperty* icalproperty_vanew_allowconflict(const char* v, ...);
9279+
9280+/* ATTACH */
9281+icalproperty* icalproperty_new_attach(icalattach * v);
9282+void icalproperty_set_attach(icalproperty* prop, icalattach * v);
9283+icalattach * icalproperty_get_attach(const icalproperty* prop);icalproperty* icalproperty_vanew_attach(icalattach * v, ...);
9284+
9285+/* ATTENDEE */
9286+icalproperty* icalproperty_new_attendee(const char* v);
9287+void icalproperty_set_attendee(icalproperty* prop, const char* v);
9288+const char* icalproperty_get_attendee(const icalproperty* prop);icalproperty* icalproperty_vanew_attendee(const char* v, ...);
9289+
9290+/* CALID */
9291+icalproperty* icalproperty_new_calid(const char* v);
9292+void icalproperty_set_calid(icalproperty* prop, const char* v);
9293+const char* icalproperty_get_calid(const icalproperty* prop);icalproperty* icalproperty_vanew_calid(const char* v, ...);
9294+
9295+/* CALMASTER */
9296+icalproperty* icalproperty_new_calmaster(const char* v);
9297+void icalproperty_set_calmaster(icalproperty* prop, const char* v);
9298+const char* icalproperty_get_calmaster(const icalproperty* prop);icalproperty* icalproperty_vanew_calmaster(const char* v, ...);
9299+
9300+/* CALSCALE */
9301+icalproperty* icalproperty_new_calscale(const char* v);
9302+void icalproperty_set_calscale(icalproperty* prop, const char* v);
9303+const char* icalproperty_get_calscale(const icalproperty* prop);icalproperty* icalproperty_vanew_calscale(const char* v, ...);
9304+
9305+/* CAP-VERSION */
9306+icalproperty* icalproperty_new_capversion(const char* v);
9307+void icalproperty_set_capversion(icalproperty* prop, const char* v);
9308+const char* icalproperty_get_capversion(const icalproperty* prop);icalproperty* icalproperty_vanew_capversion(const char* v, ...);
9309+
9310+/* CAR-LEVEL */
9311+icalproperty* icalproperty_new_carlevel(enum icalproperty_carlevel v);
9312+void icalproperty_set_carlevel(icalproperty* prop, enum icalproperty_carlevel v);
9313+enum icalproperty_carlevel icalproperty_get_carlevel(const icalproperty* prop);icalproperty* icalproperty_vanew_carlevel(enum icalproperty_carlevel v, ...);
9314+
9315+/* CARID */
9316+icalproperty* icalproperty_new_carid(const char* v);
9317+void icalproperty_set_carid(icalproperty* prop, const char* v);
9318+const char* icalproperty_get_carid(const icalproperty* prop);icalproperty* icalproperty_vanew_carid(const char* v, ...);
9319+
9320+/* CATEGORIES */
9321+icalproperty* icalproperty_new_categories(const char* v);
9322+void icalproperty_set_categories(icalproperty* prop, const char* v);
9323+const char* icalproperty_get_categories(const icalproperty* prop);icalproperty* icalproperty_vanew_categories(const char* v, ...);
9324+
9325+/* CLASS */
9326+icalproperty* icalproperty_new_class(enum icalproperty_class v);
9327+void icalproperty_set_class(icalproperty* prop, enum icalproperty_class v);
9328+enum icalproperty_class icalproperty_get_class(const icalproperty* prop);icalproperty* icalproperty_vanew_class(enum icalproperty_class v, ...);
9329+
9330+/* CMD */
9331+icalproperty* icalproperty_new_cmd(enum icalproperty_cmd v);
9332+void icalproperty_set_cmd(icalproperty* prop, enum icalproperty_cmd v);
9333+enum icalproperty_cmd icalproperty_get_cmd(const icalproperty* prop);icalproperty* icalproperty_vanew_cmd(enum icalproperty_cmd v, ...);
9334+
9335+/* COMMENT */
9336+icalproperty* icalproperty_new_comment(const char* v);
9337+void icalproperty_set_comment(icalproperty* prop, const char* v);
9338+const char* icalproperty_get_comment(const icalproperty* prop);icalproperty* icalproperty_vanew_comment(const char* v, ...);
9339+
9340+/* COMPLETED */
9341+icalproperty* icalproperty_new_completed(struct icaltimetype v);
9342+void icalproperty_set_completed(icalproperty* prop, struct icaltimetype v);
9343+struct icaltimetype icalproperty_get_completed(const icalproperty* prop);icalproperty* icalproperty_vanew_completed(struct icaltimetype v, ...);
9344+
9345+/* COMPONENTS */
9346+icalproperty* icalproperty_new_components(const char* v);
9347+void icalproperty_set_components(icalproperty* prop, const char* v);
9348+const char* icalproperty_get_components(const icalproperty* prop);icalproperty* icalproperty_vanew_components(const char* v, ...);
9349+
9350+/* CONTACT */
9351+icalproperty* icalproperty_new_contact(const char* v);
9352+void icalproperty_set_contact(icalproperty* prop, const char* v);
9353+const char* icalproperty_get_contact(const icalproperty* prop);icalproperty* icalproperty_vanew_contact(const char* v, ...);
9354+
9355+/* CREATED */
9356+icalproperty* icalproperty_new_created(struct icaltimetype v);
9357+void icalproperty_set_created(icalproperty* prop, struct icaltimetype v);
9358+struct icaltimetype icalproperty_get_created(const icalproperty* prop);icalproperty* icalproperty_vanew_created(struct icaltimetype v, ...);
9359+
9360+/* CSID */
9361+icalproperty* icalproperty_new_csid(const char* v);
9362+void icalproperty_set_csid(icalproperty* prop, const char* v);
9363+const char* icalproperty_get_csid(const icalproperty* prop);icalproperty* icalproperty_vanew_csid(const char* v, ...);
9364+
9365+/* DATE-MAX */
9366+icalproperty* icalproperty_new_datemax(struct icaltimetype v);
9367+void icalproperty_set_datemax(icalproperty* prop, struct icaltimetype v);
9368+struct icaltimetype icalproperty_get_datemax(const icalproperty* prop);icalproperty* icalproperty_vanew_datemax(struct icaltimetype v, ...);
9369+
9370+/* DATE-MIN */
9371+icalproperty* icalproperty_new_datemin(struct icaltimetype v);
9372+void icalproperty_set_datemin(icalproperty* prop, struct icaltimetype v);
9373+struct icaltimetype icalproperty_get_datemin(const icalproperty* prop);icalproperty* icalproperty_vanew_datemin(struct icaltimetype v, ...);
9374+
9375+/* DECREED */
9376+icalproperty* icalproperty_new_decreed(const char* v);
9377+void icalproperty_set_decreed(icalproperty* prop, const char* v);
9378+const char* icalproperty_get_decreed(const icalproperty* prop);icalproperty* icalproperty_vanew_decreed(const char* v, ...);
9379+
9380+/* DEFAULT-CHARSET */
9381+icalproperty* icalproperty_new_defaultcharset(const char* v);
9382+void icalproperty_set_defaultcharset(icalproperty* prop, const char* v);
9383+const char* icalproperty_get_defaultcharset(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultcharset(const char* v, ...);
9384+
9385+/* DEFAULT-LOCALE */
9386+icalproperty* icalproperty_new_defaultlocale(const char* v);
9387+void icalproperty_set_defaultlocale(icalproperty* prop, const char* v);
9388+const char* icalproperty_get_defaultlocale(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultlocale(const char* v, ...);
9389+
9390+/* DEFAULT-TZID */
9391+icalproperty* icalproperty_new_defaulttzid(const char* v);
9392+void icalproperty_set_defaulttzid(icalproperty* prop, const char* v);
9393+const char* icalproperty_get_defaulttzid(const icalproperty* prop);icalproperty* icalproperty_vanew_defaulttzid(const char* v, ...);
9394+
9395+/* DEFAULT-VCARS */
9396+icalproperty* icalproperty_new_defaultvcars(const char* v);
9397+void icalproperty_set_defaultvcars(icalproperty* prop, const char* v);
9398+const char* icalproperty_get_defaultvcars(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultvcars(const char* v, ...);
9399+
9400+/* DENY */
9401+icalproperty* icalproperty_new_deny(const char* v);
9402+void icalproperty_set_deny(icalproperty* prop, const char* v);
9403+const char* icalproperty_get_deny(const icalproperty* prop);icalproperty* icalproperty_vanew_deny(const char* v, ...);
9404+
9405+/* DESCRIPTION */
9406+icalproperty* icalproperty_new_description(const char* v);
9407+void icalproperty_set_description(icalproperty* prop, const char* v);
9408+const char* icalproperty_get_description(const icalproperty* prop);icalproperty* icalproperty_vanew_description(const char* v, ...);
9409+
9410+/* DTEND */
9411+icalproperty* icalproperty_new_dtend(struct icaltimetype v);
9412+void icalproperty_set_dtend(icalproperty* prop, struct icaltimetype v);
9413+struct icaltimetype icalproperty_get_dtend(const icalproperty* prop);icalproperty* icalproperty_vanew_dtend(struct icaltimetype v, ...);
9414+
9415+/* DTSTAMP */
9416+icalproperty* icalproperty_new_dtstamp(struct icaltimetype v);
9417+void icalproperty_set_dtstamp(icalproperty* prop, struct icaltimetype v);
9418+struct icaltimetype icalproperty_get_dtstamp(const icalproperty* prop);icalproperty* icalproperty_vanew_dtstamp(struct icaltimetype v, ...);
9419+
9420+/* DTSTART */
9421+icalproperty* icalproperty_new_dtstart(struct icaltimetype v);
9422+void icalproperty_set_dtstart(icalproperty* prop, struct icaltimetype v);
9423+struct icaltimetype icalproperty_get_dtstart(const icalproperty* prop);icalproperty* icalproperty_vanew_dtstart(struct icaltimetype v, ...);
9424+
9425+/* DUE */
9426+icalproperty* icalproperty_new_due(struct icaltimetype v);
9427+void icalproperty_set_due(icalproperty* prop, struct icaltimetype v);
9428+struct icaltimetype icalproperty_get_due(const icalproperty* prop);icalproperty* icalproperty_vanew_due(struct icaltimetype v, ...);
9429+
9430+/* DURATION */
9431+icalproperty* icalproperty_new_duration(struct icaldurationtype v);
9432+void icalproperty_set_duration(icalproperty* prop, struct icaldurationtype v);
9433+struct icaldurationtype icalproperty_get_duration(const icalproperty* prop);icalproperty* icalproperty_vanew_duration(struct icaldurationtype v, ...);
9434+
9435+/* EXDATE */
9436+icalproperty* icalproperty_new_exdate(struct icaltimetype v);
9437+void icalproperty_set_exdate(icalproperty* prop, struct icaltimetype v);
9438+struct icaltimetype icalproperty_get_exdate(const icalproperty* prop);icalproperty* icalproperty_vanew_exdate(struct icaltimetype v, ...);
9439+
9440+/* EXPAND */
9441+icalproperty* icalproperty_new_expand(int v);
9442+void icalproperty_set_expand(icalproperty* prop, int v);
9443+int icalproperty_get_expand(const icalproperty* prop);icalproperty* icalproperty_vanew_expand(int v, ...);
9444+
9445+/* EXRULE */
9446+icalproperty* icalproperty_new_exrule(struct icalrecurrencetype v);
9447+void icalproperty_set_exrule(icalproperty* prop, struct icalrecurrencetype v);
9448+struct icalrecurrencetype icalproperty_get_exrule(const icalproperty* prop);icalproperty* icalproperty_vanew_exrule(struct icalrecurrencetype v, ...);
9449+
9450+/* FREEBUSY */
9451+icalproperty* icalproperty_new_freebusy(struct icalperiodtype v);
9452+void icalproperty_set_freebusy(icalproperty* prop, struct icalperiodtype v);
9453+struct icalperiodtype icalproperty_get_freebusy(const icalproperty* prop);icalproperty* icalproperty_vanew_freebusy(struct icalperiodtype v, ...);
9454+
9455+/* GEO */
9456+icalproperty* icalproperty_new_geo(struct icalgeotype v);
9457+void icalproperty_set_geo(icalproperty* prop, struct icalgeotype v);
9458+struct icalgeotype icalproperty_get_geo(const icalproperty* prop);icalproperty* icalproperty_vanew_geo(struct icalgeotype v, ...);
9459+
9460+/* GRANT */
9461+icalproperty* icalproperty_new_grant(const char* v);
9462+void icalproperty_set_grant(icalproperty* prop, const char* v);
9463+const char* icalproperty_get_grant(const icalproperty* prop);icalproperty* icalproperty_vanew_grant(const char* v, ...);
9464+
9465+/* ITIP-VERSION */
9466+icalproperty* icalproperty_new_itipversion(const char* v);
9467+void icalproperty_set_itipversion(icalproperty* prop, const char* v);
9468+const char* icalproperty_get_itipversion(const icalproperty* prop);icalproperty* icalproperty_vanew_itipversion(const char* v, ...);
9469+
9470+/* LAST-MODIFIED */
9471+icalproperty* icalproperty_new_lastmodified(struct icaltimetype v);
9472+void icalproperty_set_lastmodified(icalproperty* prop, struct icaltimetype v);
9473+struct icaltimetype icalproperty_get_lastmodified(const icalproperty* prop);icalproperty* icalproperty_vanew_lastmodified(struct icaltimetype v, ...);
9474+
9475+/* LOCATION */
9476+icalproperty* icalproperty_new_location(const char* v);
9477+void icalproperty_set_location(icalproperty* prop, const char* v);
9478+const char* icalproperty_get_location(const icalproperty* prop);icalproperty* icalproperty_vanew_location(const char* v, ...);
9479+
9480+/* MAX-COMPONENT-SIZE */
9481+icalproperty* icalproperty_new_maxcomponentsize(int v);
9482+void icalproperty_set_maxcomponentsize(icalproperty* prop, int v);
9483+int icalproperty_get_maxcomponentsize(const icalproperty* prop);icalproperty* icalproperty_vanew_maxcomponentsize(int v, ...);
9484+
9485+/* MAXDATE */
9486+icalproperty* icalproperty_new_maxdate(struct icaltimetype v);
9487+void icalproperty_set_maxdate(icalproperty* prop, struct icaltimetype v);
9488+struct icaltimetype icalproperty_get_maxdate(const icalproperty* prop);icalproperty* icalproperty_vanew_maxdate(struct icaltimetype v, ...);
9489+
9490+/* MAXRESULTS */
9491+icalproperty* icalproperty_new_maxresults(int v);
9492+void icalproperty_set_maxresults(icalproperty* prop, int v);
9493+int icalproperty_get_maxresults(const icalproperty* prop);icalproperty* icalproperty_vanew_maxresults(int v, ...);
9494+
9495+/* MAXRESULTSSIZE */
9496+icalproperty* icalproperty_new_maxresultssize(int v);
9497+void icalproperty_set_maxresultssize(icalproperty* prop, int v);
9498+int icalproperty_get_maxresultssize(const icalproperty* prop);icalproperty* icalproperty_vanew_maxresultssize(int v, ...);
9499+
9500+/* METHOD */
9501+icalproperty* icalproperty_new_method(enum icalproperty_method v);
9502+void icalproperty_set_method(icalproperty* prop, enum icalproperty_method v);
9503+enum icalproperty_method icalproperty_get_method(const icalproperty* prop);icalproperty* icalproperty_vanew_method(enum icalproperty_method v, ...);
9504+
9505+/* MINDATE */
9506+icalproperty* icalproperty_new_mindate(struct icaltimetype v);
9507+void icalproperty_set_mindate(icalproperty* prop, struct icaltimetype v);
9508+struct icaltimetype icalproperty_get_mindate(const icalproperty* prop);icalproperty* icalproperty_vanew_mindate(struct icaltimetype v, ...);
9509+
9510+/* MULTIPART */
9511+icalproperty* icalproperty_new_multipart(const char* v);
9512+void icalproperty_set_multipart(icalproperty* prop, const char* v);
9513+const char* icalproperty_get_multipart(const icalproperty* prop);icalproperty* icalproperty_vanew_multipart(const char* v, ...);
9514+
9515+/* NAME */
9516+icalproperty* icalproperty_new_name(const char* v);
9517+void icalproperty_set_name(icalproperty* prop, const char* v);
9518+const char* icalproperty_get_name(const icalproperty* prop);icalproperty* icalproperty_vanew_name(const char* v, ...);
9519+
9520+/* ORGANIZER */
9521+icalproperty* icalproperty_new_organizer(const char* v);
9522+void icalproperty_set_organizer(icalproperty* prop, const char* v);
9523+const char* icalproperty_get_organizer(const icalproperty* prop);icalproperty* icalproperty_vanew_organizer(const char* v, ...);
9524+
9525+/* OWNER */
9526+icalproperty* icalproperty_new_owner(const char* v);
9527+void icalproperty_set_owner(icalproperty* prop, const char* v);
9528+const char* icalproperty_get_owner(const icalproperty* prop);icalproperty* icalproperty_vanew_owner(const char* v, ...);
9529+
9530+/* PERCENT-COMPLETE */
9531+icalproperty* icalproperty_new_percentcomplete(int v);
9532+void icalproperty_set_percentcomplete(icalproperty* prop, int v);
9533+int icalproperty_get_percentcomplete(const icalproperty* prop);icalproperty* icalproperty_vanew_percentcomplete(int v, ...);
9534+
9535+/* PERMISSION */
9536+icalproperty* icalproperty_new_permission(const char* v);
9537+void icalproperty_set_permission(icalproperty* prop, const char* v);
9538+const char* icalproperty_get_permission(const icalproperty* prop);icalproperty* icalproperty_vanew_permission(const char* v, ...);
9539+
9540+/* PRIORITY */
9541+icalproperty* icalproperty_new_priority(int v);
9542+void icalproperty_set_priority(icalproperty* prop, int v);
9543+int icalproperty_get_priority(const icalproperty* prop);icalproperty* icalproperty_vanew_priority(int v, ...);
9544+
9545+/* PRODID */
9546+icalproperty* icalproperty_new_prodid(const char* v);
9547+void icalproperty_set_prodid(icalproperty* prop, const char* v);
9548+const char* icalproperty_get_prodid(const icalproperty* prop);icalproperty* icalproperty_vanew_prodid(const char* v, ...);
9549+
9550+/* QUERY */
9551+icalproperty* icalproperty_new_query(const char* v);
9552+void icalproperty_set_query(icalproperty* prop, const char* v);
9553+const char* icalproperty_get_query(const icalproperty* prop);icalproperty* icalproperty_vanew_query(const char* v, ...);
9554+
9555+/* QUERY-LEVEL */
9556+icalproperty* icalproperty_new_querylevel(enum icalproperty_querylevel v);
9557+void icalproperty_set_querylevel(icalproperty* prop, enum icalproperty_querylevel v);
9558+enum icalproperty_querylevel icalproperty_get_querylevel(const icalproperty* prop);icalproperty* icalproperty_vanew_querylevel(enum icalproperty_querylevel v, ...);
9559+
9560+/* QUERYID */
9561+icalproperty* icalproperty_new_queryid(const char* v);
9562+void icalproperty_set_queryid(icalproperty* prop, const char* v);
9563+const char* icalproperty_get_queryid(const icalproperty* prop);icalproperty* icalproperty_vanew_queryid(const char* v, ...);
9564+
9565+/* QUERYNAME */
9566+icalproperty* icalproperty_new_queryname(const char* v);
9567+void icalproperty_set_queryname(icalproperty* prop, const char* v);
9568+const char* icalproperty_get_queryname(const icalproperty* prop);icalproperty* icalproperty_vanew_queryname(const char* v, ...);
9569+
9570+/* RDATE */
9571+icalproperty* icalproperty_new_rdate(struct icaldatetimeperiodtype v);
9572+void icalproperty_set_rdate(icalproperty* prop, struct icaldatetimeperiodtype v);
9573+struct icaldatetimeperiodtype icalproperty_get_rdate(const icalproperty* prop);icalproperty* icalproperty_vanew_rdate(struct icaldatetimeperiodtype v, ...);
9574+
9575+/* RECUR-ACCEPTED */
9576+icalproperty* icalproperty_new_recuraccepted(const char* v);
9577+void icalproperty_set_recuraccepted(icalproperty* prop, const char* v);
9578+const char* icalproperty_get_recuraccepted(const icalproperty* prop);icalproperty* icalproperty_vanew_recuraccepted(const char* v, ...);
9579+
9580+/* RECUR-EXPAND */
9581+icalproperty* icalproperty_new_recurexpand(const char* v);
9582+void icalproperty_set_recurexpand(icalproperty* prop, const char* v);
9583+const char* icalproperty_get_recurexpand(const icalproperty* prop);icalproperty* icalproperty_vanew_recurexpand(const char* v, ...);
9584+
9585+/* RECUR-LIMIT */
9586+icalproperty* icalproperty_new_recurlimit(const char* v);
9587+void icalproperty_set_recurlimit(icalproperty* prop, const char* v);
9588+const char* icalproperty_get_recurlimit(const icalproperty* prop);icalproperty* icalproperty_vanew_recurlimit(const char* v, ...);
9589+
9590+/* RECURRENCE-ID */
9591+icalproperty* icalproperty_new_recurrenceid(struct icaltimetype v);
9592+void icalproperty_set_recurrenceid(icalproperty* prop, struct icaltimetype v);
9593+struct icaltimetype icalproperty_get_recurrenceid(const icalproperty* prop);icalproperty* icalproperty_vanew_recurrenceid(struct icaltimetype v, ...);
9594+
9595+/* RELATED-TO */
9596+icalproperty* icalproperty_new_relatedto(const char* v);
9597+void icalproperty_set_relatedto(icalproperty* prop, const char* v);
9598+const char* icalproperty_get_relatedto(const icalproperty* prop);icalproperty* icalproperty_vanew_relatedto(const char* v, ...);
9599+
9600+/* RELCALID */
9601+icalproperty* icalproperty_new_relcalid(const char* v);
9602+void icalproperty_set_relcalid(icalproperty* prop, const char* v);
9603+const char* icalproperty_get_relcalid(const icalproperty* prop);icalproperty* icalproperty_vanew_relcalid(const char* v, ...);
9604+
9605+/* REPEAT */
9606+icalproperty* icalproperty_new_repeat(int v);
9607+void icalproperty_set_repeat(icalproperty* prop, int v);
9608+int icalproperty_get_repeat(const icalproperty* prop);icalproperty* icalproperty_vanew_repeat(int v, ...);
9609+
9610+/* REQUEST-STATUS */
9611+icalproperty* icalproperty_new_requeststatus(struct icalreqstattype v);
9612+void icalproperty_set_requeststatus(icalproperty* prop, struct icalreqstattype v);
9613+struct icalreqstattype icalproperty_get_requeststatus(const icalproperty* prop);icalproperty* icalproperty_vanew_requeststatus(struct icalreqstattype v, ...);
9614+
9615+/* RESOURCES */
9616+icalproperty* icalproperty_new_resources(const char* v);
9617+void icalproperty_set_resources(icalproperty* prop, const char* v);
9618+const char* icalproperty_get_resources(const icalproperty* prop);icalproperty* icalproperty_vanew_resources(const char* v, ...);
9619+
9620+/* RESTRICTION */
9621+icalproperty* icalproperty_new_restriction(const char* v);
9622+void icalproperty_set_restriction(icalproperty* prop, const char* v);
9623+const char* icalproperty_get_restriction(const icalproperty* prop);icalproperty* icalproperty_vanew_restriction(const char* v, ...);
9624+
9625+/* RRULE */
9626+icalproperty* icalproperty_new_rrule(struct icalrecurrencetype v);
9627+void icalproperty_set_rrule(icalproperty* prop, struct icalrecurrencetype v);
9628+struct icalrecurrencetype icalproperty_get_rrule(const icalproperty* prop);icalproperty* icalproperty_vanew_rrule(struct icalrecurrencetype v, ...);
9629+
9630+/* SCOPE */
9631+icalproperty* icalproperty_new_scope(const char* v);
9632+void icalproperty_set_scope(icalproperty* prop, const char* v);
9633+const char* icalproperty_get_scope(const icalproperty* prop);icalproperty* icalproperty_vanew_scope(const char* v, ...);
9634+
9635+/* SEQUENCE */
9636+icalproperty* icalproperty_new_sequence(int v);
9637+void icalproperty_set_sequence(icalproperty* prop, int v);
9638+int icalproperty_get_sequence(const icalproperty* prop);icalproperty* icalproperty_vanew_sequence(int v, ...);
9639+
9640+/* STATUS */
9641+icalproperty* icalproperty_new_status(enum icalproperty_status v);
9642+void icalproperty_set_status(icalproperty* prop, enum icalproperty_status v);
9643+enum icalproperty_status icalproperty_get_status(const icalproperty* prop);icalproperty* icalproperty_vanew_status(enum icalproperty_status v, ...);
9644+
9645+/* STORES-EXPANDED */
9646+icalproperty* icalproperty_new_storesexpanded(const char* v);
9647+void icalproperty_set_storesexpanded(icalproperty* prop, const char* v);
9648+const char* icalproperty_get_storesexpanded(const icalproperty* prop);icalproperty* icalproperty_vanew_storesexpanded(const char* v, ...);
9649+
9650+/* SUMMARY */
9651+icalproperty* icalproperty_new_summary(const char* v);
9652+void icalproperty_set_summary(icalproperty* prop, const char* v);
9653+const char* icalproperty_get_summary(const icalproperty* prop);icalproperty* icalproperty_vanew_summary(const char* v, ...);
9654+
9655+/* TARGET */
9656+icalproperty* icalproperty_new_target(const char* v);
9657+void icalproperty_set_target(icalproperty* prop, const char* v);
9658+const char* icalproperty_get_target(const icalproperty* prop);icalproperty* icalproperty_vanew_target(const char* v, ...);
9659+
9660+/* TRANSP */
9661+icalproperty* icalproperty_new_transp(enum icalproperty_transp v);
9662+void icalproperty_set_transp(icalproperty* prop, enum icalproperty_transp v);
9663+enum icalproperty_transp icalproperty_get_transp(const icalproperty* prop);icalproperty* icalproperty_vanew_transp(enum icalproperty_transp v, ...);
9664+
9665+/* TRIGGER */
9666+icalproperty* icalproperty_new_trigger(struct icaltriggertype v);
9667+void icalproperty_set_trigger(icalproperty* prop, struct icaltriggertype v);
9668+struct icaltriggertype icalproperty_get_trigger(const icalproperty* prop);icalproperty* icalproperty_vanew_trigger(struct icaltriggertype v, ...);
9669+
9670+/* TZID */
9671+icalproperty* icalproperty_new_tzid(const char* v);
9672+void icalproperty_set_tzid(icalproperty* prop, const char* v);
9673+const char* icalproperty_get_tzid(const icalproperty* prop);icalproperty* icalproperty_vanew_tzid(const char* v, ...);
9674+
9675+/* TZNAME */
9676+icalproperty* icalproperty_new_tzname(const char* v);
9677+void icalproperty_set_tzname(icalproperty* prop, const char* v);
9678+const char* icalproperty_get_tzname(const icalproperty* prop);icalproperty* icalproperty_vanew_tzname(const char* v, ...);
9679+
9680+/* TZOFFSETFROM */
9681+icalproperty* icalproperty_new_tzoffsetfrom(int v);
9682+void icalproperty_set_tzoffsetfrom(icalproperty* prop, int v);
9683+int icalproperty_get_tzoffsetfrom(const icalproperty* prop);icalproperty* icalproperty_vanew_tzoffsetfrom(int v, ...);
9684+
9685+/* TZOFFSETTO */
9686+icalproperty* icalproperty_new_tzoffsetto(int v);
9687+void icalproperty_set_tzoffsetto(icalproperty* prop, int v);
9688+int icalproperty_get_tzoffsetto(const icalproperty* prop);icalproperty* icalproperty_vanew_tzoffsetto(int v, ...);
9689+
9690+/* TZURL */
9691+icalproperty* icalproperty_new_tzurl(const char* v);
9692+void icalproperty_set_tzurl(icalproperty* prop, const char* v);
9693+const char* icalproperty_get_tzurl(const icalproperty* prop);icalproperty* icalproperty_vanew_tzurl(const char* v, ...);
9694+
9695+/* UID */
9696+icalproperty* icalproperty_new_uid(const char* v);
9697+void icalproperty_set_uid(icalproperty* prop, const char* v);
9698+const char* icalproperty_get_uid(const icalproperty* prop);icalproperty* icalproperty_vanew_uid(const char* v, ...);
9699+
9700+/* URL */
9701+icalproperty* icalproperty_new_url(const char* v);
9702+void icalproperty_set_url(icalproperty* prop, const char* v);
9703+const char* icalproperty_get_url(const icalproperty* prop);icalproperty* icalproperty_vanew_url(const char* v, ...);
9704+
9705+/* VERSION */
9706+icalproperty* icalproperty_new_version(const char* v);
9707+void icalproperty_set_version(icalproperty* prop, const char* v);
9708+const char* icalproperty_get_version(const icalproperty* prop);icalproperty* icalproperty_vanew_version(const char* v, ...);
9709+
9710+/* X */
9711+icalproperty* icalproperty_new_x(const char* v);
9712+void icalproperty_set_x(icalproperty* prop, const char* v);
9713+const char* icalproperty_get_x(const icalproperty* prop);icalproperty* icalproperty_vanew_x(const char* v, ...);
9714+
9715+/* X-LIC-CLASS */
9716+icalproperty* icalproperty_new_xlicclass(enum icalproperty_xlicclass v);
9717+void icalproperty_set_xlicclass(icalproperty* prop, enum icalproperty_xlicclass v);
9718+enum icalproperty_xlicclass icalproperty_get_xlicclass(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicclass(enum icalproperty_xlicclass v, ...);
9719+
9720+/* X-LIC-CLUSTERCOUNT */
9721+icalproperty* icalproperty_new_xlicclustercount(const char* v);
9722+void icalproperty_set_xlicclustercount(icalproperty* prop, const char* v);
9723+const char* icalproperty_get_xlicclustercount(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicclustercount(const char* v, ...);
9724+
9725+/* X-LIC-ERROR */
9726+icalproperty* icalproperty_new_xlicerror(const char* v);
9727+void icalproperty_set_xlicerror(icalproperty* prop, const char* v);
9728+const char* icalproperty_get_xlicerror(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicerror(const char* v, ...);
9729+
9730+/* X-LIC-MIMECHARSET */
9731+icalproperty* icalproperty_new_xlicmimecharset(const char* v);
9732+void icalproperty_set_xlicmimecharset(icalproperty* prop, const char* v);
9733+const char* icalproperty_get_xlicmimecharset(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecharset(const char* v, ...);
9734+
9735+/* X-LIC-MIMECID */
9736+icalproperty* icalproperty_new_xlicmimecid(const char* v);
9737+void icalproperty_set_xlicmimecid(icalproperty* prop, const char* v);
9738+const char* icalproperty_get_xlicmimecid(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecid(const char* v, ...);
9739+
9740+/* X-LIC-MIMECONTENTTYPE */
9741+icalproperty* icalproperty_new_xlicmimecontenttype(const char* v);
9742+void icalproperty_set_xlicmimecontenttype(icalproperty* prop, const char* v);
9743+const char* icalproperty_get_xlicmimecontenttype(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecontenttype(const char* v, ...);
9744+
9745+/* X-LIC-MIMEENCODING */
9746+icalproperty* icalproperty_new_xlicmimeencoding(const char* v);
9747+void icalproperty_set_xlicmimeencoding(icalproperty* prop, const char* v);
9748+const char* icalproperty_get_xlicmimeencoding(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimeencoding(const char* v, ...);
9749+
9750+/* X-LIC-MIMEFILENAME */
9751+icalproperty* icalproperty_new_xlicmimefilename(const char* v);
9752+void icalproperty_set_xlicmimefilename(icalproperty* prop, const char* v);
9753+const char* icalproperty_get_xlicmimefilename(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimefilename(const char* v, ...);
9754+
9755+/* X-LIC-MIMEOPTINFO */
9756+icalproperty* icalproperty_new_xlicmimeoptinfo(const char* v);
9757+void icalproperty_set_xlicmimeoptinfo(icalproperty* prop, const char* v);
9758+const char* icalproperty_get_xlicmimeoptinfo(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimeoptinfo(const char* v, ...);
9759+
9760+
9761+#endif /*ICALPROPERTY_H*/
9762+/* -*- Mode: C -*- */
9763+/*======================================================================
9764+  FILE: icalproperty.h
9765+  CREATOR: eric 20 March 1999
9766+
9767+
9768+
9769
9770+
9771+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
9772+     http://www.softwarestudio.org
9773+
9774+ This program is free software; you can redistribute it and/or modify
9775+ it under the terms of either:
9776+
9777+    The LGPL as published by the Free Software Foundation, version
9778+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
9779+
9780+  Or:
9781+
9782+    The Mozilla Public License Version 1.0. You may obtain a copy of
9783+    the License at http://www.mozilla.org/MPL/
9784+
9785+  The original code is icalparam.h
9786+
9787+  ======================================================================*/
9788+
9789+
9790+#ifndef ICALPROPERTY_H
9791+#define ICALPROPERTY_H
9792+
9793+#include <time.h>
9794+#include <stdarg.h>  /* for va_... */
9795+
9796+
9797+
9798+/* Actually in icalderivedproperty.h:
9799+   typedef struct icalproperty_impl icalproperty; */
9800+
9801+
9802+icalproperty* icalproperty_new(icalproperty_kind kind);
9803+
9804+icalproperty* icalproperty_new_clone(icalproperty * prop);
9805+
9806+icalproperty* icalproperty_new_from_string(const char* str);
9807+
9808+const char* icalproperty_as_ical_string(icalproperty* prop);
9809+char* icalproperty_as_ical_string_r(icalproperty* prop);
9810+
9811+void  icalproperty_free(icalproperty* prop);
9812+
9813+icalproperty_kind icalproperty_isa(icalproperty* property);
9814+int icalproperty_isa_property(void* property);
9815+
9816+void icalproperty_add_parameters(struct icalproperty_impl *prop,va_list args);
9817+void icalproperty_add_parameter(icalproperty* prop,icalparameter* parameter);
9818+void icalproperty_set_parameter(icalproperty* prop,icalparameter* parameter);
9819+void icalproperty_set_parameter_from_string(icalproperty* prop,
9820+                                            const char* name, const char* value);
9821+const char* icalproperty_get_parameter_as_string(icalproperty* prop,
9822+                                                 const char* name);
9823+char* icalproperty_get_parameter_as_string_r(icalproperty* prop,
9824+                                                 const char* name);
9825+
9826+void icalproperty_remove_parameter(icalproperty* prop,
9827+                                  icalparameter_kind kind);
9828+
9829+void icalproperty_remove_parameter_by_kind(icalproperty* prop,
9830+                                          icalparameter_kind kind);
9831+
9832+void icalproperty_remove_parameter_by_name(icalproperty* prop,
9833+                                          const char *name);
9834+
9835+void icalproperty_remove_parameter_by_ref(icalproperty* prop,
9836+                                         icalparameter *param);
9837+
9838+
9839+
9840+int icalproperty_count_parameters(const icalproperty* prop);
9841+
9842+/* Iterate through the parameters */
9843+icalparameter* icalproperty_get_first_parameter(icalproperty* prop,
9844+                                               icalparameter_kind kind);
9845+icalparameter* icalproperty_get_next_parameter(icalproperty* prop,
9846+                                               icalparameter_kind kind);
9847+/* Access the value of the property */
9848+void icalproperty_set_value(icalproperty* prop, icalvalue* value);
9849+void icalproperty_set_value_from_string(icalproperty* prop,const char* value, const char* kind);
9850+
9851+icalvalue* icalproperty_get_value(const icalproperty* prop);
9852+const char* icalproperty_get_value_as_string(const icalproperty* prop);
9853+char* icalproperty_get_value_as_string_r(const icalproperty* prop);
9854+
9855+/* Deal with X properties */
9856+
9857+void icalproperty_set_x_name(icalproperty* prop, const char* name);
9858+const char* icalproperty_get_x_name(icalproperty* prop);
9859+
9860+/** Return the name of the property -- the type name converted to a
9861+ *  string, or the value of _get_x_name if the type is and X
9862+ *  property
9863+ */
9864+const char* icalproperty_get_property_name (const icalproperty* prop);
9865+char* icalproperty_get_property_name_r(const icalproperty* prop);
9866+
9867+icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
9868+
9869+/* Convert kinds to string and get default value type */
9870+
9871+icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);
9872+icalproperty_kind icalproperty_value_kind_to_kind(icalvalue_kind kind);
9873+const char* icalproperty_kind_to_string(icalproperty_kind kind);
9874+icalproperty_kind icalproperty_string_to_kind(const char* string);
9875+
9876+/** Check validity of a specific icalproperty_kind **/
9877+int icalproperty_kind_is_valid(const icalproperty_kind kind);
9878+
9879+icalproperty_method icalproperty_string_to_method(const char* str);
9880+const char* icalproperty_method_to_string(icalproperty_method method);
9881+
9882+
9883+const char* icalproperty_enum_to_string(int e);
9884+char* icalproperty_enum_to_string_r(int e);
9885+int icalproperty_string_to_enum(const char* str);
9886+int icalproperty_kind_and_string_to_enum(const int kind, const char* str);
9887+
9888+const char* icalproperty_status_to_string(icalproperty_status);
9889+icalproperty_status icalproperty_string_to_status(const char* string);
9890+
9891+int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e);
9892+
9893+
9894+
9895+
9896+#endif /*ICALPROPERTY_H*/
9897+/*======================================================================
9898+ FILE: pvl.h
9899+ CREATOR: eric November, 1995
9900+
9901+
9902+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
9903+     http://www.softwarestudio.org
9904+======================================================================*/
9905+
9906+
9907+#ifndef __PVL_H__
9908+#define __PVL_H__
9909+
9910+typedef struct pvl_list_t* pvl_list;
9911+typedef struct pvl_elem_t* pvl_elem;
9912+
9913+/**
9914+ * This type is private. Always use pvl_elem instead. The struct would
9915+ * not even appear in this header except to make code in the USE_MACROS
9916+ * blocks work
9917+ */
9918+
9919+typedef struct pvl_elem_t
9920+{
9921+       int MAGIC;                      /**< Magic Identifier */
9922+       void *d;                        /**< Pointer to data user is storing */
9923+       struct pvl_elem_t *next;        /**< Next element */
9924+       struct pvl_elem_t *prior;       /**< Prior element */
9925+} pvl_elem_t;
9926+
9927+
9928+
9929+/**
9930+ * This global is incremented for each call to pvl_new_element(); it gives each
9931+ * list a unique identifer
9932+ */
9933+
9934+extern int  pvl_elem_count;
9935+extern int  pvl_list_count;
9936+
9937+/* Create new lists or elements */
9938+pvl_elem pvl_new_element(void* d, pvl_elem next,pvl_elem prior);
9939+pvl_list pvl_newlist(void);
9940+void pvl_free(pvl_list);
9941+
9942+/* Add, remove, or get the head of the list */
9943+void pvl_unshift(pvl_list l,void *d);
9944+void* pvl_shift(pvl_list l);
9945+pvl_elem pvl_head(pvl_list);
9946+
9947+/* Add, remove or get the tail of the list */
9948+void pvl_push(pvl_list l,void *d);
9949+void* pvl_pop(pvl_list l);
9950+pvl_elem pvl_tail(pvl_list);
9951+
9952+/* Insert elements in random places */
9953+typedef int (*pvl_comparef)(void* a, void* b); /* a, b are of the data type*/
9954+void pvl_insert_ordered(pvl_list l,pvl_comparef f,void *d);
9955+void pvl_insert_after(pvl_list l,pvl_elem e,void *d);
9956+void pvl_insert_before(pvl_list l,pvl_elem e,void *d);
9957+
9958+/* Remove an element, or clear the entire list */
9959+void* pvl_remove(pvl_list,pvl_elem); /* Remove element, return data */
9960+void pvl_clear(pvl_list); /* Remove all elements, de-allocate all data */
9961+
9962+int pvl_count(pvl_list);
9963+
9964+/* Navagate the list */
9965+pvl_elem pvl_next(pvl_elem e);
9966+pvl_elem pvl_prior(pvl_elem e);
9967+
9968+/* get the data in the list */
9969+#ifndef PVL_USE_MACROS
9970+void* pvl_data(pvl_elem);
9971+#else
9972+#define pvl_data(x) x==0 ? 0 : ((struct pvl_elem_t *)x)->d;
9973+#endif
9974+
9975+
9976+/* Find an element for which a function returns true */
9977+typedef int (*pvl_findf)(void* a, void* b); /*a is list elem, b is other data*/
9978+pvl_elem pvl_find(pvl_list l,pvl_findf f,void* v);
9979+pvl_elem pvl_find_next(pvl_list l,pvl_findf f,void* v);
9980+
9981+/**
9982+ * Pass each element in the list to a function
9983+ * a is list elem, b is other data
9984+ */
9985+typedef void (*pvl_applyf)(void* a, void* b);
9986+void pvl_apply(pvl_list l,pvl_applyf f, void *v);
9987+
9988+
9989+#endif /* __PVL_H__ */
9990+
9991+
9992+
9993+
9994+
9995+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
9996+/*======================================================================
9997+ FILE: icalarray.h
9998+ CREATOR: Damon Chaplin 07 March 2001
9999+
10000+
10001+
10002+ (C) COPYRIGHT 2001, Ximian, Inc.
10003+
10004+ This program is free software; you can redistribute it and/or modify
10005+ it under the terms of either:
10006+
10007+    The LGPL as published by the Free Software Foundation, version
10008+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
10009+
10010+  Or:
10011+
10012+    The Mozilla Public License Version 1.0. You may obtain a copy of
10013+    the License at http://www.mozilla.org/MPL/
10014+
10015+
10016+======================================================================*/
10017+
10018+
10019+#ifndef ICALARRAY_H
10020+#define ICALARRAY_H
10021+
10022+/** @file icalarray.h
10023+ *
10024+ *  @brief An array of arbitrarily-sized elements which grows
10025+ *  dynamically as elements are added.
10026+ */
10027+
10028+typedef struct _icalarray icalarray;
10029+struct _icalarray {
10030+    unsigned int        element_size;
10031+    unsigned int        increment_size;
10032+    unsigned int        num_elements;
10033+    unsigned int        space_allocated;
10034+    void               *data;
10035+};
10036+
10037+
10038+
10039+icalarray *icalarray_new               (int             element_size,
10040+                                        int             increment_size);
10041+void      icalarray_free               (icalarray      *array);
10042+
10043+void      icalarray_append             (icalarray      *array,
10044+                                        const void             *element);
10045+void      icalarray_remove_element_at  (icalarray      *array,
10046+                                        int             position);
10047+
10048+void     *icalarray_element_at         (icalarray      *array,
10049+                                        int             position);
10050+
10051+void      icalarray_sort               (icalarray      *array,
10052+                                        int           (*compare) (const void *, const void *));
10053+
10054+
10055+#endif /* ICALARRAY_H */
10056+/* -*- Mode: C -*- */
10057+/*======================================================================
10058+ FILE: icalcomponent.h
10059+ CREATOR: eric 20 March 1999
10060+
10061+
10062+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
10063+     http://www.softwarestudio.org
10064+
10065+ This program is free software; you can redistribute it and/or modify
10066+ it under the terms of either:
10067+
10068+    The LGPL as published by the Free Software Foundation, version
10069+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
10070+
10071+  Or:
10072+
10073+    The Mozilla Public License Version 1.0. You may obtain a copy of
10074+    the License at http://www.mozilla.org/MPL/
10075+
10076+  The original code is icalcomponent.h
10077+
10078+======================================================================*/
10079+
10080+#ifndef ICALCOMPONENT_H
10081+#define ICALCOMPONENT_H
10082+
10083+
10084+typedef struct icalcomponent_impl icalcomponent;
10085+
10086+#ifndef ICALTIMEZONE_DEFINED
10087+#define ICALTIMEZONE_DEFINED
10088+/** @brief An opaque struct representing a timezone. 
10089+ * We declare this here to avoid a circular dependancy.
10090+ */
10091+typedef struct _icaltimezone           icaltimezone;
10092+#endif
10093+
10094+
10095+/* This is exposed so that callers will not have to allocate and
10096+   deallocate iterators. Pretend that you can't see it. */
10097+typedef struct icalcompiter
10098+{
10099+       icalcomponent_kind kind;
10100+       pvl_elem iter;
10101+
10102+} icalcompiter;
10103+
10104+icalcomponent* icalcomponent_new(icalcomponent_kind kind);
10105+icalcomponent* icalcomponent_new_clone(icalcomponent* component);
10106+icalcomponent* icalcomponent_new_from_string(const char* str);
10107+icalcomponent* icalcomponent_vanew(icalcomponent_kind kind, ...);
10108+icalcomponent* icalcomponent_new_x(const char* x_name);
10109+void icalcomponent_free(icalcomponent* component);
10110+
10111+char* icalcomponent_as_ical_string(icalcomponent* component);
10112+char* icalcomponent_as_ical_string_r(icalcomponent* component);
10113+
10114+int icalcomponent_is_valid(icalcomponent* component);
10115+
10116+icalcomponent_kind icalcomponent_isa(const icalcomponent* component);
10117+
10118+int icalcomponent_isa_component (void* component);
10119+
10120+/*
10121+ * Working with properties
10122+ */
10123+
10124+void icalcomponent_add_property(icalcomponent* component,
10125+                               icalproperty* property);
10126+
10127+void icalcomponent_remove_property(icalcomponent* component,
10128+                                  icalproperty* property);
10129+
10130+int icalcomponent_count_properties(icalcomponent* component,
10131+                                  icalproperty_kind kind);
10132+
10133+/* Iterate through the properties */
10134+icalproperty* icalcomponent_get_current_property(icalcomponent* component);
10135+
10136+icalproperty* icalcomponent_get_first_property(icalcomponent* component,
10137+                                             icalproperty_kind kind);
10138+icalproperty* icalcomponent_get_next_property(icalcomponent* component,
10139+                                             icalproperty_kind kind);
10140+
10141+
10142+/*
10143+ * Working with components
10144+ */
10145+
10146+
10147+/* Return the first VEVENT, VTODO or VJOURNAL sub-component of cop, or
10148+   comp if it is one of those types */
10149+
10150+icalcomponent* icalcomponent_get_inner(icalcomponent* comp);
10151+
10152+
10153+void icalcomponent_add_component(icalcomponent* parent,
10154+                               icalcomponent* child);
10155+
10156+void icalcomponent_remove_component(icalcomponent* parent,
10157+                               icalcomponent* child);
10158+
10159+int icalcomponent_count_components(icalcomponent* component,
10160+                                  icalcomponent_kind kind);
10161+
10162+/**
10163+   This takes 2 VCALENDAR components and merges the second one into the first,
10164+   resolving any problems with conflicting TZIDs. comp_to_merge will no
10165+   longer exist after calling this function. */
10166+void icalcomponent_merge_component(icalcomponent* comp,
10167+                                  icalcomponent* comp_to_merge);
10168+
10169+
10170+/* Iteration Routines. There are two forms of iterators, internal and
10171+external. The internal ones came first, and are almost completely
10172+sufficient, but they fail badly when you want to construct a loop that
10173+removes components from the container.*/
10174+
10175+
10176+/* Iterate through components */
10177+icalcomponent* icalcomponent_get_current_component (icalcomponent* component);
10178+
10179+icalcomponent* icalcomponent_get_first_component(icalcomponent* component,
10180+                                             icalcomponent_kind kind);
10181+icalcomponent* icalcomponent_get_next_component(icalcomponent* component,
10182+                                             icalcomponent_kind kind);
10183+
10184+/* Using external iterators */
10185+icalcompiter icalcomponent_begin_component(icalcomponent* component,
10186+                                          icalcomponent_kind kind);
10187+icalcompiter icalcomponent_end_component(icalcomponent* component,
10188+                                        icalcomponent_kind kind);
10189+icalcomponent* icalcompiter_next(icalcompiter* i);
10190+icalcomponent* icalcompiter_prior(icalcompiter* i);
10191+icalcomponent* icalcompiter_deref(icalcompiter* i);
10192+
10193+
10194+/* Working with embedded error properties */
10195+
10196+
10197+/* Check the component against itip rules and insert error properties*/
10198+/* Working with embedded error properties */
10199+int icalcomponent_check_restrictions(icalcomponent* comp);
10200+
10201+/** Count embedded errors. */
10202+int icalcomponent_count_errors(icalcomponent* component);
10203+
10204+/** Remove all X-LIC-ERROR properties*/
10205+void icalcomponent_strip_errors(icalcomponent* component);
10206+
10207+/** Convert some X-LIC-ERROR properties into RETURN-STATUS properties*/
10208+void icalcomponent_convert_errors(icalcomponent* component);
10209+
10210+/* Internal operations. They are private, and you should not be using them. */
10211+icalcomponent* icalcomponent_get_parent(icalcomponent* component);
10212+void icalcomponent_set_parent(icalcomponent* component,
10213+                             icalcomponent* parent);
10214+
10215+/* Kind conversion routines */
10216+
10217+int icalcomponent_kind_is_valid(const icalcomponent_kind kind);
10218+
10219+icalcomponent_kind icalcomponent_string_to_kind(const char* string);
10220+
10221+const char* icalcomponent_kind_to_string(icalcomponent_kind kind);
10222+
10223+
10224+/************* Derived class methods.  ****************************
10225+
10226+If the code was in an OO language, the remaining routines would be
10227+members of classes derived from icalcomponent. Don't call them on the
10228+wrong component subtypes. */
10229+
10230+/** For VCOMPONENT: Return a reference to the first VEVENT, VTODO or
10231+   VJOURNAL */
10232+icalcomponent* icalcomponent_get_first_real_component(icalcomponent *c);
10233+
10234+/** For VEVENT, VTODO, VJOURNAL and VTIMEZONE: report the start and end
10235+   times of an event in UTC */
10236+struct icaltime_span icalcomponent_get_span(icalcomponent* comp);
10237+
10238+/******************** Convienience routines **********************/
10239+
10240+void icalcomponent_set_dtstart(icalcomponent* comp, struct icaltimetype v);
10241+struct icaltimetype icalcomponent_get_dtstart(icalcomponent* comp);
10242+
10243+/* For the icalcomponent routines only, dtend and duration are tied
10244+   together. If you call the set routine for one and the other exists,
10245+   the routine will calculate the change to the other. That is, if
10246+   there is a DTEND and you call set_duration, the routine will modify
10247+   DTEND to be the sum of DTSTART and the duration. If you call a get
10248+   routine for one and the other exists, the routine will calculate
10249+   the return value. If you call a set routine and neither exists, the
10250+   routine will create the apcompriate comperty */
10251+
10252+
10253+struct icaltimetype icalcomponent_get_dtend(icalcomponent* comp);
10254+void icalcomponent_set_dtend(icalcomponent* comp, struct icaltimetype v);
10255+
10256+struct icaltimetype icalcomponent_get_due(icalcomponent* comp);
10257+void icalcomponent_set_due(icalcomponent* comp, struct icaltimetype v);
10258+
10259+void icalcomponent_set_duration(icalcomponent* comp,
10260+                               struct icaldurationtype v);
10261+struct icaldurationtype icalcomponent_get_duration(icalcomponent* comp);
10262+
10263+void icalcomponent_set_method(icalcomponent* comp, icalproperty_method method);
10264+icalproperty_method icalcomponent_get_method(icalcomponent* comp);
10265+
10266+struct icaltimetype icalcomponent_get_dtstamp(icalcomponent* comp);
10267+void icalcomponent_set_dtstamp(icalcomponent* comp, struct icaltimetype v);
10268+
10269+void icalcomponent_set_summary(icalcomponent* comp, const char* v);
10270+const char* icalcomponent_get_summary(icalcomponent* comp);
10271+
10272+void icalcomponent_set_comment(icalcomponent* comp, const char* v);
10273+const char* icalcomponent_get_comment(icalcomponent* comp);
10274+
10275+void icalcomponent_set_uid(icalcomponent* comp, const char* v);
10276+const char* icalcomponent_get_uid(icalcomponent* comp);
10277+
10278+void icalcomponent_set_relcalid(icalcomponent* comp, const char* v);
10279+const char* icalcomponent_get_relcalid(icalcomponent* comp);
10280+
10281+void icalcomponent_set_recurrenceid(icalcomponent* comp,
10282+                                   struct icaltimetype v);
10283+struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent* comp);
10284+
10285+void icalcomponent_set_description(icalcomponent* comp, const char* v);
10286+const char* icalcomponent_get_description(icalcomponent* comp);
10287+
10288+void icalcomponent_set_location(icalcomponent* comp, const char* v);
10289+const char* icalcomponent_get_location(icalcomponent* comp);
10290+
10291+void icalcomponent_set_sequence(icalcomponent* comp, int v);
10292+int icalcomponent_get_sequence(icalcomponent* comp);
10293+
10294+void icalcomponent_set_status(icalcomponent* comp, enum icalproperty_status v);
10295+enum icalproperty_status icalcomponent_get_status(icalcomponent* comp);
10296+
10297+
10298+/** Calls the given function for each TZID parameter found in the
10299+    component, and any subcomponents. */
10300+void icalcomponent_foreach_tzid(icalcomponent* comp,
10301+                               void (*callback)(icalparameter *param, void *data),
10302+                               void *callback_data);
10303+
10304+/** Returns the icaltimezone in the component corresponding to the
10305+    TZID, or NULL if it can't be found. */
10306+icaltimezone* icalcomponent_get_timezone(icalcomponent* comp,
10307+                                        const char *tzid);
10308+
10309+int icalproperty_recurrence_is_excluded(icalcomponent *comp,
10310+                                       struct icaltimetype *dtstart,
10311+                                       struct icaltimetype *recurtime);
10312+
10313+void icalcomponent_foreach_recurrence(icalcomponent* comp,
10314+                                     struct icaltimetype start,
10315+                                     struct icaltimetype end,
10316+                       void (*callback)(icalcomponent *comp,
10317+                                         struct icaltime_span *span,
10318+                                         void *data),
10319+                             void *callback_data);
10320+
10321+
10322+/*************** Type Specific routines ***************/
10323+
10324+icalcomponent* icalcomponent_new_vcalendar();
10325+icalcomponent* icalcomponent_new_vevent();
10326+icalcomponent* icalcomponent_new_vtodo();
10327+icalcomponent* icalcomponent_new_vjournal();
10328+icalcomponent* icalcomponent_new_valarm();
10329+icalcomponent* icalcomponent_new_vfreebusy();
10330+icalcomponent* icalcomponent_new_vtimezone();
10331+icalcomponent* icalcomponent_new_xstandard();
10332+icalcomponent* icalcomponent_new_xdaylight();
10333+icalcomponent* icalcomponent_new_vagenda();
10334+icalcomponent* icalcomponent_new_vquery();
10335+
10336+#endif /* !ICALCOMPONENT_H */
10337+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
10338+/*======================================================================
10339+ FILE: icaltimezone.h
10340+ CREATOR: Damon Chaplin 15 March 2001
10341+
10342+
10343+
10344+ (C) COPYRIGHT 2001, Damon Chaplin
10345+
10346+ This program is free software; you can redistribute it and/or modify
10347+ it under the terms of either:
10348+
10349+    The LGPL as published by the Free Software Foundation, version
10350+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
10351+
10352+  Or:
10353+
10354+    The Mozilla Public License Version 1.0. You may obtain a copy of
10355+    the License at http://www.mozilla.org/MPL/
10356+
10357+
10358+======================================================================*/
10359+/**
10360+ * @file icaltimezone.h
10361+ * @brief timezone handling routines
10362+ */
10363+
10364+#ifndef ICALTIMEZONE_H
10365+#define ICALTIMEZONE_H
10366+
10367+#include <stdio.h> /* For FILE* */
10368+
10369+
10370+#ifndef ICALTIMEZONE_DEFINED
10371+#define ICALTIMEZONE_DEFINED
10372+/** @brief An opaque struct representing a timezone. 
10373+ * We declare this here to avoid a circular dependancy.
10374+ */
10375+typedef struct _icaltimezone           icaltimezone;
10376+#endif
10377+
10378+/**
10379+ * @par Creating/Destroying individual icaltimezones.
10380+ */
10381+
10382+/** Creates a new icaltimezone. */
10383+icaltimezone *icaltimezone_new                 (void);
10384+icaltimezone *icaltimezone_copy                        (icaltimezone *originalzone);
10385+
10386+/** Frees all memory used for the icaltimezone. Set free_struct to free the
10387+   icaltimezone struct as well. */
10388+void icaltimezone_free                         (icaltimezone *zone,
10389+                                                int free_struct);
10390+
10391+
10392+/**
10393+ * @par Accessing timezones.
10394+ */
10395+
10396+/** Free any builtin timezone information **/
10397+void icaltimezone_free_builtin_timezones(void);
10398+
10399+/** Returns the array of builtin icaltimezones. */
10400+icalarray* icaltimezone_get_builtin_timezones  (void);
10401+
10402+/** Returns a single builtin timezone, given its Olson city name. */
10403+icaltimezone* icaltimezone_get_builtin_timezone        (const char *location);
10404+
10405+/** Returns a single builtin timezone, given its offset. */
10406+icaltimezone* icaltimezone_get_builtin_timezone_from_offset    (int offset, const char *tzname);
10407+
10408+/** Returns a single builtin timezone, given its TZID. */
10409+icaltimezone* icaltimezone_get_builtin_timezone_from_tzid (const char *tzid);
10410+
10411+/** Returns the UTC timezone. */
10412+icaltimezone* icaltimezone_get_utc_timezone    (void);
10413+
10414+/** Returns the TZID of a timezone. */
10415+const char*    icaltimezone_get_tzid                   (icaltimezone *zone);
10416+
10417+/** Returns the city name of a timezone. */
10418+const char*    icaltimezone_get_location               (icaltimezone *zone);
10419+
10420+/** Returns the TZNAME properties used in the latest STANDARD and DAYLIGHT
10421+   components. If they are the same it will return just one, e.g. "LMT".
10422+   If they are different it will format them like "EST/EDT". Note that this
10423+   may also return NULL. */
10424+const char*    icaltimezone_get_tznames                (icaltimezone *zone);
10425+
10426+/** Returns the latitude of a builtin timezone. */
10427+double icaltimezone_get_latitude               (icaltimezone *zone);
10428+
10429+/** Returns the longitude of a builtin timezone. */
10430+double icaltimezone_get_longitude              (icaltimezone *zone);
10431+
10432+/** Returns the VTIMEZONE component of a timezone. */
10433+icalcomponent* icaltimezone_get_component      (icaltimezone *zone);
10434+
10435+/** Sets the VTIMEZONE component of an icaltimezone, initializing the tzid,
10436+   location & tzname fields. It returns 1 on success or 0 on failure, i.e.
10437+   no TZID was found. */
10438+int    icaltimezone_set_component              (icaltimezone *zone,
10439+                                                icalcomponent  *comp);
10440+
10441+const char* icaltimezone_get_display_name       (icaltimezone   *zone);
10442+
10443+/**
10444+ * @par Converting times between timezones.
10445+ */
10446+
10447+void   icaltimezone_convert_time               (struct icaltimetype *tt,
10448+                                                icaltimezone *from_zone,
10449+                                                icaltimezone *to_zone);
10450+
10451+
10452+/**
10453+ * @par Getting offsets from UTC.
10454+ */
10455+
10456+/** Calculates the UTC offset of a given local time in the given
10457+   timezone.  It is the number of seconds to add to UTC to get local
10458+   time.  The is_daylight flag is set to 1 if the time is in
10459+   daylight-savings time. */
10460+int icaltimezone_get_utc_offset        (icaltimezone *zone,
10461+                                struct icaltimetype *tt,
10462+                                int            *is_daylight);
10463+
10464+/** Calculates the UTC offset of a given UTC time in the given
10465+   timezone.  It is the number of seconds to add to UTC to get local
10466+   time.  The is_daylight flag is set to 1 if the time is in
10467+   daylight-savings time. */
10468+int    icaltimezone_get_utc_offset_of_utc_time (icaltimezone *zone,
10469+                                                struct icaltimetype *tt,
10470+                                                int            *is_daylight);
10471+
10472+
10473+
10474+/*
10475+ * Handling arrays of timezones. Mainly for internal use.
10476+ */
10477+icalarray*  icaltimezone_array_new             (void);
10478+
10479+void       icaltimezone_array_append_from_vtimezone (icalarray     *timezones,
10480+                                                     icalcomponent *child);
10481+void       icaltimezone_array_free             (icalarray      *timezones);
10482+
10483+
10484+/*
10485+ * @par Handling the default location the timezone files
10486+ */
10487+
10488+/** Set the directory to look for the zonefiles */
10489+void set_zone_directory(char *path);
10490+
10491+/** Free memory dedicated to the zonefile directory */
10492+void free_zone_directory(void);
10493+void icaltimezone_release_zone_tab(void);
10494+
10495+/*
10496+ * @par Debugging Output.
10497+ */
10498+
10499+/** Dumps information about changes in the timezone up to and including
10500+   max_year. */
10501+int    icaltimezone_dump_changes               (icaltimezone *zone,
10502+                                                int             max_year,
10503+                                                FILE           *fp);
10504+
10505+#endif /* ICALTIMEZONE_H */
10506+/* -*- Mode: C -*- */
10507+/*======================================================================
10508+  FILE: icalparser.h
10509+  CREATOR: eric 20 April 1999
10510
10511+
10512+
10513+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
10514+     http://www.softwarestudio.org
10515+
10516+ This program is free software; you can redistribute it and/or modify
10517+ it under the terms of either:
10518+
10519+    The LGPL as published by the Free Software Foundation, version
10520+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
10521+
10522+  Or:
10523+
10524+    The Mozilla Public License Version 1.0. You may obtain a copy of
10525+    the License at http://www.mozilla.org/MPL/
10526+
10527+  The original code is icalparser.h
10528+
10529+======================================================================*/
10530+
10531+
10532+#ifndef ICALPARSER_H
10533+#define ICALPARSER_H
10534+
10535+
10536+#include <stdio.h> /* For FILE* */
10537+
10538+typedef struct icalparser_impl icalparser;
10539+
10540+
10541+/**
10542+ * @file  icalparser.h
10543+ * @brief Line-oriented parsing.
10544+ *
10545+ * Create a new parser via icalparse_new_parser, then add lines one at
10546+ * a time with icalparse_add_line(). icalparser_add_line() will return
10547+ * non-zero when it has finished with a component.
10548+ */
10549+
10550+typedef enum icalparser_state {
10551+    ICALPARSER_ERROR,
10552+    ICALPARSER_SUCCESS,
10553+    ICALPARSER_BEGIN_COMP,
10554+    ICALPARSER_END_COMP,
10555+    ICALPARSER_IN_PROGRESS
10556+} icalparser_state;
10557+
10558+icalparser* icalparser_new(void);
10559+icalcomponent* icalparser_add_line(icalparser* parser, char* str );
10560+icalcomponent* icalparser_clean(icalparser* parser);
10561+icalparser_state icalparser_get_state(icalparser* parser);
10562+void icalparser_free(icalparser* parser);
10563+
10564+
10565+/**
10566+ * Message oriented parsing.  icalparser_parse takes a string that
10567+ * holds the text ( in RFC 2445 format ) and returns a pointer to an
10568+ * icalcomponent. The caller owns the memory. line_gen_func is a
10569+ * pointer to a function that returns one content line per invocation
10570+ */
10571+
10572+icalcomponent* icalparser_parse(icalparser *parser,
10573+       char* (*line_gen_func)(char *s, size_t size, void *d));
10574+
10575+/**
10576+   Set the data that icalparser_parse will give to the line_gen_func
10577+   as the parameter 'd'
10578+ */
10579+void icalparser_set_gen_data(icalparser* parser, void* data);
10580+
10581+
10582+icalcomponent* icalparser_parse_string(const char* str);
10583+
10584+
10585+/***********************************************************************
10586+ * Parser support functions
10587+ ***********************************************************************/
10588+
10589+/** Use the flex/bison parser to turn a string into a value type */
10590+icalvalue*  icalparser_parse_value(icalvalue_kind kind,
10591+                                  const char* str, icalcomponent** errors);
10592+
10593+/** Given a line generator function, return a single iCal content line.*/
10594+char* icalparser_get_line(icalparser* parser, char* (*line_gen_func)(char *s, size_t size, void *d));
10595+
10596+char* icalparser_string_line_generator(char *out, size_t buf_size, void *d);
10597+
10598+#endif /* !ICALPARSE_H */
10599+/* -*- Mode: C -*- */
10600+/*======================================================================
10601+ FILE: icalmemory.h
10602+ CREATOR: eric 30 June 1999
10603+
10604+
10605+
10606+ This program is free software; you can redistribute it and/or modify
10607+ it under the terms of either:
10608+
10609+    The LGPL as published by the Free Software Foundation, version
10610+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
10611+
10612+  Or:
10613+
10614+    The Mozilla Public License Version 1.0. You may obtain a copy of
10615+    the License at http://www.mozilla.org/MPL/
10616+
10617+ The Initial Developer of the Original Code is Eric Busboom
10618+
10619+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
10620+     http://www.softwarestudio.org
10621+======================================================================*/
10622+
10623+#ifndef ICALMEMORY_H
10624+#define ICALMEMORY_H
10625+
10626+#ifndef WIN32
10627+#include <sys/types.h> /* for size_t */
10628+#else
10629+#include <stddef.h>
10630+#endif
10631+
10632+/* Tmp buffers are managed by ical. References can be returned to the
10633+   caller, although the caller will not own the memory. */
10634+
10635+void* icalmemory_tmp_buffer(size_t size);
10636+char* icalmemory_tmp_copy(const char* str);
10637+
10638+/** Add an externally allocated buffer to the ring. */
10639+void  icalmemory_add_tmp_buffer(void*);
10640+
10641+
10642+/** Free all memory used in the ring */
10643+void icalmemory_free_ring(void);
10644+
10645+/* Non-tmp buffers must be freed. These are mostly wrappers around
10646+ * malloc, etc, but are used so the caller can change the memory
10647+ * allocators in a future version of the library */
10648+
10649+void* icalmemory_new_buffer(size_t size);
10650+void* icalmemory_resize_buffer(void* buf, size_t size);
10651+void icalmemory_free_buffer(void* buf);
10652+
10653+/**
10654+   icalmemory_append_string will copy the string 'string' to the
10655+   buffer 'buf' starting at position 'pos', reallocing 'buf' if it is
10656+   too small. 'buf_size' is the size of 'buf' and will be changed if
10657+   'buf' is reallocated. 'pos' will point to the last byte of the new
10658+   string in 'buf', usually a '\0' */
10659+
10660+/* THESE ROUTINES CAN NOT BE USED ON TMP BUFFERS. Only use them on
10661+   normally allocated memory, or on buffers created from
10662+   icalmemory_new_buffer, never with buffers created by
10663+   icalmemory_tmp_buffer. If icalmemory_append_string has to resize a
10664+   buffer on the ring, the ring will loose track of it an you will
10665+   have memory problems. */
10666+
10667+void icalmemory_append_string(char** buf, char** pos, size_t* buf_size,
10668+                             const char* string);
10669+
10670+/**  icalmemory_append_char is similar, but is appends a character instead of a string */
10671+void icalmemory_append_char(char** buf, char** pos, size_t* buf_size,
10672+                             char ch);
10673+
10674+/** A wrapper around strdup. Partly to trap calls to strdup, partly
10675+    because in -ansi, gcc on Red Hat claims that strdup is undeclared */
10676+char* icalmemory_strdup(const char *s);
10677+
10678+#endif /* !ICALMEMORY_H */
10679+
10680+
10681+
10682+/* -*- Mode: C -*- */
10683+/*======================================================================
10684+  FILE: icalerror.h
10685+  CREATOR: eric 09 May 1999
10686
10687+
10688+
10689+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
10690+     http://www.softwarestudio.org
10691+
10692+ This program is free software; you can redistribute it and/or modify
10693+ it under the terms of either:
10694+
10695+    The LGPL as published by the Free Software Foundation, version
10696+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
10697+
10698+  Or:
10699+
10700+    The Mozilla Public License Version 1.0. You may obtain a copy of
10701+    the License at http://www.mozilla.org/MPL/
10702+
10703+  The original code is icalerror.h
10704+
10705+======================================================================*/
10706+
10707+
10708+#ifndef ICALERROR_H
10709+#define ICALERROR_H
10710+
10711+#include <assert.h>
10712+#include <stdio.h> /* For icalerror_warn() */
10713+
10714+
10715+#ifdef HAVE_CONFIG_H
10716+#endif
10717+
10718+#define ICAL_SETERROR_ISFUNC
10719+
10720+
10721+/** This routine is called before any error is triggered. It is called
10722+   by icalerror_set_errno, so it does not appear in all of the macros
10723+   below */
10724+void icalerror_stop_here(void);
10725+
10726+void icalerror_crash_here(void);
10727+
10728+typedef enum icalerrorenum {
10729+    ICAL_NO_ERROR,     /* icalerrno may not be initialized - put it first so and pray that the compiler initialize things to zero */   
10730+    ICAL_BADARG_ERROR,
10731+    ICAL_NEWFAILED_ERROR,
10732+    ICAL_ALLOCATION_ERROR,
10733+    ICAL_MALFORMEDDATA_ERROR,
10734+    ICAL_PARSE_ERROR,
10735+    ICAL_INTERNAL_ERROR, /* Like assert --internal consist. prob */
10736+    ICAL_FILE_ERROR,
10737+    ICAL_USAGE_ERROR,
10738+    ICAL_UNIMPLEMENTED_ERROR,
10739+    ICAL_UNKNOWN_ERROR  /* Used for problems in input to icalerror_strerror()*/
10740+
10741+} icalerrorenum;
10742+
10743+icalerrorenum * icalerrno_return(void);
10744+#define icalerrno (*(icalerrno_return()))
10745+
10746+/** If true, libicl aborts after a call to icalerror_set_error
10747+ *
10748+ *  @warning NOT THREAD SAFE -- recommended that you do not change
10749+ *           this in a multithreaded program.
10750+ */
10751+extern int icalerror_errors_are_fatal;
10752+
10753+/* Warning messages */
10754+
10755+#ifdef __GNUC__ca
10756+#define icalerror_warn(message) {fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);}
10757+#else /* __GNU_C__ */
10758+#define icalerror_warn(message) {fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);}
10759+#endif /* __GNU_C__ */
10760+
10761+
10762+void icalerror_clear_errno(void);
10763+void _icalerror_set_errno(icalerrorenum);
10764+
10765+/* Make an individual error fatal or non-fatal. */
10766+typedef enum icalerrorstate {
10767+    ICAL_ERROR_FATAL,     /* Not fata */
10768+    ICAL_ERROR_NONFATAL,  /* Fatal */
10769+    ICAL_ERROR_DEFAULT,   /* Use the value of icalerror_errors_are_fatal*/
10770+    ICAL_ERROR_UNKNOWN    /* Asked state for an unknown error type */
10771+} icalerrorstate ;
10772+
10773+const char* icalerror_strerror(icalerrorenum e);
10774+const char* icalerror_perror();
10775+void ical_bt(void);
10776+void icalerror_set_error_state( icalerrorenum error, icalerrorstate);
10777+icalerrorstate icalerror_get_error_state( icalerrorenum error);
10778+
10779+#ifndef ICAL_SETERROR_ISFUNC
10780+#define icalerror_set_errno(x) \
10781+icalerrno = x; \
10782+if(icalerror_get_error_state(x)==ICAL_ERROR_FATAL || \
10783+   (icalerror_get_error_state(x)==ICAL_ERROR_DEFAULT && \
10784+    icalerror_errors_are_fatal == 1 )){ \
10785+   icalerror_warn(icalerror_strerror(x)); \
10786+   ical_bt(); \
10787+   assert(0); \
10788+} }
10789+#else
10790+void icalerror_set_errno(icalerrorenum x);
10791+#endif
10792+
10793+#ifdef ICAL_ERRORS_ARE_FATAL
10794+#undef NDEBUG
10795+#endif
10796+
10797+#define icalerror_check_value_type(value,type);
10798+#define icalerror_check_property_type(value,type);
10799+#define icalerror_check_parameter_type(value,type);
10800+#define icalerror_check_component_type(value,type);
10801+
10802+/* Assert with a message */
10803+#ifdef ICAL_ERRORS_ARE_FATAL
10804+
10805+#ifdef __GNUC__
10806+#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
10807+#else /*__GNUC__*/
10808+#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
10809+#endif /*__GNUC__*/
10810+
10811+#else /* ICAL_ERRORS_ARE_FATAL */
10812+#define icalerror_assert(test,message)
10813+#endif /* ICAL_ERRORS_ARE_FATAL */
10814+
10815+/* Check & abort if check fails */
10816+#define icalerror_check_arg(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); }
10817+
10818+/* Check & return void if check fails*/
10819+#define icalerror_check_arg_rv(test,arg) if(!(test)) {icalerror_set_errno(ICAL_BADARG_ERROR); return; }
10820+
10821+/* Check & return 0 if check fails*/
10822+#define icalerror_check_arg_rz(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return 0;}
10823+
10824+/* Check & return an error if check fails*/
10825+#define icalerror_check_arg_re(test,arg,error) if(!(test)) { icalerror_stop_here(); assert(0); return error;}
10826+
10827+/* Check & return something*/
10828+#define icalerror_check_arg_rx(test,arg,x) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return x;}
10829+
10830+
10831+
10832+/* String interfaces to set an error to NONFATAL and restore it to its
10833+   original value */
10834+
10835+icalerrorstate icalerror_supress(const char* error);
10836+void icalerror_restore(const char* error, icalerrorstate es);
10837+
10838+
10839+#endif /* !ICALERROR_H */
10840+
10841+
10842+
10843+/* -*- Mode: C -*- */
10844+/*======================================================================
10845+  FILE: icalrestriction.h
10846+  CREATOR: eric 24 April 1999
10847
10848+
10849+
10850+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
10851+     http://www.softwarestudio.org
10852+
10853+ This program is free software; you can redistribute it and/or modify
10854+ it under the terms of either:
10855+
10856+    The LGPL as published by the Free Software Foundation, version
10857+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
10858+
10859+  Or:
10860+
10861+    The Mozilla Public License Version 1.0. You may obtain a copy of
10862+    the License at http://www.mozilla.org/MPL/
10863+
10864+  The original code is icalrestriction.h
10865+
10866+  Contributions from:
10867+     Graham Davison (g.m.davison@computer.org)
10868+
10869+
10870+======================================================================*/
10871+
10872+
10873+#ifndef ICALRESTRICTION_H
10874+#define ICALRESTRICTION_H
10875+
10876+/* These must stay in this order for icalrestriction_compare to work */
10877+typedef enum icalrestriction_kind {
10878+    ICAL_RESTRICTION_NONE=0,           /* 0 */
10879+    ICAL_RESTRICTION_ZERO,             /* 1 */
10880+    ICAL_RESTRICTION_ONE,              /* 2 */
10881+    ICAL_RESTRICTION_ZEROPLUS,         /* 3 */
10882+    ICAL_RESTRICTION_ONEPLUS,          /* 4 */
10883+    ICAL_RESTRICTION_ZEROORONE,                /* 5 */
10884+    ICAL_RESTRICTION_ONEEXCLUSIVE,     /* 6 */
10885+    ICAL_RESTRICTION_ONEMUTUAL,                /* 7 */
10886+    ICAL_RESTRICTION_UNKNOWN           /* 8 */
10887+} icalrestriction_kind;
10888+
10889+int
10890+icalrestriction_compare(icalrestriction_kind restr, int count);
10891+
10892+
10893+int
10894+icalrestriction_is_parameter_allowed(icalproperty_kind property,
10895+                                       icalparameter_kind parameter);
10896+
10897+int icalrestriction_check(icalcomponent* comp);
10898+
10899+
10900+#endif /* !ICALRESTRICTION_H */
10901+
10902+
10903+
10904+/* -*- Mode: C -*-
10905+  ======================================================================
10906+  FILE: sspm.h Mime Parser
10907+  CREATOR: eric 25 June 2000
10908
10909+
10910+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
10911+     http://www.softwarestudio.org
10912+
10913+ The contents of this file are subject to the Mozilla Public License
10914+ Version 1.0 (the "License"); you may not use this file except in
10915+ compliance with the License. You may obtain a copy of the License at
10916+ http://www.mozilla.org/MPL/
10917+
10918+ Software distributed under the License is distributed on an "AS IS"
10919+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
10920+ the License for the specific language governing rights and
10921+ limitations under the License.
10922+
10923+
10924+ This program is free software; you can redistribute it and/or modify
10925+ it under the terms of either:
10926+
10927+    The LGPL as published by the Free Software Foundation, version
10928+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
10929+
10930+  Or:
10931+
10932+    The Mozilla Public License Version 1.0. You may obtain a copy of
10933+    the License at http://www.mozilla.org/MPL/
10934+
10935+  The Initial Developer of the Original Code is Eric Busboom
10936+
10937+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
10938+ ======================================================================*/
10939+
10940+#ifndef SSPM_H
10941+#define SSPM_H
10942+
10943+enum sspm_major_type {
10944+    SSPM_NO_MAJOR_TYPE,
10945+    SSPM_TEXT_MAJOR_TYPE,
10946+    SSPM_IMAGE_MAJOR_TYPE,
10947+    SSPM_AUDIO_MAJOR_TYPE,
10948+    SSPM_VIDEO_MAJOR_TYPE,
10949+    SSPM_APPLICATION_MAJOR_TYPE,
10950+    SSPM_MULTIPART_MAJOR_TYPE,
10951+    SSPM_MESSAGE_MAJOR_TYPE,
10952+    SSPM_UNKNOWN_MAJOR_TYPE
10953+};
10954+
10955+enum sspm_minor_type {
10956+    SSPM_NO_MINOR_TYPE,
10957+    SSPM_ANY_MINOR_TYPE,
10958+    SSPM_PLAIN_MINOR_TYPE,
10959+    SSPM_RFC822_MINOR_TYPE,
10960+    SSPM_DIGEST_MINOR_TYPE,
10961+    SSPM_CALENDAR_MINOR_TYPE,
10962+    SSPM_MIXED_MINOR_TYPE,
10963+    SSPM_RELATED_MINOR_TYPE,
10964+    SSPM_ALTERNATIVE_MINOR_TYPE,
10965+    SSPM_PARALLEL_MINOR_TYPE,
10966+    SSPM_UNKNOWN_MINOR_TYPE
10967+};
10968+
10969+enum sspm_encoding {
10970+    SSPM_NO_ENCODING,
10971+    SSPM_QUOTED_PRINTABLE_ENCODING,
10972+    SSPM_8BIT_ENCODING,
10973+    SSPM_7BIT_ENCODING,
10974+    SSPM_BINARY_ENCODING,
10975+    SSPM_BASE64_ENCODING,
10976+    SSPM_UNKNOWN_ENCODING
10977+};
10978+
10979+enum sspm_error{
10980+    SSPM_NO_ERROR,
10981+    SSPM_UNEXPECTED_BOUNDARY_ERROR,
10982+    SSPM_WRONG_BOUNDARY_ERROR,
10983+    SSPM_NO_BOUNDARY_ERROR,
10984+    SSPM_NO_HEADER_ERROR,
10985+    SSPM_MALFORMED_HEADER_ERROR
10986+};
10987+
10988+
10989+struct sspm_header
10990+{
10991+       int def;
10992+       char* boundary;
10993+       enum sspm_major_type major;
10994+       enum sspm_minor_type minor;
10995+       char *minor_text;
10996+       char ** content_type_params;
10997+       char* charset;
10998+       enum sspm_encoding encoding;
10999+       char* filename;
11000+       char* content_id;
11001+       enum sspm_error error;
11002+       char* error_text;
11003+};
11004+
11005+struct sspm_part {
11006+       struct sspm_header header;
11007+       int level;
11008+       size_t data_size;
11009+       void *data;
11010+};
11011+
11012+struct sspm_action_map {
11013+       enum sspm_major_type major;
11014+       enum sspm_minor_type minor;
11015+       void* (*new_part)();
11016+       void (*add_line)(void *part, struct sspm_header *header,
11017+                        const char* line, size_t size);
11018+       void* (*end_part)(void* part);
11019+       void (*free_part)(void *part);
11020+};
11021+
11022+const char* sspm_major_type_string(enum sspm_major_type type);
11023+const char* sspm_minor_type_string(enum sspm_minor_type type);
11024+const char* sspm_encoding_string(enum sspm_encoding type);
11025+
11026+int sspm_parse_mime(struct sspm_part *parts,
11027+                   size_t max_parts,
11028+                   const struct sspm_action_map *actions,
11029+                   char* (*get_string)(char *s, size_t size, void* data),
11030+                   void *get_string_data,
11031+                   struct sspm_header *first_header
11032+    );
11033+
11034+void sspm_free_parts(struct sspm_part *parts, size_t max_parts);
11035+
11036+char *decode_quoted_printable(char *dest,
11037+                                      char *src,
11038+                                      size_t *size);
11039+char *decode_base64(char *dest,
11040+                            char *src,
11041+                            size_t *size);
11042+
11043+
11044+int sspm_write_mime(struct sspm_part *parts,size_t num_parts,
11045+                   char **output_string, const char* header);
11046+
11047+#endif /*SSPM_H*/
11048+/* -*- Mode: C -*- */
11049+/*======================================================================
11050+ FILE: icalmime.h
11051+ CREATOR: eric 26 July 2000
11052+
11053+
11054+
11055+ (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
11056+     http://www.softwarestudio.org
11057+
11058+ This program is free software; you can redistribute it and/or modify
11059+ it under the terms of either:
11060+
11061+    The LGPL as published by the Free Software Foundation, version
11062+    2.1, available at: http://www.fsf.org/copyleft/lesser.html
11063+
11064+  Or:
11065+
11066+    The Mozilla Public License Version 1.0. You may obtain a copy of
11067+    the License at http://www.mozilla.org/MPL/
11068+
11069+======================================================================*/
11070+
11071+#ifndef ICALMIME_H
11072+#define ICALMIME_H
11073+
11074+
11075+icalcomponent* icalmime_parse( char* (*line_gen_func)(char *s, size_t size,
11076+                                                      void *d),
11077+                               void *data);
11078+
11079+/* The inverse of icalmime_parse, not implemented yet. Use sspm.h directly.  */
11080+char* icalmime_as_mime_string(char* component);
11081+
11082+
11083+
11084+#endif /* !ICALMIME_H */
11085+
11086+
11087+
11088+/* -*- Mode: C -*-
11089+  ======================================================================
11090+  FILE: icallangbind.h
11091+  CREATOR: eric 25 jan 2001
11092
11093+  DESCRIPTION:
11094
11095+
11096+  (C) COPYRIGHT 1999 Eric Busboom
11097+  http://www.softwarestudio.org
11098
11099+  This package is free software and is provided "as is" without
11100+  express or implied warranty.  It may be used, redistributed and/or
11101+  modified under the same terms as perl itself. ( Either the Artistic
11102+  License or the GPL. )
11103+
11104+  ======================================================================*/
11105+
11106+#ifndef __ICALLANGBIND_H__
11107+#define __ICALLANGBIND_H__
11108+
11109+int* icallangbind_new_array(int size);
11110+void icallangbind_free_array(int* array);
11111+int icallangbind_access_array(int* array, int index);
11112+icalproperty* icallangbind_get_property(icalcomponent *c, int n, const char* prop);
11113+const char* icallangbind_get_property_val(icalproperty* p);
11114+const char* icallangbind_get_parameter(icalproperty *p, const char* parameter);
11115+icalcomponent* icallangbind_get_component(icalcomponent *c, const char* comp);
11116+
11117+icalproperty* icallangbind_get_first_property(icalcomponent *c,
11118+                                              const char* prop);
11119+
11120+icalproperty* icallangbind_get_next_property(icalcomponent *c,
11121+                                              const char* prop);
11122+
11123+icalcomponent* icallangbind_get_first_component(icalcomponent *c,
11124+                                              const char* comp);
11125+
11126+icalcomponent* icallangbind_get_next_component(icalcomponent *c,
11127+                                              const char* comp);
11128+
11129+icalparameter* icallangbind_get_first_parameter(icalproperty *prop);
11130+
11131+icalparameter* icallangbind_get_next_parameter(icalproperty *prop);
11132+
11133+const char* icallangbind_property_eval_string(icalproperty* prop, char* sep);
11134+char* icallangbind_property_eval_string_r(icalproperty* prop, char* sep);
11135+
11136+
11137+int icallangbind_string_to_open_flag(const char* str);
11138+
11139+const char* icallangbind_quote_as_ical(const char* str);
11140+char* icallangbind_quote_as_ical_r(const char* str);
11141+#endif /*__ICALLANGBIND_H__*/
11142+#ifdef __cplusplus
11143+}
11144+#endif
11145+#endif
11146diff -Nurb libical-0.42.orig/src/libical/icalrestriction.c libical-0.42/src/libical/icalrestriction.c
11147--- libical-0.42.orig/src/libical/icalrestriction.c     1970-01-01 01:00:00.000000000 +0100
11148+++ libical-0.42/src/libical/icalrestriction.c  2009-01-13 13:31:50.000000000 +0100
11149@@ -0,0 +1,1899 @@
11150+/*  -*- Mode: C -*- */
11151+/*  ======================================================================
11152+  File: icalrestriction.c
11153+   
11154+ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
11155+ ======================================================================*/
11156+/*#line 7 "icalrestriction.c.in"*/
11157+
11158+#ifdef HAVE_CONFIG_H
11159+#include <config.h>
11160+#endif
11161+
11162+#include "icalrestriction.h"
11163+#include "icalenums.h"
11164+#include "icalerror.h"
11165+
11166+#include <assert.h>
11167+#include <stdio.h> /* For snprintf */   
11168+
11169+#define TMP_BUF_SIZE 1024
11170+
11171+/* Define the structs for the restrictions. these data are filled out
11172+in machine generated code below */
11173+
11174+struct icalrestriction_property_record;
11175+
11176+typedef const char* (*restriction_func)(const struct icalrestriction_property_record* rec,icalcomponent* comp,icalproperty* prop);
11177+
11178+
11179+typedef struct icalrestriction_property_record {
11180+       icalproperty_method method;
11181+       icalcomponent_kind component;
11182+       icalproperty_kind property;
11183+       icalrestriction_kind restriction;
11184+       restriction_func function;
11185+} icalrestriction_property_record;
11186+
11187+
11188+typedef struct icalrestriction_component_record {
11189+       icalproperty_method method;
11190+       icalcomponent_kind component;
11191+       icalcomponent_kind subcomponent;
11192+       icalrestriction_kind restriction;
11193+       restriction_func function;
11194+} icalrestriction_component_record;
11195+
11196+static const icalrestriction_property_record*
11197+icalrestriction_get_property_restriction(icalproperty_method method,
11198+                                        icalcomponent_kind component,
11199+                                        icalproperty_kind property);
11200+static const icalrestriction_component_record*
11201+icalrestriction_get_component_restriction(icalproperty_method method,
11202+                                         icalcomponent_kind component,
11203+                                         icalcomponent_kind subcomponent);
11204+
11205+icalrestriction_property_record null_prop_record =   {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_UNKNOWN,0};
11206+icalrestriction_component_record null_comp_record =   {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_UNKNOWN,0};
11207+
11208+
11209+/** Each row gives the result of comparing a restriction against a count.
11210+   The columns in each row represent 0,1,2+. '-1' indicates
11211+   'invalid, 'don't care' or 'needs more analysis' So, for
11212+   ICAL_RESTRICTION_ONE, if there is 1 of a property with that
11213+   restriction, it passes, but if there are 0 or 2+, it fails. */
11214+
11215+char compare_map[ICAL_RESTRICTION_UNKNOWN+1][3] = {
11216+    { 1, 1, 1},/*ICAL_RESTRICTION_NONE*/
11217+    { 1, 0, 0},/*ICAL_RESTRICTION_ZERO*/
11218+    { 0, 1, 0},/*ICAL_RESTRICTION_ONE*/
11219+    { 1, 1, 1},/*ICAL_RESTRICTION_ZEROPLUS*/
11220+    { 0, 1, 1},/*ICAL_RESTRICTION_ONEPLUS*/
11221+    { 1, 1, 0},/*ICAL_RESTRICTION_ZEROORONE*/
11222+    { 1, 1, 0},/*ICAL_RESTRICTION_ONEEXCLUSIVE*/
11223+    { 1, 1, 0},/*ICAL_RESTRICTION_ONEMUTUAL*/
11224+    { 1, 1, 1} /*ICAL_RESTRICTION_UNKNOWN*/
11225+};
11226+
11227+const char restr_string_map[ICAL_RESTRICTION_UNKNOWN+1][60] = {
11228+    "unknown number",/*ICAL_RESTRICTION_NONE*/
11229+    "0",/*ICAL_RESTRICTION_ZERO*/
11230+    "1",/*ICAL_RESTRICTION_ONE*/
11231+    "zero or more",/*ICAL_RESTRICTION_ZEROPLUS*/
11232+    "one or more" ,/*ICAL_RESTRICTION_ONEPLUS*/
11233+    "zero or one",/*ICAL_RESTRICTION_ZEROORONE*/
11234+    "zero or one, exclusive with another property",/*ICAL_RESTRICTION_ONEEXCLUSIVE*/
11235+    "zero or one, mutual with another property",/*ICAL_RESTRICTION_ONEMUTUAL*/
11236+    "unknown number" /*ICAL_RESTRICTION_UNKNOWN*/
11237+};
11238+
11239+
11240+int
11241+icalrestriction_compare(icalrestriction_kind restr, int count){
11242+
11243+    /* restr is an unsigned int, ICAL_RESTRICTION_NONE == 0, so the check will always return false */
11244+    if ( /*restr < ICAL_RESTRICTION_NONE ||*/ restr > ICAL_RESTRICTION_UNKNOWN
11245+        || count < 0){
11246+       return -1;
11247+    }
11248+
11249+    if (count > 2) {
11250+       count = 2;
11251+    }
11252+
11253+    return compare_map[restr][count];
11254+
11255+}
11256+
11257+/* Special case routines */
11258+
11259+const char* icalrestriction_may_be_draft_final_canceled(
11260+    const icalrestriction_property_record *rec,
11261+    icalcomponent* comp,
11262+    icalproperty* prop)
11263+{
11264+    icalproperty_status stat = icalproperty_get_status(prop);
11265+    (void)rec;
11266+    (void)comp;
11267+
11268+    if( !( stat == ICAL_STATUS_DRAFT ||
11269+          stat == ICAL_STATUS_FINAL ||
11270+          stat == ICAL_STATUS_CANCELLED )){
11271+
11272+       return "Failed iTIP restrictions for STATUS property. Value must be one of DRAFT, FINAL, or CANCELED";
11273+
11274+    }
11275+
11276+    return 0;   
11277+}
11278+
11279+const char* icalrestriction_may_be_comp_need_process(
11280+    const icalrestriction_property_record *rec,
11281+    icalcomponent* comp,
11282+    icalproperty* prop)
11283+{
11284+    icalproperty_status stat = icalproperty_get_status(prop);
11285+    (void)rec;
11286+    (void)comp;
11287+
11288+    if( !( stat == ICAL_STATUS_COMPLETED ||
11289+          stat == ICAL_STATUS_NEEDSACTION ||
11290+          stat == ICAL_STATUS_INPROCESS )){
11291+
11292+       return "Failed iTIP restrictions for STATUS property. Value must be one of COMPLETED, NEEDS-ACTION or IN-PROCESS";
11293+
11294+    }
11295+
11296+    return 0;   
11297+}
11298+const char* icalrestriction_may_be_tent_conf(const icalrestriction_property_record *rec,
11299+                                      icalcomponent* comp,
11300+                                      icalproperty* prop)
11301+{
11302+    icalproperty_status stat = icalproperty_get_status(prop);
11303+
11304+    (void)rec;
11305+    (void)comp;
11306+
11307+    if( !( stat == ICAL_STATUS_TENTATIVE ||
11308+          stat == ICAL_STATUS_CONFIRMED )){
11309+
11310+       return "Failed iTIP restrictions for STATUS property. Value must be one of TENTATIVE or CONFIRMED";
11311+
11312+    }
11313+
11314+    return 0;   
11315+}
11316+const char* icalrestriction_may_be_tent_conf_cancel(
11317+    const icalrestriction_property_record *rec,
11318+    icalcomponent* comp,
11319+    icalproperty* prop)
11320+{
11321+    icalproperty_status stat = icalproperty_get_status(prop);
11322+
11323+    (void)rec;
11324+    (void)comp;
11325+
11326+    if( !( stat == ICAL_STATUS_TENTATIVE ||
11327+          stat == ICAL_STATUS_CONFIRMED ||
11328+          stat == ICAL_STATUS_CANCELLED )){
11329+
11330+       return "Failed iTIP restrictions for STATUS property. Value must be one of TENTATIVE, CONFIRMED or CANCELED";
11331+
11332+    }
11333+
11334+    return 0;   
11335+}
11336+
11337+const char* icalrestriction_must_be_cancel_if_present(
11338+    const icalrestriction_property_record *rec,
11339+    icalcomponent* comp,
11340+    icalproperty* prop)
11341+{
11342+    /* This routine will not be called if prop == 0 */
11343+    icalproperty_status stat = icalproperty_get_status(prop);
11344+    (void)rec;
11345+    (void)comp;
11346+
11347+    if( stat != ICAL_STATUS_CANCELLED)
11348+    {
11349+       return "Failed iTIP restrictions for STATUS property. Value must be CANCELLED";
11350+
11351+    }
11352+
11353+
11354+    return 0;   
11355+}
11356+
11357+const char* icalrestriction_must_be_canceled_no_attendee(
11358+    const icalrestriction_property_record *rec,
11359+    icalcomponent* comp,
11360+    icalproperty* prop)
11361+{
11362+    (void)rec;
11363+    (void)comp;
11364+    (void)prop;
11365+
11366+    /* Hack. see rfc2446, 3.2.5 CANCEL for porperty STATUS. I don't
11367+       understand the note */
11368+
11369+    return 0;   
11370+}
11371+
11372+const char* icalrestriction_must_be_recurring(
11373+               const icalrestriction_property_record *rec,
11374+               icalcomponent* comp,
11375+               icalproperty* prop){
11376+    /* Hack */
11377+    (void)rec;
11378+    (void)comp;
11379+    (void)prop;
11380+    return 0;   
11381+}
11382+
11383+const char* icalrestriction_must_have_duration(
11384+       const icalrestriction_property_record *rec,
11385+       icalcomponent* comp,
11386+       icalproperty* prop)
11387+{   
11388+    if( !icalcomponent_get_first_property(comp,ICAL_DURATION_PROPERTY)){
11389+
11390+       return "Failed iTIP restrictions for DURATION property. This component must have a DURATION property";
11391+
11392+    }
11393+
11394+    return 0;   
11395+}
11396+
11397+const char* icalrestriction_must_have_repeat(
11398+               const icalrestriction_property_record *rec,
11399+               icalcomponent* comp,
11400+               icalproperty* prop)
11401+{
11402+    (void)rec;
11403+    (void)prop;
11404+    if( !icalcomponent_get_first_property(comp,ICAL_REPEAT_PROPERTY)){
11405+
11406+       return "Failed iTIP restrictions for REPEAT property. This component must have a REPEAT property";
11407+
11408+    }
11409+
11410+    return 0;   
11411+}
11412+
11413+const char* icalrestriction_must_if_tz_ref(
11414+               const icalrestriction_property_record *rec,
11415+               icalcomponent* comp,
11416+               icalproperty* prop){
11417+
11418+    /* Hack */
11419+    (void)rec;
11420+    (void)comp;
11421+    (void)prop;
11422+    return 0;   
11423+}
11424+
11425+const char* icalrestriction_no_dtend(
11426+               const icalrestriction_property_record *rec,
11427+               icalcomponent* comp,
11428+               icalproperty* prop)
11429+{
11430+
11431+    (void)rec;
11432+    (void)prop;
11433+    if( !icalcomponent_get_first_property(comp,ICAL_DTEND_PROPERTY)){
11434+
11435+       return "Failed iTIP restrictions for DTEND property. The component must not have both DURATION and DTEND";
11436+
11437+    }
11438+
11439+    return 0;   
11440+}
11441+
11442+const char* icalrestriction_no_duration(
11443+               const icalrestriction_property_record *rec,
11444+               icalcomponent* comp,
11445+               icalproperty* prop)
11446+{
11447+    (void)rec;
11448+    (void)comp;
11449+    (void)prop;
11450+
11451+    /* _no_dtend takes care of this one */
11452+    return 0;   
11453+}
11454+
11455+const char* icalrestriction_must_be_email(
11456+    const icalrestriction_property_record *rec,
11457+    icalcomponent* comp,
11458+    icalproperty* prop)
11459+{
11460+    icalproperty_action stat = icalproperty_get_action(prop);
11461+
11462+    (void)rec;
11463+    (void)comp;
11464+
11465+    if( !( stat == ICAL_ACTION_EMAIL)){
11466+
11467+       return "Failed iTIP restrictions for ACTION property. Value must be EMAIL.";
11468+
11469+    }
11470+
11471+    return 0;   
11472+}
11473+
11474+int icalrestriction_check_component(icalproperty_method method,
11475+                                   icalcomponent* comp)
11476+{
11477+    icalproperty_kind kind;
11478+    icalcomponent_kind comp_kind;
11479+    icalrestriction_kind restr;
11480+    const icalrestriction_property_record *prop_record;
11481+    const char* funcr = 0;
11482+    icalproperty *prop;
11483+
11484+    int count;
11485+    int compare;
11486+    int valid = 1;
11487+
11488+    comp_kind = icalcomponent_isa(comp);
11489+
11490+    /* Check all of the properties in this component */
11491+
11492+    for(kind = ICAL_ANY_PROPERTY+1; kind != ICAL_NO_PROPERTY; kind++){
11493+       count = icalcomponent_count_properties(comp, kind);
11494+       
11495+       prop_record = icalrestriction_get_property_restriction(method,
11496+                                                        comp_kind,
11497+                                                        kind);
11498+
11499+       restr = prop_record->restriction;
11500+
11501+       if(restr == ICAL_RESTRICTION_ONEEXCLUSIVE ||
11502+           restr == ICAL_RESTRICTION_ONEMUTUAL) {
11503+
11504+           /* First treat is as a 0/1 restriction */
11505+           restr = ICAL_RESTRICTION_ZEROORONE;
11506+           compare = icalrestriction_compare(restr,count);
11507+
11508+       } else {
11509+
11510+           compare = icalrestriction_compare(restr,count);
11511+       }
11512+
11513+       assert(compare != -1);
11514+
11515+       if (compare == 0){
11516+           char temp[TMP_BUF_SIZE];
11517+           
11518+           snprintf(temp, TMP_BUF_SIZE,"Failed iTIP restrictions for %s property. Expected %s instances of the property and got %d",
11519+                   icalenum_property_kind_to_string(kind),
11520+                   restr_string_map[restr], count);
11521+           
11522+           icalcomponent_add_property
11523+               (comp,
11524+                icalproperty_vanew_xlicerror(
11525+                    temp,
11526+                    icalparameter_new_xlicerrortype(ICAL_XLICERRORTYPE_INVALIDITIP),
11527+                    0));   
11528+       }
11529+
11530+
11531+       prop = icalcomponent_get_first_property(comp, kind);
11532+
11533+       if (prop != 0 && prop_record->function !=0  ){
11534+           funcr =  prop_record->function(prop_record,comp,prop);
11535+       }
11536+
11537+       if(funcr !=0){
11538+           icalcomponent_add_property
11539+               (comp,
11540+                icalproperty_vanew_xlicerror(
11541+                    funcr,
11542+                    icalparameter_new_xlicerrortype(
11543+                        ICAL_XLICERRORTYPE_INVALIDITIP),
11544+                    0));   
11545+
11546+           compare = 0;
11547+       }
11548+
11549+       valid = valid && compare;
11550+    }
11551+
11552+
11553+
11554+    return valid;
11555+
11556+
11557+}
11558+
11559+int icalrestriction_check(icalcomponent* outer_comp)
11560+{
11561+    icalcomponent_kind comp_kind;
11562+    icalproperty_method method;
11563+    icalcomponent* inner_comp;
11564+    icalproperty *method_prop;
11565+    int valid;
11566+   
11567+    icalerror_check_arg_rz( (outer_comp!=0), "outer comp");
11568+
11569+
11570+    /* Get the Method value from the outer component */
11571+
11572+    comp_kind = icalcomponent_isa(outer_comp);
11573+
11574+    if (comp_kind != ICAL_VCALENDAR_COMPONENT){
11575+       icalerror_set_errno(ICAL_BADARG_ERROR);
11576+       return 0;
11577+    }
11578+
11579+    method_prop = icalcomponent_get_first_property(outer_comp,
11580+                                                  ICAL_METHOD_PROPERTY);
11581+
11582+    if (method_prop == 0){
11583+       method = ICAL_METHOD_NONE;
11584+    } else {
11585+       method = icalproperty_get_method(method_prop);
11586+    }
11587+   
11588+
11589+    /* Check the VCALENDAR wrapper */
11590+    valid = icalrestriction_check_component(ICAL_METHOD_NONE,outer_comp);
11591+
11592+
11593+    /* Now check the inner components */
11594+
11595+    for(inner_comp= icalcomponent_get_first_component(outer_comp,
11596+                                                     ICAL_ANY_COMPONENT);
11597+       inner_comp != 0;
11598+       inner_comp= icalcomponent_get_next_component(outer_comp,
11599+                                                    ICAL_ANY_COMPONENT)){
11600+
11601+       valid = valid && icalrestriction_check_component(method,inner_comp);
11602+
11603+    }
11604+
11605+
11606+    return valid;
11607+
11608+}
11609+
11610+static const icalrestriction_property_record icalrestriction_property_records[] = {
11611+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11612+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
11613+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11614+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
11615+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11616+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
11617+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11618+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11619+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
11620+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11621+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11622+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11623+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11624+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11625+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
11626+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
11627+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11628+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11629+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11630+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11631+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11632+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11633+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11634+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11635+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11636+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11637+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf_cancel},
11638+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11639+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11640+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11641+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11642+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11643+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11644+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
11645+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11646+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
11647+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11648+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11649+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
11650+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11651+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11652+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
11653+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11654+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11655+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11656+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11657+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11658+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
11659+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
11660+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11661+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11662+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11663+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11664+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11665+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11666+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11667+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
11668+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11669+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11670+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11671+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11672+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf},
11673+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11674+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11675+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11676+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11677+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
11678+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11679+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11680+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
11681+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11682+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11683+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11684+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
11685+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11686+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11687+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11688+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11689+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11690+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
11691+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11692+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
11693+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11694+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11695+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11696+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11697+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11698+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11699+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11700+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11701+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11702+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11703+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11704+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11705+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11706+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11707+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11708+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11709+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11710+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11711+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
11712+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11713+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
11714+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
11715+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11716+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11717+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11718+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
11719+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11720+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11721+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11722+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11723+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11724+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
11725+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
11726+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11727+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11728+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11729+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11730+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11731+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11732+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11733+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11734+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11735+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11736+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf},
11737+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11738+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11739+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11740+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,icalrestriction_must_be_recurring},
11741+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11742+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11743+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11744+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11745+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11746+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
11747+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11748+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11749+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11750+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
11751+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11752+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11753+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11754+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11755+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE ,icalrestriction_no_duration},
11756+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11757+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
11758+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11759+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11760+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11761+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11762+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11763+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11764+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11765+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
11766+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11767+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11768+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11769+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_canceled_no_attendee},
11770+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11771+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11772+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11773+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11774+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11775+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11776+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
11777+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11778+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11779+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11780+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11781+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
11782+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11783+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11784+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11785+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11786+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11787+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11788+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11789+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11790+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11791+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11792+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11793+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11794+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11795+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11796+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11797+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11798+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11799+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11800+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11801+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11802+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11803+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11804+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11805+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11806+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11807+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11808+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11809+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11810+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
11811+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11812+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
11813+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
11814+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11815+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11816+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11817+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
11818+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11819+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11820+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11821+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11822+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11823+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
11824+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
11825+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11826+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11827+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11828+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11829+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11830+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11831+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11832+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
11833+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11834+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11835+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11836+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11837+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf_cancel},
11838+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11839+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11840+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11841+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11842+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11843+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11844+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11845+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11846+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
11847+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11848+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11849+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11850+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11851+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11852+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11853+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11854+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11855+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11856+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11857+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11858+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11859+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11860+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11861+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11862+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11863+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11864+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11865+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11866+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11867+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11868+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11869+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11870+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11871+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11872+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11873+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11874+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11875+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11876+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
11877+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONE,0},
11878+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
11879+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11880+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11881+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11882+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11883+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11884+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11885+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11886+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11887+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11888+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
11889+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONE,0},
11890+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11891+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
11892+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11893+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11894+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11895+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11896+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11897+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11898+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11899+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11900+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11901+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
11902+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11903+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONE,0},
11904+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
11905+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
11906+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11907+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11908+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11909+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11910+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11911+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11912+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11913+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11914+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11915+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11916+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
11917+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11918+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
11919+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11920+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
11921+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11922+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11923+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
11924+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11925+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11926+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11927+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11928+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11929+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11930+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11931+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11932+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11933+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11934+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11935+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11936+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11937+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11938+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
11939+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11940+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11941+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11942+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11943+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11944+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11945+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11946+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11947+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11948+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
11949+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11950+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
11951+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11952+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
11953+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11954+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
11955+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11956+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11957+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
11958+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11959+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11960+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11961+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11962+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11963+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11964+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11965+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11966+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11967+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11968+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11969+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11970+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11971+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11972+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
11973+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11974+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11975+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11976+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_comp_need_process},
11977+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11978+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11979+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
11980+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11981+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
11982+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
11983+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
11984+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
11985+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
11986+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11987+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
11988+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11989+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11990+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11991+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11992+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11993+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11994+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11995+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11996+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11997+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
11998+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
11999+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12000+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12001+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12002+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12003+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12004+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12005+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12006+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12007+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12008+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12009+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12010+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12011+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12012+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12013+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12014+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
12015+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12016+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
12017+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
12018+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
12019+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12020+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12021+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12022+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12023+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12024+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12025+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12026+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12027+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12028+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12029+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12030+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12031+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12032+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12033+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12034+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12035+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12036+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12037+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12038+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12039+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12040+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12041+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_comp_need_process},
12042+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12043+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12044+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,icalrestriction_must_be_recurring},
12045+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12046+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12047+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12048+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12049+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
12050+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12051+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
12052+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12053+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
12054+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12055+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12056+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12057+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12058+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12059+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12060+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12061+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12062+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12063+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12064+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12065+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12066+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12067+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12068+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12069+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12070+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12071+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12072+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12073+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12074+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_canceled_no_attendee},
12075+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12076+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12077+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12078+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12079+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
12080+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
12081+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12082+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12083+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12084+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12085+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12086+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12087+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12088+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12089+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12090+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12091+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12092+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12093+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12094+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12095+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12096+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12097+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12098+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12099+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12100+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12101+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12102+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12103+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12104+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12105+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12106+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12107+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12108+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12109+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12110+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12111+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
12112+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
12113+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12114+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
12115+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
12116+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12117+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12118+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
12119+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12120+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12121+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12122+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12123+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12124+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12125+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12126+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12127+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12128+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12129+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12130+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12131+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12132+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12133+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12134+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12135+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12136+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12137+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12138+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12139+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12140+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_comp_need_process},
12141+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12142+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12143+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12144+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
12145+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
12146+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12147+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
12148+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12149+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12150+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
12151+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12152+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12153+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12154+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12155+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12156+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12157+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12158+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12159+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12160+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12161+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12162+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12163+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12164+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12165+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12166+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12167+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12168+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12169+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12170+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12171+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12172+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12173+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12174+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12175+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12176+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
12177+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
12178+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
12179+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12180+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12181+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12182+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
12183+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12184+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12185+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12186+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12187+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12188+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12189+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12190+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12191+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12192+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12193+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12194+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12195+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_draft_final_canceled},
12196+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12197+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12198+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12199+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12200+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
12201+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
12202+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
12203+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12204+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
12205+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12206+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12207+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
12208+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12209+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12210+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12211+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12212+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12213+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12214+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12215+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12216+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12217+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12218+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12219+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12220+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12221+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12222+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12223+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12224+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
12225+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12226+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
12227+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12228+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12229+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12230+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
12231+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12232+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12233+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12234+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12235+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12236+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12237+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12238+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12239+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12240+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12241+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12242+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12243+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12244+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_cancel_if_present},
12245+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12246+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12247+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12248+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12249+    {ICAL_METHOD_PUBLISH,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12250+    {ICAL_METHOD_PUBLISH,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12251+    {ICAL_METHOD_PUBLISH,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12252+    {ICAL_METHOD_PUBLISH,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12253+    {ICAL_METHOD_REQUEST,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12254+    {ICAL_METHOD_REQUEST,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12255+    {ICAL_METHOD_REQUEST,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12256+    {ICAL_METHOD_REQUEST,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12257+    {ICAL_METHOD_REPLY,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12258+    {ICAL_METHOD_REPLY,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12259+    {ICAL_METHOD_REPLY,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12260+    {ICAL_METHOD_REPLY,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12261+    {ICAL_METHOD_ADD,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12262+    {ICAL_METHOD_ADD,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12263+    {ICAL_METHOD_ADD,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12264+    {ICAL_METHOD_ADD,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12265+    {ICAL_METHOD_CANCEL,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12266+    {ICAL_METHOD_CANCEL,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12267+    {ICAL_METHOD_CANCEL,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12268+    {ICAL_METHOD_CANCEL,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12269+    {ICAL_METHOD_REFRESH,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12270+    {ICAL_METHOD_REFRESH,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12271+    {ICAL_METHOD_REFRESH,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12272+    {ICAL_METHOD_REFRESH,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12273+    {ICAL_METHOD_COUNTER,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12274+    {ICAL_METHOD_COUNTER,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12275+    {ICAL_METHOD_COUNTER,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12276+    {ICAL_METHOD_COUNTER,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12277+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12278+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12279+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12280+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12281+    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_ALLOWCONFLICT_PROPERTY,ICAL_RESTRICTION_ONE,0},
12282+    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12283+    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12284+    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12285+    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12286+    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_DEFAULTCHARSET_PROPERTY,ICAL_RESTRICTION_ONE,0},
12287+    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_DEFAULTLOCALE_PROPERTY,ICAL_RESTRICTION_ONE,0},
12288+    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_DEFAULTTZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12289+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12290+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12291+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12292+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12293+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12294+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12295+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12296+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12297+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12298+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12299+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12300+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12301+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12302+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12303+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12304+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12305+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12306+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12307+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12308+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12309+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12310+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12311+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12312+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12313+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12314+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12315+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12316+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12317+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12318+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12319+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12320+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12321+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12322+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12323+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12324+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12325+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12326+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12327+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12328+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12329+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12330+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12331+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12332+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12333+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12334+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12335+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12336+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ONE,0},
12337+    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12338+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12339+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12340+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12341+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12342+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12343+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12344+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12345+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12346+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12347+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12348+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12349+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
12350+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12351+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12352+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12353+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
12354+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12355+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12356+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12357+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12358+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12359+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12360+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12361+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12362+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12363+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12364+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12365+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12366+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12367+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12368+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12369+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12370+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12371+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12372+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12373+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12374+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12375+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12376+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12377+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12378+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12379+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12380+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12381+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12382+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12383+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12384+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12385+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12386+    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12387+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12388+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12389+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12390+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12391+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12392+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12393+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12394+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12395+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12396+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12397+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12398+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12399+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12400+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12401+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
12402+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
12403+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12404+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12405+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12406+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12407+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12408+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12409+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12410+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12411+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12412+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12413+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12414+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12415+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12416+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12417+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12418+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12419+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12420+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12421+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12422+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12423+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12424+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12425+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12426+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12427+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12428+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12429+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12430+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12431+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12432+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12433+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12434+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12435+    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12436+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12437+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12438+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12439+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12440+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12441+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12442+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12443+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12444+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12445+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12446+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12447+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12448+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12449+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12450+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
12451+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
12452+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12453+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12454+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12455+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12456+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12457+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12458+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12459+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12460+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12461+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12462+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12463+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12464+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
12465+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12466+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12467+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12468+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12469+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12470+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12471+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12472+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12473+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12474+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12475+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12476+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12477+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12478+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12479+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12480+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12481+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12482+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12483+    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12484+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12485+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12486+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12487+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12488+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12489+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12490+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12491+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12492+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12493+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12494+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12495+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12496+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12497+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12498+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12499+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12500+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12501+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12502+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12503+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12504+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12505+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12506+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12507+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12508+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12509+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12510+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12511+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12512+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12513+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12514+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12515+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12516+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12517+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12518+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12519+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12520+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12521+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12522+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12523+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12524+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12525+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12526+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12527+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12528+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12529+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12530+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12531+    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12532+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12533+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12534+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12535+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12536+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12537+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12538+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12539+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12540+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12541+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12542+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12543+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12544+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12545+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12546+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12547+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12548+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12549+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12550+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12551+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12552+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12553+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12554+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12555+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12556+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12557+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12558+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12559+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12560+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12561+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12562+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12563+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12564+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12565+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12566+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12567+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12568+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12569+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12570+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12571+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
12572+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12573+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12574+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12575+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12576+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12577+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12578+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12579+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12580+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12581+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12582+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12583+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12584+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12585+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12586+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12587+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12588+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12589+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12590+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12591+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12592+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12593+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
12594+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12595+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12596+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12597+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12598+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12599+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12600+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12601+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12602+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12603+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12604+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12605+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12606+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12607+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12608+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12609+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12610+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12611+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12612+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12613+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12614+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12615+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12616+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12617+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12618+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12619+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12620+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12621+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ONE,0},
12622+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ONE,0},
12623+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12624+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12625+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12626+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12627+    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12628+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12629+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12630+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12631+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12632+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12633+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12634+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12635+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12636+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12637+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12638+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12639+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12640+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12641+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
12642+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12643+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12644+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12645+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12646+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12647+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12648+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12649+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12650+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12651+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12652+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12653+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12654+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12655+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12656+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12657+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12658+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12659+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12660+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12661+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12662+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12663+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12664+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12665+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12666+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12667+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12668+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12669+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ONE,0},
12670+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ONE,0},
12671+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12672+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12673+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12674+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12675+    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12676+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
12677+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12678+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12679+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12680+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12681+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12682+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12683+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12684+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12685+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12686+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12687+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12688+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12689+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12690+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12691+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
12692+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
12693+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12694+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12695+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12696+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12697+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12698+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12699+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12700+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12701+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12702+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12703+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12704+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12705+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12706+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12707+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12708+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12709+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12710+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12711+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12712+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12713+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12714+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12715+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12716+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12717+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12718+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12719+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12720+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12721+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12722+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12723+    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12724+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
12725+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12726+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12727+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12728+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12729+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12730+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12731+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12732+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12733+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12734+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
12735+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12736+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12737+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12738+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12739+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
12740+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
12741+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12742+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12743+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12744+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12745+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12746+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12747+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12748+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12749+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12750+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12751+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12752+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12753+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12754+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12755+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12756+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12757+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12758+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12759+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12760+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12761+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12762+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12763+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12764+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12765+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12766+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12767+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12768+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12769+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12770+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12771+    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12772+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,icalrestriction_must_be_email},
12773+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12774+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
12775+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12776+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12777+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12778+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12779+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12780+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12781+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12782+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
12783+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12784+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12785+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12786+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12787+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
12788+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
12789+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12790+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12791+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12792+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12793+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12794+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12795+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12796+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12797+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12798+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12799+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12800+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12801+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12802+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12803+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12804+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12805+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12806+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12807+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12808+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
12809+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12810+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12811+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12812+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12813+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12814+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12815+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12816+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12817+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12818+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12819+    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12820+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
12821+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12822+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12823+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12824+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12825+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12826+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12827+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12828+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12829+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12830+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12831+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12832+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12833+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12834+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12835+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
12836+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
12837+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12838+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12839+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12840+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12841+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12842+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12843+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12844+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12845+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12846+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12847+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12848+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12849+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12850+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12851+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12852+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12853+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12854+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12855+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12856+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12857+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12858+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
12859+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12860+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12861+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12862+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12863+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12864+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12865+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12866+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
12867+    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
12868+    {ICAL_METHOD_NONE,ICAL_VQUERY_COMPONENT,ICAL_QUERY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
12869+    {ICAL_METHOD_NONE,ICAL_VQUERY_COMPONENT,ICAL_QUERYNAME_PROPERTY,ICAL_RESTRICTION_ONE,0},
12870+    {ICAL_METHOD_NONE,ICAL_VQUERY_COMPONENT,ICAL_EXPAND_PROPERTY,ICAL_RESTRICTION_ONE,0},
12871+    {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_NONE}
12872+};
12873+static const icalrestriction_component_record icalrestriction_component_records[] = {
12874+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12875+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12876+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12877+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12878+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
12879+    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12880+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12881+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
12882+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12883+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12884+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12885+    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12886+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_if_tz_ref},
12887+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12888+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12889+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12890+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12891+    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12892+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12893+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
12894+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12895+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12896+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12897+    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12898+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
12899+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12900+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12901+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12902+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12903+    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12904+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12905+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12906+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12907+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12908+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,icalrestriction_must_if_tz_ref},
12909+    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12910+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12911+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
12912+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12913+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12914+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12915+    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12916+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12917+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12918+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12919+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12920+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,icalrestriction_must_if_tz_ref},
12921+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12922+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12923+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12924+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12925+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12926+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,icalrestriction_must_if_tz_ref},
12927+    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12928+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12929+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12930+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12931+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12932+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12933+    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12934+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12935+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12936+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12937+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12938+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12939+    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12940+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12941+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12942+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12943+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12944+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12945+    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12946+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12947+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12948+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12949+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12950+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12951+    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12952+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
12953+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12954+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12955+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12956+    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12957+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12958+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12959+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12960+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12961+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12962+    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12963+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
12964+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12965+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12966+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12967+    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12968+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12969+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12970+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12971+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12972+    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12973+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12974+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
12975+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12976+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12977+    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12978+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12979+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12980+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12981+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12982+    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12983+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12984+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12985+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12986+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12987+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12988+    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12989+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12990+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
12991+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12992+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12993+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12994+    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12995+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12996+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
12997+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12998+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
12999+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
13000+    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
13001+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_XSTANDARD_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
13002+    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_XDAYLIGHT_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
13003+    {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_NONE}
13004+};
13005+
13006+static const icalrestriction_property_record*
13007+icalrestriction_get_property_restriction(icalproperty_method method,
13008+                                        icalcomponent_kind component,
13009+                                        icalproperty_kind property)
13010+{
13011+    int i;
13012+
13013+    for(i = 0;
13014+       icalrestriction_property_records[i].restriction != ICAL_RESTRICTION_NONE;
13015+       i++){
13016+
13017+       if (method == icalrestriction_property_records[i].method &&
13018+           component == icalrestriction_property_records[i].component &&
13019+           property ==  icalrestriction_property_records[i].property ){
13020+           return  &icalrestriction_property_records[i];
13021+       }
13022+    }
13023+       
13024+    return &null_prop_record;
13025+}
13026+
13027+
13028+static const icalrestriction_component_record*
13029+icalrestriction_get_component_restriction(icalproperty_method method,
13030+                                         icalcomponent_kind component,
13031+                                         icalcomponent_kind subcomponent)
13032+{
13033+
13034+    int i;
13035+
13036+    for(i = 0;
13037+       icalrestriction_component_records[i].restriction != ICAL_RESTRICTION_NONE;
13038+       i++){
13039+
13040+       if (method == icalrestriction_component_records[i].method &&
13041+           component == icalrestriction_component_records[i].component &&
13042+           subcomponent ==  icalrestriction_component_records[i].subcomponent ){
13043+           return  &icalrestriction_component_records[i];
13044+       }
13045+    }
13046+       
13047+    return &null_comp_record;
13048+}
Note: See TracBrowser for help on using the repository browser.