aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@src.gnome.org>2000-08-15 07:59:13 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2000-08-15 07:59:13 +0800
commitbf9f26b7733b298c31415734d6f41d30e9213b54 (patch)
treeaa80ed4f38f7c9876287dd6568986816c138f3a5
parent1f10ac10737d23e1e2a1243b4baccb5839f02e5d (diff)
downloadgsoc2013-evolution-bf9f26b7733b298c31415734d6f41d30e9213b54.tar
gsoc2013-evolution-bf9f26b7733b298c31415734d6f41d30e9213b54.tar.gz
gsoc2013-evolution-bf9f26b7733b298c31415734d6f41d30e9213b54.tar.bz2
gsoc2013-evolution-bf9f26b7733b298c31415734d6f41d30e9213b54.tar.lz
gsoc2013-evolution-bf9f26b7733b298c31415734d6f41d30e9213b54.tar.xz
gsoc2013-evolution-bf9f26b7733b298c31415734d6f41d30e9213b54.tar.zst
gsoc2013-evolution-bf9f26b7733b298c31415734d6f41d30e9213b54.zip
Added the cal-util library to the documentation framework - Federico
svn path=/trunk/; revision=4839
-rw-r--r--ChangeLog5
-rw-r--r--calendar/cal-util/cal-component.c7
-rw-r--r--configure.in1
-rw-r--r--doc/devel/ChangeLog15
-rw-r--r--doc/devel/calendar/Makefile.am2
-rw-r--r--doc/devel/calendar/cal-client/evolution-cal-client-decl.txt13
-rw-r--r--doc/devel/calendar/cal-client/evolution-cal-client-sections.txt3
-rw-r--r--doc/devel/calendar/cal-client/tmpl/cal-client.sgml58
-rw-r--r--doc/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml10
-rw-r--r--doc/devel/calendar/cal-util/.cvsignore3
-rw-r--r--doc/devel/calendar/cal-util/Makefile.am75
-rw-r--r--doc/devel/calendar/cal-util/evolution-cal-util-decl.txt852
-rw-r--r--doc/devel/calendar/cal-util/evolution-cal-util-sections.txt166
-rw-r--r--doc/devel/calendar/cal-util/evolution-cal-util.args0
-rw-r--r--doc/devel/calendar/cal-util/evolution-cal-util.hierarchy2
-rw-r--r--doc/devel/calendar/cal-util/evolution-cal-util.signals0
-rw-r--r--doc/devel/calendar/cal-util/evolution-cal-util.types4
-rw-r--r--doc/devel/calendar/cal-util/tmpl/cal-component.sgml934
-rw-r--r--doc/devel/calendar/cal-util/tmpl/cal-recur.sgml88
-rw-r--r--doc/devel/calendar/cal-util/tmpl/cal-util.sgml62
-rw-r--r--doc/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml0
-rw-r--r--doc/devel/calendar/cal-util/tmpl/timeutil.sgml260
-rw-r--r--doc/devel/calendar/public-reference.sgml4
-rw-r--r--doc/devel/calendar/reference.sgml4
-rw-r--r--doc/devel/evolution-devel-guide.sgml5
-rw-r--r--help/devel/ChangeLog15
-rw-r--r--help/devel/calendar/Makefile.am2
-rw-r--r--help/devel/calendar/cal-client/evolution-cal-client-decl.txt13
-rw-r--r--help/devel/calendar/cal-client/evolution-cal-client-sections.txt3
-rw-r--r--help/devel/calendar/cal-client/tmpl/cal-client.sgml58
-rw-r--r--help/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml10
-rw-r--r--help/devel/calendar/cal-util/.cvsignore3
-rw-r--r--help/devel/calendar/cal-util/Makefile.am75
-rw-r--r--help/devel/calendar/cal-util/evolution-cal-util-decl.txt852
-rw-r--r--help/devel/calendar/cal-util/evolution-cal-util-sections.txt166
-rw-r--r--help/devel/calendar/cal-util/evolution-cal-util.args0
-rw-r--r--help/devel/calendar/cal-util/evolution-cal-util.hierarchy2
-rw-r--r--help/devel/calendar/cal-util/evolution-cal-util.signals0
-rw-r--r--help/devel/calendar/cal-util/evolution-cal-util.types4
-rw-r--r--help/devel/calendar/cal-util/tmpl/cal-component.sgml934
-rw-r--r--help/devel/calendar/cal-util/tmpl/cal-recur.sgml88
-rw-r--r--help/devel/calendar/cal-util/tmpl/cal-util.sgml62
-rw-r--r--help/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml0
-rw-r--r--help/devel/calendar/cal-util/tmpl/timeutil.sgml260
-rw-r--r--help/devel/calendar/public-reference.sgml4
-rw-r--r--help/devel/calendar/reference.sgml4
-rw-r--r--help/devel/evolution-devel-guide.sgml5
47 files changed, 5080 insertions, 53 deletions
diff --git a/ChangeLog b/ChangeLog
index 65b96f06f8..247e802323 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-08-14 Federico Mena Quintero <federico@helixcode.com>
+
+ * configure.in (AC_OUTPUT): Generate
+ doc/devel/calendar/cal-util/Makefile.
+
2000-08-14 Peter Williams <peterw@helixcode.com>
* configure.in: Check for db1/db.h too, which is what
diff --git a/calendar/cal-util/cal-component.c b/calendar/cal-util/cal-component.c
index 05a9dbb9e6..7db5e348e4 100644
--- a/calendar/cal-util/cal-component.c
+++ b/calendar/cal-util/cal-component.c
@@ -127,7 +127,6 @@ static GtkObjectClass *parent_class;
/**
* cal_component_get_type:
- * @void:
*
* Registers the #CalComponent class if necessary, and returns the type ID
* associated to it.
@@ -294,7 +293,6 @@ cal_component_destroy (GtkObject *object)
/**
* cal_component_gen_uid:
- * @void:
*
* Generates a unique identifier suitable for calendar components.
*
@@ -330,7 +328,6 @@ cal_component_gen_uid (void)
/**
* cal_component_new:
- * @void:
*
* Creates a new empty calendar component object. You should set it from an
* #icalcomponent structure by using cal_component_set_icalcomponent() or with a
@@ -2809,7 +2806,7 @@ cal_component_set_url (CalComponent *comp, const char *url)
* @comp: A calendar component object.
* @pilot_id: Return value for the pilot ID.
*
- * Returns the pilot id of a calendar component object, if any.
+ * Queries the pilot id of a calendar component object, if any.
**/
void
cal_component_get_pilot_id (CalComponent *comp, unsigned long *pilot_id)
@@ -2838,7 +2835,7 @@ cal_component_set_pilot_id (CalComponent *comp, unsigned long pilot_id)
* @comp: A calendar component object.
* @pilot_status: Return value for the pilot sync status.
*
- * Returns the pilot status of a calendar component object, if any.
+ * Queries the pilot status of a calendar component object, if any.
**/
void
cal_component_get_pilot_status (CalComponent *comp, unsigned long *pilot_status)
diff --git a/configure.in b/configure.in
index 89a3148581..fb1cf06f9f 100644
--- a/configure.in
+++ b/configure.in
@@ -597,4 +597,5 @@ doc/C/Makefile
doc/devel/Makefile
doc/devel/calendar/Makefile
doc/devel/calendar/cal-client/Makefile
+doc/devel/calendar/cal-util/Makefile
])
diff --git a/doc/devel/ChangeLog b/doc/devel/ChangeLog
index c432ddea1a..7e0c8147ba 100644
--- a/doc/devel/ChangeLog
+++ b/doc/devel/ChangeLog
@@ -1,3 +1,18 @@
+2000-08-14 Federico Mena Quintero <federico@helixcode.com>
+
+ * calendar/cal-util/*: Integrated the cal-util library into the
+ documentation framework.
+
+ * calendar/Makefile.am (SUBDIRS): Added the cal-util directory.
+
+ * evolution-devel-guide.sgml: Added entities for the cal-util stuff.
+ Added entity for libical.
+
+ * calendar/reference.sgml: Added the cal-util reference entries.
+
+ * calendar/cal-client/evolution-cal-client-sections.txt: Updated
+ for new API.
+
2000-08-09 Peter Williams <peterw@helixcode.com>
* Makefile.am (maintainer-clean-local): Don't depend
diff --git a/doc/devel/calendar/Makefile.am b/doc/devel/calendar/Makefile.am
index 7efde02896..2220e1d59b 100644
--- a/doc/devel/calendar/Makefile.am
+++ b/doc/devel/calendar/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = cal-client
+SUBDIRS = cal-client cal-util
EXTRA_DIST = \
architecture.sgml \
diff --git a/doc/devel/calendar/cal-client/evolution-cal-client-decl.txt b/doc/devel/calendar/cal-client/evolution-cal-client-decl.txt
index 9fffd4c201..0574d70678 100644
--- a/doc/devel/calendar/cal-client/evolution-cal-client-decl.txt
+++ b/doc/devel/calendar/cal-client/evolution-cal-client-decl.txt
@@ -83,7 +83,7 @@ CalClient *client, CalObjType type
<FUNCTION>
<NAME>cal_client_get_object</NAME>
<RETURNS>CalClientGetStatus </RETURNS>
-CalClient *client,const char *uid,iCalObject **ico
+CalClient *client,const char *uid,CalComponent **comp
</FUNCTION>
<FUNCTION>
<NAME>cal_client_get_uid_by_pilot_id</NAME>
@@ -101,9 +101,14 @@ CalClient *client, char *uid,unsigned long pilot_id,unsigned long pilot_status
CalClient *client, CalObjType type
</FUNCTION>
<FUNCTION>
-<NAME>cal_client_get_events_in_range</NAME>
+<NAME>cal_client_get_objects_in_range</NAME>
<RETURNS>GList *</RETURNS>
-CalClient *client, time_t start, time_t end
+CalClient *client, CalObjType type,time_t start, time_t end
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_client_generate_instances</NAME>
+<RETURNS>void </RETURNS>
+CalClient *client, CalObjType type,time_t start, time_t end,CalRecurInstanceFn cb, gpointer cb_data
</FUNCTION>
<FUNCTION>
<NAME>cal_client_get_alarms_in_range</NAME>
@@ -118,7 +123,7 @@ CalClient *client, const char *uid,time_t start, time_t end,GList **alarms
<FUNCTION>
<NAME>cal_client_update_object</NAME>
<RETURNS>gboolean </RETURNS>
-CalClient *client, iCalObject *ico
+CalClient *client, CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_client_remove_object</NAME>
diff --git a/doc/devel/calendar/cal-client/evolution-cal-client-sections.txt b/doc/devel/calendar/cal-client/evolution-cal-client-sections.txt
index 5496f2f0f2..c37b223247 100644
--- a/doc/devel/calendar/cal-client/evolution-cal-client-sections.txt
+++ b/doc/devel/calendar/cal-client/evolution-cal-client-sections.txt
@@ -12,10 +12,11 @@ cal_client_load_calendar
cal_client_create_calendar
cal_client_get_n_objects
cal_client_get_object
+cal_client_get_objects_in_range
+cal_client_generate_instances
cal_client_get_uid_by_pilot_id
cal_client_update_pilot_id
cal_client_get_uids
-cal_client_get_events_in_range
cal_client_get_alarms_in_range
cal_client_get_alarms_for_object
cal_client_update_object
diff --git a/doc/devel/calendar/cal-client/tmpl/cal-client.sgml b/doc/devel/calendar/cal-client/tmpl/cal-client.sgml
index d2205b5b22..a146709b8a 100644
--- a/doc/devel/calendar/cal-client/tmpl/cal-client.sgml
+++ b/doc/devel/calendar/cal-client/tmpl/cal-client.sgml
@@ -38,7 +38,6 @@ GTK+ object for communication with personal calendar server.
</para>
-
<!-- ##### MACRO CAL_CLIENT ##### -->
<para>
Casts a #GtkObject to a #CalClient.
@@ -61,14 +60,11 @@ GTK+ object for communication with personal calendar server.
@CAL_CLIENT_LOAD_SUCCESS: Indicates a successful load or create
operation; the corresponding calendar is ready for use.
-
@CAL_CLIENT_LOAD_ERROR: Indicates an error while loading or creating
the calendar.
-
@CAL_CLIENT_LOAD_IN_USE: Indicates that a create request failed
because the specified calendar was already being used by another
client.
-
@CAL_CLIENT_LOAD_METHOD_NOT_SUPPORTED: Indicates an error due to
trying to load a calendar for which a backend type is not present.
@@ -79,10 +75,8 @@ GTK+ object for communication with personal calendar server.
</para>
@CAL_CLIENT_GET_SUCCESS: Indicates a successful get operation.
-
@CAL_CLIENT_GET_NOT_FOUND: Indicates that the requested object was
not found.
-
@CAL_CLIENT_GET_SYNTAX_ERROR: Indicates a syntax error when parsing
the requested object. This could indicate a bug in the calendar
client libraries or in the Wombat server.
@@ -132,10 +126,37 @@ GTK+ object for communication with personal calendar server.
@client:
@uid:
+@comp:
+@Returns:
+<!-- # Unused Parameters # -->
@ico:
+
+
+<!-- ##### FUNCTION cal_client_get_objects_in_range ##### -->
+<para>
+
+</para>
+
+@client:
+@type:
+@start:
+@end:
@Returns:
+<!-- ##### FUNCTION cal_client_generate_instances ##### -->
+<para>
+
+</para>
+
+@client:
+@type:
+@start:
+@end:
+@cb:
+@cb_data:
+
+
<!-- ##### FUNCTION cal_client_get_uid_by_pilot_id ##### -->
<para>
@@ -168,17 +189,6 @@ GTK+ object for communication with personal calendar server.
@Returns:
-<!-- ##### FUNCTION cal_client_get_events_in_range ##### -->
-<para>
-
-</para>
-
-@client:
-@start:
-@end:
-@Returns:
-
-
<!-- ##### FUNCTION cal_client_get_alarms_in_range ##### -->
<para>
@@ -209,8 +219,10 @@ GTK+ object for communication with personal calendar server.
</para>
@client:
-@ico:
+@comp:
@Returns:
+<!-- # Unused Parameters # -->
+@ico:
<!-- ##### FUNCTION cal_client_remove_object ##### -->
@@ -232,6 +244,9 @@ GTK+ object for communication with personal calendar server.
request.
</para>
+@calclient: the object which received the signal.
+@arg1:
+<!-- # Unused Parameters # -->
@client: Calendar client which received the notification.
@status: Status of the request. See the description of
#CalClientLoadStatus for more details.
@@ -244,6 +259,9 @@ GTK+ object for communication with personal calendar server.
new version of the object and update their display, for example.
</para>
+@calclient: the object which received the signal.
+@arg1:
+<!-- # Unused Parameters # -->
@client: Calendar client which received the notification.
@uid: Unique identifier of the calendar component that changed in the
personal calendar server's storage.
@@ -257,6 +275,9 @@ GTK+ object for communication with personal calendar server.
example.
</para>
+@calclient: the object which received the signal.
+@arg1:
+<!-- # Unused Parameters # -->
@client: Calendar client which received the notification.
@uid: Unique identifier of the calendar component that was removed
from the personal calendar server's storage.
@@ -267,3 +288,4 @@ mode: sgml
sgml-parent-document: ("../../../evolution-devel-guide.sgml" "book" "refsect2" "")
End:
-->
+
diff --git a/doc/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml b/doc/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml
index e69de29bb2..5576dbd57f 100644
--- a/doc/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml
+++ b/doc/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml
@@ -0,0 +1,10 @@
+<!-- ##### FUNCTION cal_client_get_events_in_range ##### -->
+<para>
+
+</para>
+
+@client:
+@start:
+@end:
+@Returns:
+
diff --git a/doc/devel/calendar/cal-util/.cvsignore b/doc/devel/calendar/cal-util/.cvsignore
new file mode 100644
index 0000000000..0842a93f7a
--- /dev/null
+++ b/doc/devel/calendar/cal-util/.cvsignore
@@ -0,0 +1,3 @@
+sgml
+Makefile
+Makefile.in
diff --git a/doc/devel/calendar/cal-util/Makefile.am b/doc/devel/calendar/cal-util/Makefile.am
new file mode 100644
index 0000000000..8861aa03cb
--- /dev/null
+++ b/doc/devel/calendar/cal-util/Makefile.am
@@ -0,0 +1,75 @@
+## Process this file with automake to produce Makefile.in
+
+# The name of the module.
+DOC_MODULE=evolution-cal-util
+
+# The top-level SGML file.
+DOC_MAIN_SGML_FILE=evolution-cal-util.sgml
+
+# The directory containing the source code (if it contains documentation).
+DOC_SOURCE_DIR=$(EVOLUTION_DIR)/calendar/cal-util
+
+CFLAGS =" \
+ -I$(top_srcdir)/calendar \
+ -I$(top_srcdir) \
+ -I$(top_builddir) \
+ -I$(top_builddir)/libical/src/libical \
+ -I$(top_srcdir)/libical/src/libical \
+ $(BONOBO_VFS_GNOME_CFLAGS) \
+ "
+
+LDFLAGS=" \
+ $(BONOBO_VFS_GNOME_LIBS) \
+ $(top_builddir)/calendar/cal-util/.libs/libcal-util.a \
+ $(top_builddir)/libical/src/libical/libical.a \
+ $(top_builddir)/libversit/.libs/libversit.al \
+ "
+
+HTML_DIR=$(datadir)/gnome/html
+
+TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
+
+tmpl_sources = \
+ tmpl/cal-util.sgml \
+ tmpl/evolution-cal-util-unused.sgml
+
+evolution_cal_util_docdir = $(HTML_DIR)
+evolution_cal_util_doc_DATA = \
+ evolution-cal-util.hierarchy \
+ evolution-cal-util.types \
+ evolution-cal-util-decl.txt \
+ evolution-cal-util-sections.txt
+
+EXTRA_DIST = \
+ $(evolution_cal_util_doc_DATA)
+
+sgml/evolution-cal-util-doc.bottom: $(tmpl_sources)
+ $(MAKE) sgml
+
+scan:
+ -(cd $(srcdir) \
+ && env CFLAGS=$(CFLAGS) LDFLAGS=$(LDFLAGS) \
+ gtkdoc-scanobj --module=$(DOC_MODULE) \
+ && gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="calobj.h icalendar-save.h icalendar.h" )
+
+templates: scan
+ cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+
+sgml:
+ cd $(srcdir) \
+ && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
+
+clean-local:
+ rm -f *~ *.bak *.signals *-unused.txt
+
+maintainer-clean-local: clean
+ cd $(srcdir) && rm -rf sgml $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+
+dist-hook:
+ mkdir $(distdir)/sgml
+ mkdir $(distdir)/tmpl
+ -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
+ -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
+ -cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
+
+.PHONY : sgml templates scan
diff --git a/doc/devel/calendar/cal-util/evolution-cal-util-decl.txt b/doc/devel/calendar/cal-util/evolution-cal-util-decl.txt
new file mode 100644
index 0000000000..eb108b868f
--- /dev/null
+++ b/doc/devel/calendar/cal-util/evolution-cal-util-decl.txt
@@ -0,0 +1,852 @@
+<MACRO>
+<NAME>CAL_COMPONENT_TYPE</NAME>
+#define CAL_COMPONENT_TYPE (cal_component_get_type ())
+</MACRO>
+<MACRO>
+<NAME>CAL_COMPONENT</NAME>
+#define CAL_COMPONENT(obj) (GTK_CHECK_CAST ((obj), CAL_COMPONENT_TYPE, CalComponent))
+</MACRO>
+<MACRO>
+<NAME>CAL_COMPONENT_CLASS</NAME>
+#define CAL_COMPONENT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), CAL_COMPONENT_TYPE, \
+ CalComponentClass))
+</MACRO>
+<MACRO>
+<NAME>IS_CAL_COMPONENT</NAME>
+#define IS_CAL_COMPONENT(obj) (GTK_CHECK_TYPE ((obj), CAL_COMPONENT_TYPE))
+</MACRO>
+<MACRO>
+<NAME>IS_CAL_COMPONENT_CLASS</NAME>
+#define IS_CAL_COMPONENT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), CAL_COMPONENT_TYPE))
+</MACRO>
+<ENUM>
+<NAME>CalComponentVType</NAME>
+typedef enum {
+ CAL_COMPONENT_NO_TYPE,
+ CAL_COMPONENT_EVENT,
+ CAL_COMPONENT_TODO,
+ CAL_COMPONENT_JOURNAL,
+ CAL_COMPONENT_FREEBUSY,
+ CAL_COMPONENT_TIMEZONE
+} CalComponentVType;
+</ENUM>
+<ENUM>
+<NAME>CalComponentField</NAME>
+typedef enum {
+ CAL_COMPONENT_FIELD_CATEGORIES, /* concatenation of the categories list */
+ CAL_COMPONENT_FIELD_CLASSIFICATION,
+ CAL_COMPONENT_FIELD_COMPLETED,
+ CAL_COMPONENT_FIELD_DTEND,
+ CAL_COMPONENT_FIELD_DTSTART,
+ CAL_COMPONENT_FIELD_DUE,
+ CAL_COMPONENT_FIELD_GEO,
+ CAL_COMPONENT_FIELD_PERCENT,
+ CAL_COMPONENT_FIELD_PRIORITY,
+ CAL_COMPONENT_FIELD_SUMMARY,
+ CAL_COMPONENT_FIELD_TRANSPARENCY,
+ CAL_COMPONENT_FIELD_URL,
+ CAL_COMPONENT_FIELD_HAS_ALARMS, /* not a real field */
+ CAL_COMPONENT_FIELD_ICON, /* not a real field */
+ CAL_COMPONENT_FIELD_COMPLETE, /* not a real field */
+ CAL_COMPONENT_FIELD_RECURRING, /* not a real field */
+ CAL_COMPONENT_FIELD_OVERDUE, /* not a real field */
+ CAL_COMPONENT_FIELD_COLOR, /* not a real field */
+ CAL_COMPONENT_FIELD_NUM_FIELDS
+} CalComponentField;
+</ENUM>
+<ENUM>
+<NAME>CalComponentClassification</NAME>
+typedef enum {
+ CAL_COMPONENT_CLASS_NONE,
+ CAL_COMPONENT_CLASS_PUBLIC,
+ CAL_COMPONENT_CLASS_PRIVATE,
+ CAL_COMPONENT_CLASS_CONFIDENTIAL,
+ CAL_COMPONENT_CLASS_UNKNOWN
+} CalComponentClassification;
+</ENUM>
+<TYPEDEF>
+<NAME>CalComponentDateTime</NAME>
+typedef struct {
+ /* Actual date/time value */
+ struct icaltimetype *value;
+
+ /* Timezone ID */
+ const char *tzid;
+} CalComponentDateTime;
+</TYPEDEF>
+<ENUM>
+<NAME>CalComponentPeriodType</NAME>
+typedef enum {
+ CAL_COMPONENT_PERIOD_DATETIME,
+ CAL_COMPONENT_PERIOD_DURATION
+} CalComponentPeriodType;
+</ENUM>
+<TYPEDEF>
+<NAME>CalComponentPeriod</NAME>
+typedef struct {
+ CalComponentPeriodType type;
+
+ struct icaltimetype start;
+
+ union {
+ struct icaltimetype end;
+ struct icaldurationtype duration;
+ } u;
+} CalComponentPeriod;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>CalComponentText</NAME>
+typedef struct {
+ /* Description string */
+ const char *value;
+
+ /* Alternate representation URI */
+ const char *altrep;
+} CalComponentText;
+</TYPEDEF>
+<ENUM>
+<NAME>CalComponentTransparency</NAME>
+typedef enum {
+ CAL_COMPONENT_TRANSP_NONE,
+ CAL_COMPONENT_TRANSP_TRANSPARENT,
+ CAL_COMPONENT_TRANSP_OPAQUE,
+ CAL_COMPONENT_TRANSP_UNKNOWN
+} CalComponentTransparency;
+</ENUM>
+<STRUCT>
+<NAME>CalComponentAlarm</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalComponent</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalComponentClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalComponentPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalComponent</NAME>
+struct CalComponent {
+ GtkObject object;
+
+ /* Private data */
+ CalComponentPrivate *priv;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>cal_component_get_type</NAME>
+<RETURNS>GtkType </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_gen_uid</NAME>
+<RETURNS>char *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_new</NAME>
+<RETURNS>CalComponent *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_clone</NAME>
+<RETURNS>CalComponent *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_new_vtype</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentVType type
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_icalcomponent</NAME>
+<RETURNS>gboolean </RETURNS>
+CalComponent *comp, icalcomponent *icalcomp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_icalcomponent</NAME>
+<RETURNS>icalcomponent *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_vtype</NAME>
+<RETURNS>CalComponentVType </RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_as_string</NAME>
+<RETURNS>char *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_commit_sequence</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_uid</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, const char **uid
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_uid</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, const char *uid
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_categories_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **categ_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_categories_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *categ_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_classification</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentClassification *classif
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_classification</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentClassification classif
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_comment_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **text_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_comment_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *text_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_completed</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype **t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_completed</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_created</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype **t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_created</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_description_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **text_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_description_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *text_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_dtend</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_dtend</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_dtstamp</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_dtstamp</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_dtstart</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_dtstart</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_due</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_due</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_exdate_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **exdate_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_exdate_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *exdate_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_exrule_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_exrule_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_geo</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icalgeotype **geo
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_geo</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icalgeotype *geo
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_last_modified</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype **t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_last_modified</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_percent</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int **percent
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_percent</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int *percent
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_priority</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int **priority
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_priority</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int *priority
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_rdate_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **period_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_rdate_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *period_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_has_rdates</NAME>
+<RETURNS>gboolean </RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_rrule_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_rrule_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_has_rrules</NAME>
+<RETURNS>gboolean </RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_sequence</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int **sequence
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_sequence</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int *sequence
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_summary</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentText *summary
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_summary</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentText *summary
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_transparency</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentTransparency *transp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_transparency</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentTransparency transp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_url</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, const char **url
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_url</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, const char *url
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_pilot_id</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, unsigned long *pilot_id
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_pilot_id</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, unsigned long pilot_id
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_pilot_status</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, unsigned long *pilot_status
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_pilot_status</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, unsigned long pilot_status
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_categories_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *categ_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_datetime</NAME>
+<RETURNS>void </RETURNS>
+CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_exdate_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *exdate_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_geo</NAME>
+<RETURNS>void </RETURNS>
+struct icalgeotype *geo
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_icaltimetype</NAME>
+<RETURNS>void </RETURNS>
+struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_percent</NAME>
+<RETURNS>void </RETURNS>
+int *percent
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_priority</NAME>
+<RETURNS>void </RETURNS>
+int *priority
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_period_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *period_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_recur_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_sequence</NAME>
+<RETURNS>void </RETURNS>
+int *sequence
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_text_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *text_list
+</FUNCTION>
+<ENUM>
+<NAME>CalComponentAlarmAction</NAME>
+typedef enum {
+ CAL_COMPONENT_ALARM_NONE,
+ CAL_COMPONENT_ALARM_AUDIO,
+ CAL_COMPONENT_ALARM_DISPLAY,
+ CAL_COMPONENT_ALARM_EMAIL,
+ CAL_COMPONENT_ALARM_PROCEDURE,
+ CAL_COMPONENT_ALARM_UNKNOWN
+} CalComponentAlarmAction;
+</ENUM>
+<ENUM>
+<NAME>CalComponentAlarmTriggerType</NAME>
+typedef enum {
+ CAL_COMPONENT_ALARM_TRIGGER_RELATIVE,
+ CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE
+} CalComponentAlarmTriggerType;
+</ENUM>
+<ENUM>
+<NAME>CalComponentAlarmTriggerRelated</NAME>
+typedef enum {
+ CAL_COMPONENT_ALARM_TRIGGER_RELATED_START,
+ CAL_COMPONENT_ALARM_TRIGGER_RELATED_END
+} CalComponentAlarmTriggerRelated;
+</ENUM>
+<TYPEDEF>
+<NAME>CalComponentAlarmTrigger</NAME>
+typedef struct {
+ CalComponentAlarmTriggerType type;
+
+ union {
+ struct {
+ struct icaldurationtype duration;
+ CalComponentAlarmTriggerRelated related;
+ } relative;
+
+ struct icaltimetype absolute;
+ } u;
+} CalComponentAlarmTrigger;
+</TYPEDEF>
+<FUNCTION>
+<NAME>cal_component_get_first_alarm</NAME>
+<RETURNS>CalComponentAlarm *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_next_alarm</NAME>
+<RETURNS>CalComponentAlarm *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_free</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_get_action</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm, CalComponentAlarmAction *action
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_set_action</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm, CalComponentAlarmAction action
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_get_trigger</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm, CalComponentAlarmTrigger **trigger
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_set_trigger</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm, CalComponentAlarmTrigger *trigger
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_free_trigger</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarmTrigger *trigger
+</FUNCTION>
+<ENUM>
+<NAME>CalRecurType</NAME>
+typedef enum {
+ CAL_RECUR_YEARLY,
+ CAL_RECUR_MONTHLY,
+ CAL_RECUR_WEEKLY,
+ CAL_RECUR_DAILY,
+ CAL_RECUR_HOURLY,
+ CAL_RECUR_MINUTELY,
+ CAL_RECUR_SECONDLY
+} CalRecurType;
+</ENUM>
+<TYPEDEF>
+<NAME>CalRecurrence</NAME>
+typedef struct {
+ CalRecurType type;
+
+ int interval;
+
+ /* Specifies the end of the recurrence. No occurrences are generated
+ after this date. If it is 0, the event recurs forever. */
+ time_t enddate;
+
+ /* WKST property - the week start day: 0 = Monday to 6 = Sunday. */
+ gint week_start_day;
+
+
+ /* NOTE: I've used GList's here, but it doesn't matter if we use
+ other data structures like arrays. The code should be easy to
+ change. So long as it is easy to see if the modifier is set. */
+
+ /* For BYMONTH modifier. A list of GINT_TO_POINTERs, 0-11. */
+ GList *bymonth;
+
+ /* For BYWEEKNO modifier. A list of GINT_TO_POINTERs, [+-]1-53. */
+ GList *byweekno;
+
+ /* For BYYEARDAY modifier. A list of GINT_TO_POINTERs, [+-]1-366. */
+ GList *byyearday;
+
+ /* For BYMONTHDAY modifier. A list of GINT_TO_POINTERs, [+-]1-31. */
+ GList *bymonthday;
+
+ /* For BYDAY modifier. A list of GINT_TO_POINTERs, in pairs.
+ The first of each pair is the weekday, 0 = Monday to 6 = Sunday.
+ The second of each pair is the week number [+-]0-53. */
+ GList *byday;
+
+ /* For BYHOUR modifier. A list of GINT_TO_POINTERs, 0-23. */
+ GList *byhour;
+
+ /* For BYMINUTE modifier. A list of GINT_TO_POINTERs, 0-59. */
+ GList *byminute;
+
+ /* For BYSECOND modifier. A list of GINT_TO_POINTERs, 0-60. */
+ GList *bysecond;
+
+ /* For BYSETPOS modifier. A list of GINT_TO_POINTERs, +ve or -ve. */
+ GList *bysetpos;
+} CalRecurrence;
+</TYPEDEF>
+<STRUCT>
+<NAME>CalObjTime</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalObjTime</NAME>
+struct CalObjTime {
+ guint16 year;
+ guint8 month; /* 0 - 11 */
+ guint8 day; /* 1 - 31 */
+ guint8 hour; /* 0 - 23 */
+ guint8 minute; /* 0 - 59 */
+ guint8 second; /* 0 - 59 (maybe 60 for leap second) */
+};
+</STRUCT>
+<USER_FUNCTION>
+<NAME>CalRecurInstanceFn</NAME>
+<RETURNS>gboolean </RETURNS>
+CalComponent *comp,
+ time_t instance_start,
+ time_t instace_end,
+ gpointer data
+</USER_FUNCTION>
+<FUNCTION>
+<NAME>cal_recur_generate_instances</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp,time_t start,time_t end,CalRecurInstanceFn cb,gpointer cb_data
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_recur_from_icalrecurrencetype</NAME>
+<RETURNS>CalRecurrence *</RETURNS>
+struct icalrecurrencetype *ir
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_recur_free</NAME>
+<RETURNS>void </RETURNS>
+CalRecurrence *r
+</FUNCTION>
+<TYPEDEF>
+<NAME>CalObjInstance</NAME>
+typedef struct {
+ char *uid; /* UID of the object */
+ time_t start; /* Start time of instance */
+ time_t end; /* End time of instance */
+} CalObjInstance;
+</TYPEDEF>
+<FUNCTION>
+<NAME>cal_obj_instance_list_free</NAME>
+<RETURNS>void </RETURNS>
+GList *list
+</FUNCTION>
+<TYPEDEF>
+<NAME>CalAlarmInstance</NAME>
+typedef struct {
+ char *uid; /* UID of object */
+#if 0
+ enum AlarmType type; /* Type of alarm */
+#endif
+ time_t trigger; /* Alarm trigger time */
+ time_t occur; /* Occurrence time */
+} CalAlarmInstance;
+</TYPEDEF>
+<FUNCTION>
+<NAME>cal_alarm_instance_list_free</NAME>
+<RETURNS>void </RETURNS>
+GList *list
+</FUNCTION>
+<ENUM>
+<NAME>CalObjType</NAME>
+typedef enum {
+ CALOBJ_TYPE_EVENT = 1 << 0,
+ CALOBJ_TYPE_TODO = 1 << 1,
+ CALOBJ_TYPE_JOURNAL = 1 << 2,
+ CALOBJ_TYPE_ANY = 0x07
+} CalObjType;
+</ENUM>
+<FUNCTION>
+<NAME>cal_obj_uid_list_free</NAME>
+<RETURNS>void </RETURNS>
+GList *list
+</FUNCTION>
+<FUNCTION>
+<NAME>time_from_icaltimetype</NAME>
+<RETURNS>time_t </RETURNS>
+struct icaltimetype itt
+</FUNCTION>
+<FUNCTION>
+<NAME>time_from_isodate</NAME>
+<RETURNS>time_t </RETURNS>
+char *str
+</FUNCTION>
+<FUNCTION>
+<NAME>time_from_start_duration</NAME>
+<RETURNS>time_t </RETURNS>
+time_t start, char *duration
+</FUNCTION>
+<FUNCTION>
+<NAME>isodate_from_time_t</NAME>
+<RETURNS>char *</RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>get_time_t_hour</NAME>
+<RETURNS>int </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>isodiff_to_secs</NAME>
+<RETURNS>int </RETURNS>
+char *str
+</FUNCTION>
+<FUNCTION>
+<NAME>isodiff_from_secs</NAME>
+<RETURNS>char *</RETURNS>
+int secs
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_minutes</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int minutes
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_day</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int days
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_week</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int weeks
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_month</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int months
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_year</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int years
+</FUNCTION>
+<FUNCTION>
+<NAME>format_simple_hour</NAME>
+<RETURNS>char *</RETURNS>
+int hour, int use_am_pm
+</FUNCTION>
+<FUNCTION>
+<NAME>time_days_in_month</NAME>
+<RETURNS>int </RETURNS>
+int year, int month
+</FUNCTION>
+<FUNCTION>
+<NAME>time_from_day</NAME>
+<RETURNS>time_t </RETURNS>
+int year, int month, int day
+</FUNCTION>
+<FUNCTION>
+<NAME>time_day_hour</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t, int hour
+</FUNCTION>
+<FUNCTION>
+<NAME>time_year_begin</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_year_end</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_month_begin</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_month_end</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_week_begin</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_week_end</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_day_begin</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_day_end</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>parse_date</NAME>
+<RETURNS>time_t </RETURNS>
+char *str
+</FUNCTION>
+<FUNCTION>
+<NAME>print_time_t</NAME>
+<RETURNS>void </RETURNS>
+time_t t
+</FUNCTION>
diff --git a/doc/devel/calendar/cal-util/evolution-cal-util-sections.txt b/doc/devel/calendar/cal-util/evolution-cal-util-sections.txt
new file mode 100644
index 0000000000..cd928fc7e3
--- /dev/null
+++ b/doc/devel/calendar/cal-util/evolution-cal-util-sections.txt
@@ -0,0 +1,166 @@
+<SECTION>
+<FILE>cal-component</FILE>
+CAL_COMPONENT
+<TITLE>CalComponent</TITLE>
+
+CalComponentVType
+CalComponentField
+CalComponentClassification
+CalComponentDateTime
+CalComponentPeriodType
+CalComponentPeriod
+CalComponentText
+CalComponentTransparency
+CalComponentAlarm
+CalComponentPrivate
+
+cal_component_gen_uid
+cal_component_new
+cal_component_clone
+cal_component_set_new_vtype
+cal_component_set_icalcomponent
+cal_component_get_icalcomponent
+cal_component_get_vtype
+cal_component_get_as_string
+cal_component_commit_sequence
+cal_component_get_uid
+cal_component_set_uid
+cal_component_get_categories_list
+cal_component_set_categories_list
+cal_component_get_classification
+cal_component_set_classification
+cal_component_get_comment_list
+cal_component_set_comment_list
+cal_component_get_completed
+cal_component_set_completed
+cal_component_get_created
+cal_component_set_created
+cal_component_get_description_list
+cal_component_set_description_list
+cal_component_get_dtend
+cal_component_set_dtend
+cal_component_get_dtstamp
+cal_component_set_dtstamp
+cal_component_get_dtstart
+cal_component_set_dtstart
+cal_component_get_due
+cal_component_set_due
+cal_component_get_exdate_list
+cal_component_set_exdate_list
+cal_component_get_exrule_list
+cal_component_set_exrule_list
+cal_component_get_geo
+cal_component_set_geo
+cal_component_get_last_modified
+cal_component_set_last_modified
+cal_component_get_percent
+cal_component_set_percent
+cal_component_get_priority
+cal_component_set_priority
+cal_component_get_rdate_list
+cal_component_set_rdate_list
+cal_component_has_rdates
+cal_component_get_rrule_list
+cal_component_set_rrule_list
+cal_component_has_rrules
+cal_component_get_sequence
+cal_component_set_sequence
+cal_component_get_summary
+cal_component_set_summary
+cal_component_get_transparency
+cal_component_set_transparency
+cal_component_get_url
+cal_component_set_url
+cal_component_get_pilot_id
+cal_component_set_pilot_id
+cal_component_get_pilot_status
+cal_component_set_pilot_status
+
+cal_component_free_categories_list
+cal_component_free_datetime
+cal_component_free_exdate_list
+cal_component_free_geo
+cal_component_free_icaltimetype
+cal_component_free_percent
+cal_component_free_priority
+cal_component_free_period_list
+cal_component_free_recur_list
+cal_component_free_sequence
+cal_component_free_text_list
+
+CalComponentAlarmAction
+CalComponentAlarmTriggerType
+CalComponentAlarmTriggerRelated
+CalComponentAlarmTrigger
+
+cal_component_get_first_alarm
+cal_component_get_next_alarm
+cal_component_alarm_free
+cal_component_alarm_get_action
+cal_component_alarm_set_action
+cal_component_alarm_get_trigger
+cal_component_alarm_set_trigger
+cal_component_alarm_free_trigger
+
+<SUBSECTION Standard>
+CAL_COMPONENT_TYPE
+CAL_COMPONENT_CLASS
+IS_CAL_COMPONENT
+IS_CAL_COMPONENT_CLASS
+cal_component_get_type
+
+<SUBSECTION Private>
+CalComponent
+
+</SECTION>
+
+<SECTION>
+<FILE>cal-recur</FILE>
+CalRecurType
+CalRecurrence
+CalObjTime
+CalRecurInstanceFn
+cal_recur_generate_instances
+cal_recur_from_icalrecurrencetype
+cal_recur_free
+</SECTION>
+
+<SECTION>
+<FILE>cal-util</FILE>
+CalObjInstance
+cal_obj_instance_list_free
+CalAlarmInstance
+cal_alarm_instance_list_free
+CalObjType
+cal_obj_uid_list_free
+</SECTION>
+
+<SECTION>
+<FILE>timeutil</FILE>
+time_from_icaltimetype
+time_from_isodate
+time_from_start_duration
+isodate_from_time_t
+get_time_t_hour
+isodiff_to_secs
+isodiff_from_secs
+time_add_minutes
+time_add_day
+time_add_week
+time_add_month
+time_add_year
+format_simple_hour
+time_days_in_month
+time_from_day
+time_day_hour
+time_year_begin
+time_year_end
+time_month_begin
+time_month_end
+time_week_begin
+time_week_end
+time_day_begin
+time_day_end
+parse_date
+print_time_t
+</SECTION>
diff --git a/doc/devel/calendar/cal-util/evolution-cal-util.args b/doc/devel/calendar/cal-util/evolution-cal-util.args
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/doc/devel/calendar/cal-util/evolution-cal-util.args
diff --git a/doc/devel/calendar/cal-util/evolution-cal-util.hierarchy b/doc/devel/calendar/cal-util/evolution-cal-util.hierarchy
new file mode 100644
index 0000000000..cc235653f2
--- /dev/null
+++ b/doc/devel/calendar/cal-util/evolution-cal-util.hierarchy
@@ -0,0 +1,2 @@
+GtkObject
+ CalComponent
diff --git a/doc/devel/calendar/cal-util/evolution-cal-util.signals b/doc/devel/calendar/cal-util/evolution-cal-util.signals
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/doc/devel/calendar/cal-util/evolution-cal-util.signals
diff --git a/doc/devel/calendar/cal-util/evolution-cal-util.types b/doc/devel/calendar/cal-util/evolution-cal-util.types
new file mode 100644
index 0000000000..52b2d9bf90
--- /dev/null
+++ b/doc/devel/calendar/cal-util/evolution-cal-util.types
@@ -0,0 +1,4 @@
+#include <gnome.h>
+#include <cal-util/cal-component.h>
+
+cal_component_get_type
diff --git a/doc/devel/calendar/cal-util/tmpl/cal-component.sgml b/doc/devel/calendar/cal-util/tmpl/cal-component.sgml
new file mode 100644
index 0000000000..2f800e583f
--- /dev/null
+++ b/doc/devel/calendar/cal-util/tmpl/cal-component.sgml
@@ -0,0 +1,934 @@
+<!-- ##### SECTION Title ##### -->
+CalComponent
+
+<!-- ##### SECTION Short_Description ##### -->
+RFC 2445 iCalendar component object.
+
+<!-- ##### SECTION Long_Description ##### -->
+ <para>
+ The #CalComponent object provides a wrapper over the &libical;
+ functions for manipulating calendar components. #CalComponent
+ presents a GTK+-like interface to calendar components according to
+ RFC 2445.
+ </para>
+
+ <para>
+ While &libical; supports almost all of the features of the
+ iCalendar RFCs, applications are normally not interested in all
+ the mindless gunk that is there. Still, applications should do
+ their best not to drop extension fields from calendar components
+ or any other extra information they do not support (including
+ standard fields they are not interested in). The #CalComponent
+ object provides a wrapper over
+ <structname>icalcomponent</structname> structures from &libical;
+ so that no information in them will be lost even if the
+ application is not designed to handle it. Also, #CalComponent
+ provides a higher-level API to many of the &libical; operations so
+ as to make it less painful to deal with iCalendar components.
+ </para>
+
+ <para>
+ A #CalComponent object starts out empty. It must be initialized
+ from an existing <structname>icalcomponent</structname> structure
+ by using the cal_component_set_icalcomponent() function, or from a
+ completely new data by specifying the desired component type to
+ the cal_component_set_new_vtype() function.
+ </para>
+
+ <para>
+ #CalComponent will create an internal map of the properties in the
+ <structname>icalcomponent</structname> structure and then allow
+ random access to them via the #CalComponent API functions;
+ normally the &libical; API would have to be used by creating many
+ iterators and other unpleasant constructs. #CalComponent keeps
+ handles to the properties it scanned from the
+ <structname>icalcomponent</structname> and will let the parent
+ application modify them at any time without having to do any
+ iteration.
+ </para>
+
+ <para>
+ Eventually a #CalComponent may be turned into the RFC 2445 string
+ representation of an iCalendar component by using the
+ cal_component_get_as_string() function. Applications can then
+ transfer this interoperable
+ <footnote>
+ <para>
+ &ldquo;Interoperable.&rdquo; Heavens, I love that word.
+ </para>
+ </footnote>
+ string to other programs that deal with iCalendar.
+ </para>
+
+<!-- ##### SECTION See_Also ##### -->
+ <para>
+
+ </para>
+
+<!-- ##### MACRO CAL_COMPONENT ##### -->
+ <para>
+ Casts a #GtkObject to a #CalComponent.
+ </para>
+
+@obj: A GTK+ object.
+
+
+<!-- ##### ENUM CalComponentVType ##### -->
+ <para>
+ Calendar component types as defined by RFC 2445. These values can
+ be used to create a new calendar component by passing them to the
+ cal_component_set_new_vtype() function. They are also the return
+ value of the cal_component_get_vtype() function. The only time
+ the @CAL_COMPONENT_NO_TYPE value is used is when querying the
+ vtype of an uninitialized #CalComponent.
+ </para>
+
+@CAL_COMPONENT_NO_TYPE: Returned from cal_component_get_vtype() to
+ indicate an uninitialized #CalComponent object.
+
+@CAL_COMPONENT_EVENT: Indicates a VEVENT component.
+@CAL_COMPONENT_TODO: Indicates a VTODO component.
+@CAL_COMPONENT_JOURNAL: Indicates a VJOURNAL component.
+@CAL_COMPONENT_FREEBUSY: Indicates a VFREEBUSY component.
+@CAL_COMPONENT_TIMEZONE: Indicates a VTIMEZOME component.
+
+<!-- ##### ENUM CalComponentField ##### -->
+ <para>
+ These values are used as identifiers for #ETable columns. These
+ are used by the calendar GUI code in Evolution.
+ </para>
+
+@CAL_COMPONENT_FIELD_CATEGORIES: Component's list of categories.
+@CAL_COMPONENT_FIELD_CLASSIFICATION: Component's classification.
+@CAL_COMPONENT_FIELD_COMPLETED: Component's completion date.
+@CAL_COMPONENT_FIELD_DTEND: Component's ending date.
+@CAL_COMPONENT_FIELD_DTSTART: Component's starting date.
+@CAL_COMPONENT_FIELD_DUE: Component's due date.
+@CAL_COMPONENT_FIELD_GEO: Component's geographical position.
+@CAL_COMPONENT_FIELD_PERCENT: Component's percent completed value.
+@CAL_COMPONENT_FIELD_PRIORITY: Component's priority.
+@CAL_COMPONENT_FIELD_SUMMARY: Component's summary.
+@CAL_COMPONENT_FIELD_TRANSPARENCY: Component's transparency value.
+@CAL_COMPONENT_FIELD_URL: Component's URL.
+@CAL_COMPONENT_FIELD_HAS_ALARMS: Whether the component has any alarms.
+@CAL_COMPONENT_FIELD_ICON: Which icon to use for the component.
+@CAL_COMPONENT_FIELD_COMPLETE: Whether the component has been completed.
+@CAL_COMPONENT_FIELD_RECURRING: Whether the component has any recurrences.
+@CAL_COMPONENT_FIELD_OVERDUE: Whether the component is overdue.
+@CAL_COMPONENT_FIELD_COLOR: Which color to use for the component.
+@CAL_COMPONENT_FIELD_NUM_FIELDS: Total number of enumerated fields.
+
+<!-- ##### ENUM CalComponentClassification ##### -->
+ <para>
+ Values for the access classification property of a calendar
+ component.
+ </para>
+
+@CAL_COMPONENT_CLASS_NONE: Indicates that no access classification has
+ been set for the corresponding component.
+
+@CAL_COMPONENT_CLASS_PUBLIC: Public access.
+@CAL_COMPONENT_CLASS_PRIVATE: Private access.
+@CAL_COMPONENT_CLASS_CONFIDENTIAL: Confidential access.
+
+@CAL_COMPONENT_CLASS_UNKNOWN: Unknown access classification value,
+ used when &libical; returns something #CalComponent does not know
+ about.
+
+<!-- ##### TYPEDEF CalComponentDateTime ##### -->
+ <para>
+ This structure defines a date and time value.
+ </para>
+
+
+<!-- ##### ENUM CalComponentPeriodType ##### -->
+ <para>
+ Defines how a period of time is specified.
+ </para>
+
+@CAL_COMPONENT_PERIOD_DATETIME: Indicates that the period is specified
+ by starting and ending date/time values.
+
+@CAL_COMPONENT_PERIOD_DURATION: Indicates that the period is specified
+ as a starding date/time and a duration value.
+
+<!-- ##### TYPEDEF CalComponentPeriod ##### -->
+ <para>
+ This structure defines a period of time.
+ </para>
+
+
+<!-- ##### TYPEDEF CalComponentText ##### -->
+ <para>
+ This structure defines the value of a text property that may have
+ an alternate representation parameter.
+ </para>
+
+
+<!-- ##### ENUM CalComponentTransparency ##### -->
+<para>
+
+</para>
+
+@CAL_COMPONENT_TRANSP_NONE:
+@CAL_COMPONENT_TRANSP_TRANSPARENT:
+@CAL_COMPONENT_TRANSP_OPAQUE:
+@CAL_COMPONENT_TRANSP_UNKNOWN:
+
+<!-- ##### STRUCT CalComponentAlarm ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT CalComponentPrivate ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION cal_component_gen_uid ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_clone ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_set_new_vtype ##### -->
+<para>
+
+</para>
+
+@comp:
+@type:
+
+
+<!-- ##### FUNCTION cal_component_set_icalcomponent ##### -->
+<para>
+
+</para>
+
+@comp:
+@icalcomp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_icalcomponent ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_vtype ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_as_string ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_commit_sequence ##### -->
+<para>
+
+</para>
+
+@comp:
+
+
+<!-- ##### FUNCTION cal_component_get_uid ##### -->
+<para>
+
+</para>
+
+@comp:
+@uid:
+
+
+<!-- ##### FUNCTION cal_component_set_uid ##### -->
+<para>
+
+</para>
+
+@comp:
+@uid:
+
+
+<!-- ##### FUNCTION cal_component_get_categories_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@categ_list:
+
+
+<!-- ##### FUNCTION cal_component_set_categories_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@categ_list:
+
+
+<!-- ##### FUNCTION cal_component_get_classification ##### -->
+<para>
+
+</para>
+
+@comp:
+@classif:
+
+
+<!-- ##### FUNCTION cal_component_set_classification ##### -->
+<para>
+
+</para>
+
+@comp:
+@classif:
+
+
+<!-- ##### FUNCTION cal_component_get_comment_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@text_list:
+
+
+<!-- ##### FUNCTION cal_component_set_comment_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@text_list:
+
+
+<!-- ##### FUNCTION cal_component_get_completed ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_set_completed ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_get_created ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_set_created ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_get_description_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@text_list:
+
+
+<!-- ##### FUNCTION cal_component_set_description_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@text_list:
+
+
+<!-- ##### FUNCTION cal_component_get_dtend ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_set_dtend ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_get_dtstamp ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_set_dtstamp ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_get_dtstart ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_set_dtstart ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_get_due ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_set_due ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_get_exdate_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@exdate_list:
+
+
+<!-- ##### FUNCTION cal_component_set_exdate_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@exdate_list:
+
+
+<!-- ##### FUNCTION cal_component_get_exrule_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_set_exrule_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_get_geo ##### -->
+<para>
+
+</para>
+
+@comp:
+@geo:
+
+
+<!-- ##### FUNCTION cal_component_set_geo ##### -->
+<para>
+
+</para>
+
+@comp:
+@geo:
+
+
+<!-- ##### FUNCTION cal_component_get_last_modified ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_set_last_modified ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_get_percent ##### -->
+<para>
+
+</para>
+
+@comp:
+@percent:
+
+
+<!-- ##### FUNCTION cal_component_set_percent ##### -->
+<para>
+
+</para>
+
+@comp:
+@percent:
+
+
+<!-- ##### FUNCTION cal_component_get_priority ##### -->
+<para>
+
+</para>
+
+@comp:
+@priority:
+
+
+<!-- ##### FUNCTION cal_component_set_priority ##### -->
+<para>
+
+</para>
+
+@comp:
+@priority:
+
+
+<!-- ##### FUNCTION cal_component_get_rdate_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@period_list:
+
+
+<!-- ##### FUNCTION cal_component_set_rdate_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@period_list:
+
+
+<!-- ##### FUNCTION cal_component_has_rdates ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_rrule_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_set_rrule_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_has_rrules ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_sequence ##### -->
+<para>
+
+</para>
+
+@comp:
+@sequence:
+
+
+<!-- ##### FUNCTION cal_component_set_sequence ##### -->
+<para>
+
+</para>
+
+@comp:
+@sequence:
+
+
+<!-- ##### FUNCTION cal_component_get_summary ##### -->
+<para>
+
+</para>
+
+@comp:
+@summary:
+
+
+<!-- ##### FUNCTION cal_component_set_summary ##### -->
+<para>
+
+</para>
+
+@comp:
+@summary:
+
+
+<!-- ##### FUNCTION cal_component_get_transparency ##### -->
+<para>
+
+</para>
+
+@comp:
+@transp:
+
+
+<!-- ##### FUNCTION cal_component_set_transparency ##### -->
+<para>
+
+</para>
+
+@comp:
+@transp:
+
+
+<!-- ##### FUNCTION cal_component_get_url ##### -->
+<para>
+
+</para>
+
+@comp:
+@url:
+
+
+<!-- ##### FUNCTION cal_component_set_url ##### -->
+<para>
+
+</para>
+
+@comp:
+@url:
+
+
+<!-- ##### FUNCTION cal_component_get_pilot_id ##### -->
+<para>
+
+</para>
+
+@comp:
+@pilot_id:
+
+
+<!-- ##### FUNCTION cal_component_set_pilot_id ##### -->
+<para>
+
+</para>
+
+@comp:
+@pilot_id:
+
+
+<!-- ##### FUNCTION cal_component_get_pilot_status ##### -->
+<para>
+
+</para>
+
+@comp:
+@pilot_status:
+
+
+<!-- ##### FUNCTION cal_component_set_pilot_status ##### -->
+<para>
+
+</para>
+
+@comp:
+@pilot_status:
+
+
+<!-- ##### FUNCTION cal_component_free_categories_list ##### -->
+<para>
+
+</para>
+
+@categ_list:
+
+
+<!-- ##### FUNCTION cal_component_free_datetime ##### -->
+<para>
+
+</para>
+
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_free_exdate_list ##### -->
+<para>
+
+</para>
+
+@exdate_list:
+
+
+<!-- ##### FUNCTION cal_component_free_geo ##### -->
+<para>
+
+</para>
+
+@geo:
+
+
+<!-- ##### FUNCTION cal_component_free_icaltimetype ##### -->
+<para>
+
+</para>
+
+@t:
+
+
+<!-- ##### FUNCTION cal_component_free_percent ##### -->
+<para>
+
+</para>
+
+@percent:
+
+
+<!-- ##### FUNCTION cal_component_free_priority ##### -->
+<para>
+
+</para>
+
+@priority:
+
+
+<!-- ##### FUNCTION cal_component_free_period_list ##### -->
+<para>
+
+</para>
+
+@period_list:
+
+
+<!-- ##### FUNCTION cal_component_free_recur_list ##### -->
+<para>
+
+</para>
+
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_free_sequence ##### -->
+<para>
+
+</para>
+
+@sequence:
+
+
+<!-- ##### FUNCTION cal_component_free_text_list ##### -->
+<para>
+
+</para>
+
+@text_list:
+
+
+<!-- ##### ENUM CalComponentAlarmAction ##### -->
+<para>
+
+</para>
+
+@CAL_COMPONENT_ALARM_NONE:
+@CAL_COMPONENT_ALARM_AUDIO:
+@CAL_COMPONENT_ALARM_DISPLAY:
+@CAL_COMPONENT_ALARM_EMAIL:
+@CAL_COMPONENT_ALARM_PROCEDURE:
+@CAL_COMPONENT_ALARM_UNKNOWN:
+
+<!-- ##### ENUM CalComponentAlarmTriggerType ##### -->
+<para>
+
+</para>
+
+@CAL_COMPONENT_ALARM_TRIGGER_RELATIVE:
+@CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE:
+
+<!-- ##### ENUM CalComponentAlarmTriggerRelated ##### -->
+<para>
+
+</para>
+
+@CAL_COMPONENT_ALARM_TRIGGER_RELATED_START:
+@CAL_COMPONENT_ALARM_TRIGGER_RELATED_END:
+
+<!-- ##### TYPEDEF CalComponentAlarmTrigger ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION cal_component_get_first_alarm ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_next_alarm ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_alarm_free ##### -->
+<para>
+
+</para>
+
+@alarm:
+
+
+<!-- ##### FUNCTION cal_component_alarm_get_action ##### -->
+<para>
+
+</para>
+
+@alarm:
+@action:
+
+
+<!-- ##### FUNCTION cal_component_alarm_set_action ##### -->
+<para>
+
+</para>
+
+@alarm:
+@action:
+
+
+<!-- ##### FUNCTION cal_component_alarm_get_trigger ##### -->
+<para>
+
+</para>
+
+@alarm:
+@trigger:
+
+
+<!-- ##### FUNCTION cal_component_alarm_set_trigger ##### -->
+<para>
+
+</para>
+
+@alarm:
+@trigger:
+
+
+<!-- ##### FUNCTION cal_component_alarm_free_trigger ##### -->
+<para>
+
+</para>
+
+@trigger:
+
+
+<!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../../../evolution-devel-guide.sgml" "book" "refsect2" "")
+End:
+-->
diff --git a/doc/devel/calendar/cal-util/tmpl/cal-recur.sgml b/doc/devel/calendar/cal-util/tmpl/cal-recur.sgml
new file mode 100644
index 0000000000..703f8b2b85
--- /dev/null
+++ b/doc/devel/calendar/cal-util/tmpl/cal-recur.sgml
@@ -0,0 +1,88 @@
+<!-- ##### SECTION Title ##### -->
+cal-recur
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM CalRecurType ##### -->
+<para>
+
+</para>
+
+@CAL_RECUR_YEARLY:
+@CAL_RECUR_MONTHLY:
+@CAL_RECUR_WEEKLY:
+@CAL_RECUR_DAILY:
+@CAL_RECUR_HOURLY:
+@CAL_RECUR_MINUTELY:
+@CAL_RECUR_SECONDLY:
+
+<!-- ##### TYPEDEF CalRecurrence ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT CalObjTime ##### -->
+<para>
+
+</para>
+
+@year:
+@month:
+@day:
+@hour:
+@minute:
+@second:
+
+<!-- ##### USER_FUNCTION CalRecurInstanceFn ##### -->
+<para>
+
+</para>
+
+@comp:
+@instance_start:
+@instace_end:
+@data:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_recur_generate_instances ##### -->
+<para>
+
+</para>
+
+@comp:
+@start:
+@end:
+@cb:
+@cb_data:
+
+
+<!-- ##### FUNCTION cal_recur_from_icalrecurrencetype ##### -->
+<para>
+
+</para>
+
+@ir:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_recur_free ##### -->
+<para>
+
+</para>
+
+@r:
+
+
diff --git a/doc/devel/calendar/cal-util/tmpl/cal-util.sgml b/doc/devel/calendar/cal-util/tmpl/cal-util.sgml
new file mode 100644
index 0000000000..8d4516c2ec
--- /dev/null
+++ b/doc/devel/calendar/cal-util/tmpl/cal-util.sgml
@@ -0,0 +1,62 @@
+<!-- ##### SECTION Title ##### -->
+cal-util
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### TYPEDEF CalObjInstance ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION cal_obj_instance_list_free ##### -->
+<para>
+
+</para>
+
+@list:
+
+
+<!-- ##### TYPEDEF CalAlarmInstance ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION cal_alarm_instance_list_free ##### -->
+<para>
+
+</para>
+
+@list:
+
+
+<!-- ##### ENUM CalObjType ##### -->
+<para>
+
+</para>
+
+@CALOBJ_TYPE_EVENT:
+@CALOBJ_TYPE_TODO:
+@CALOBJ_TYPE_JOURNAL:
+@CALOBJ_TYPE_ANY:
+
+<!-- ##### FUNCTION cal_obj_uid_list_free ##### -->
+<para>
+
+</para>
+
+@list:
+
+
diff --git a/doc/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml b/doc/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/doc/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml
diff --git a/doc/devel/calendar/cal-util/tmpl/timeutil.sgml b/doc/devel/calendar/cal-util/tmpl/timeutil.sgml
new file mode 100644
index 0000000000..3b62fbba3f
--- /dev/null
+++ b/doc/devel/calendar/cal-util/tmpl/timeutil.sgml
@@ -0,0 +1,260 @@
+<!-- ##### SECTION Title ##### -->
+timeutil
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION time_from_icaltimetype ##### -->
+<para>
+
+</para>
+
+@itt:
+@Returns:
+
+
+<!-- ##### FUNCTION time_from_isodate ##### -->
+<para>
+
+</para>
+
+@str:
+@Returns:
+
+
+<!-- ##### FUNCTION time_from_start_duration ##### -->
+<para>
+
+</para>
+
+@start:
+@duration:
+@Returns:
+
+
+<!-- ##### FUNCTION isodate_from_time_t ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION get_time_t_hour ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION isodiff_to_secs ##### -->
+<para>
+
+</para>
+
+@str:
+@Returns:
+
+
+<!-- ##### FUNCTION isodiff_from_secs ##### -->
+<para>
+
+</para>
+
+@secs:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_minutes ##### -->
+<para>
+
+</para>
+
+@time:
+@minutes:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_day ##### -->
+<para>
+
+</para>
+
+@time:
+@days:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_week ##### -->
+<para>
+
+</para>
+
+@time:
+@weeks:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_month ##### -->
+<para>
+
+</para>
+
+@time:
+@months:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_year ##### -->
+<para>
+
+</para>
+
+@time:
+@years:
+@Returns:
+
+
+<!-- ##### FUNCTION format_simple_hour ##### -->
+<para>
+
+</para>
+
+@hour:
+@use_am_pm:
+@Returns:
+
+
+<!-- ##### FUNCTION time_days_in_month ##### -->
+<para>
+
+</para>
+
+@year:
+@month:
+@Returns:
+
+
+<!-- ##### FUNCTION time_from_day ##### -->
+<para>
+
+</para>
+
+@year:
+@month:
+@day:
+@Returns:
+
+
+<!-- ##### FUNCTION time_day_hour ##### -->
+<para>
+
+</para>
+
+@t:
+@hour:
+@Returns:
+
+
+<!-- ##### FUNCTION time_year_begin ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_year_end ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_month_begin ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_month_end ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_week_begin ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_week_end ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_day_begin ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_day_end ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION parse_date ##### -->
+<para>
+
+</para>
+
+@str:
+@Returns:
+
+
+<!-- ##### FUNCTION print_time_t ##### -->
+<para>
+
+</para>
+
+@t:
+
+
diff --git a/doc/devel/calendar/public-reference.sgml b/doc/devel/calendar/public-reference.sgml
index afe3b85628..f8aa6e848d 100644
--- a/doc/devel/calendar/public-reference.sgml
+++ b/doc/devel/calendar/public-reference.sgml
@@ -10,6 +10,10 @@
</partintro>
&CalClient;
+ &CalComponent;
+ &cal-util;
+ &cal-recur;
+ &timeutil;
</reference>
<!--
diff --git a/doc/devel/calendar/reference.sgml b/doc/devel/calendar/reference.sgml
index afe3b85628..f8aa6e848d 100644
--- a/doc/devel/calendar/reference.sgml
+++ b/doc/devel/calendar/reference.sgml
@@ -10,6 +10,10 @@
</partintro>
&CalClient;
+ &CalComponent;
+ &cal-util;
+ &cal-recur;
+ &timeutil;
</reference>
<!--
diff --git a/doc/devel/evolution-devel-guide.sgml b/doc/devel/evolution-devel-guide.sgml
index f6b942b3d8..ca80ec533a 100644
--- a/doc/devel/evolution-devel-guide.sgml
+++ b/doc/devel/evolution-devel-guide.sgml
@@ -3,7 +3,12 @@
<!entity calendar-architecture SYSTEM "calendar/architecture.sgml">
<!entity calendar-reference SYSTEM "calendar/reference.sgml">
<!entity CalClient SYSTEM "calendar/cal-client/sgml/cal-client.sgml">
+<!entity CalComponent SYSTEM "calendar/cal-util/sgml/cal-component.sgml">
+<!entity cal-util SYSTEM "calendar/cal-util/sgml/cal-util.sgml">
+<!entity cal-recur SYSTEM "calendar/cal-util/sgml/cal-recur.sgml">
+<!entity timeutil SYSTEM "calendar/cal-util/sgml/timeutil.sgml">
<!entity PCS "<acronym>PCS</acronym>">
+<!entity libical "<application>libical</application>">
]>
<book>
diff --git a/help/devel/ChangeLog b/help/devel/ChangeLog
index c432ddea1a..7e0c8147ba 100644
--- a/help/devel/ChangeLog
+++ b/help/devel/ChangeLog
@@ -1,3 +1,18 @@
+2000-08-14 Federico Mena Quintero <federico@helixcode.com>
+
+ * calendar/cal-util/*: Integrated the cal-util library into the
+ documentation framework.
+
+ * calendar/Makefile.am (SUBDIRS): Added the cal-util directory.
+
+ * evolution-devel-guide.sgml: Added entities for the cal-util stuff.
+ Added entity for libical.
+
+ * calendar/reference.sgml: Added the cal-util reference entries.
+
+ * calendar/cal-client/evolution-cal-client-sections.txt: Updated
+ for new API.
+
2000-08-09 Peter Williams <peterw@helixcode.com>
* Makefile.am (maintainer-clean-local): Don't depend
diff --git a/help/devel/calendar/Makefile.am b/help/devel/calendar/Makefile.am
index 7efde02896..2220e1d59b 100644
--- a/help/devel/calendar/Makefile.am
+++ b/help/devel/calendar/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = cal-client
+SUBDIRS = cal-client cal-util
EXTRA_DIST = \
architecture.sgml \
diff --git a/help/devel/calendar/cal-client/evolution-cal-client-decl.txt b/help/devel/calendar/cal-client/evolution-cal-client-decl.txt
index 9fffd4c201..0574d70678 100644
--- a/help/devel/calendar/cal-client/evolution-cal-client-decl.txt
+++ b/help/devel/calendar/cal-client/evolution-cal-client-decl.txt
@@ -83,7 +83,7 @@ CalClient *client, CalObjType type
<FUNCTION>
<NAME>cal_client_get_object</NAME>
<RETURNS>CalClientGetStatus </RETURNS>
-CalClient *client,const char *uid,iCalObject **ico
+CalClient *client,const char *uid,CalComponent **comp
</FUNCTION>
<FUNCTION>
<NAME>cal_client_get_uid_by_pilot_id</NAME>
@@ -101,9 +101,14 @@ CalClient *client, char *uid,unsigned long pilot_id,unsigned long pilot_status
CalClient *client, CalObjType type
</FUNCTION>
<FUNCTION>
-<NAME>cal_client_get_events_in_range</NAME>
+<NAME>cal_client_get_objects_in_range</NAME>
<RETURNS>GList *</RETURNS>
-CalClient *client, time_t start, time_t end
+CalClient *client, CalObjType type,time_t start, time_t end
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_client_generate_instances</NAME>
+<RETURNS>void </RETURNS>
+CalClient *client, CalObjType type,time_t start, time_t end,CalRecurInstanceFn cb, gpointer cb_data
</FUNCTION>
<FUNCTION>
<NAME>cal_client_get_alarms_in_range</NAME>
@@ -118,7 +123,7 @@ CalClient *client, const char *uid,time_t start, time_t end,GList **alarms
<FUNCTION>
<NAME>cal_client_update_object</NAME>
<RETURNS>gboolean </RETURNS>
-CalClient *client, iCalObject *ico
+CalClient *client, CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_client_remove_object</NAME>
diff --git a/help/devel/calendar/cal-client/evolution-cal-client-sections.txt b/help/devel/calendar/cal-client/evolution-cal-client-sections.txt
index 5496f2f0f2..c37b223247 100644
--- a/help/devel/calendar/cal-client/evolution-cal-client-sections.txt
+++ b/help/devel/calendar/cal-client/evolution-cal-client-sections.txt
@@ -12,10 +12,11 @@ cal_client_load_calendar
cal_client_create_calendar
cal_client_get_n_objects
cal_client_get_object
+cal_client_get_objects_in_range
+cal_client_generate_instances
cal_client_get_uid_by_pilot_id
cal_client_update_pilot_id
cal_client_get_uids
-cal_client_get_events_in_range
cal_client_get_alarms_in_range
cal_client_get_alarms_for_object
cal_client_update_object
diff --git a/help/devel/calendar/cal-client/tmpl/cal-client.sgml b/help/devel/calendar/cal-client/tmpl/cal-client.sgml
index d2205b5b22..a146709b8a 100644
--- a/help/devel/calendar/cal-client/tmpl/cal-client.sgml
+++ b/help/devel/calendar/cal-client/tmpl/cal-client.sgml
@@ -38,7 +38,6 @@ GTK+ object for communication with personal calendar server.
</para>
-
<!-- ##### MACRO CAL_CLIENT ##### -->
<para>
Casts a #GtkObject to a #CalClient.
@@ -61,14 +60,11 @@ GTK+ object for communication with personal calendar server.
@CAL_CLIENT_LOAD_SUCCESS: Indicates a successful load or create
operation; the corresponding calendar is ready for use.
-
@CAL_CLIENT_LOAD_ERROR: Indicates an error while loading or creating
the calendar.
-
@CAL_CLIENT_LOAD_IN_USE: Indicates that a create request failed
because the specified calendar was already being used by another
client.
-
@CAL_CLIENT_LOAD_METHOD_NOT_SUPPORTED: Indicates an error due to
trying to load a calendar for which a backend type is not present.
@@ -79,10 +75,8 @@ GTK+ object for communication with personal calendar server.
</para>
@CAL_CLIENT_GET_SUCCESS: Indicates a successful get operation.
-
@CAL_CLIENT_GET_NOT_FOUND: Indicates that the requested object was
not found.
-
@CAL_CLIENT_GET_SYNTAX_ERROR: Indicates a syntax error when parsing
the requested object. This could indicate a bug in the calendar
client libraries or in the Wombat server.
@@ -132,10 +126,37 @@ GTK+ object for communication with personal calendar server.
@client:
@uid:
+@comp:
+@Returns:
+<!-- # Unused Parameters # -->
@ico:
+
+
+<!-- ##### FUNCTION cal_client_get_objects_in_range ##### -->
+<para>
+
+</para>
+
+@client:
+@type:
+@start:
+@end:
@Returns:
+<!-- ##### FUNCTION cal_client_generate_instances ##### -->
+<para>
+
+</para>
+
+@client:
+@type:
+@start:
+@end:
+@cb:
+@cb_data:
+
+
<!-- ##### FUNCTION cal_client_get_uid_by_pilot_id ##### -->
<para>
@@ -168,17 +189,6 @@ GTK+ object for communication with personal calendar server.
@Returns:
-<!-- ##### FUNCTION cal_client_get_events_in_range ##### -->
-<para>
-
-</para>
-
-@client:
-@start:
-@end:
-@Returns:
-
-
<!-- ##### FUNCTION cal_client_get_alarms_in_range ##### -->
<para>
@@ -209,8 +219,10 @@ GTK+ object for communication with personal calendar server.
</para>
@client:
-@ico:
+@comp:
@Returns:
+<!-- # Unused Parameters # -->
+@ico:
<!-- ##### FUNCTION cal_client_remove_object ##### -->
@@ -232,6 +244,9 @@ GTK+ object for communication with personal calendar server.
request.
</para>
+@calclient: the object which received the signal.
+@arg1:
+<!-- # Unused Parameters # -->
@client: Calendar client which received the notification.
@status: Status of the request. See the description of
#CalClientLoadStatus for more details.
@@ -244,6 +259,9 @@ GTK+ object for communication with personal calendar server.
new version of the object and update their display, for example.
</para>
+@calclient: the object which received the signal.
+@arg1:
+<!-- # Unused Parameters # -->
@client: Calendar client which received the notification.
@uid: Unique identifier of the calendar component that changed in the
personal calendar server's storage.
@@ -257,6 +275,9 @@ GTK+ object for communication with personal calendar server.
example.
</para>
+@calclient: the object which received the signal.
+@arg1:
+<!-- # Unused Parameters # -->
@client: Calendar client which received the notification.
@uid: Unique identifier of the calendar component that was removed
from the personal calendar server's storage.
@@ -267,3 +288,4 @@ mode: sgml
sgml-parent-document: ("../../../evolution-devel-guide.sgml" "book" "refsect2" "")
End:
-->
+
diff --git a/help/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml b/help/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml
index e69de29bb2..5576dbd57f 100644
--- a/help/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml
+++ b/help/devel/calendar/cal-client/tmpl/evolution-cal-client-unused.sgml
@@ -0,0 +1,10 @@
+<!-- ##### FUNCTION cal_client_get_events_in_range ##### -->
+<para>
+
+</para>
+
+@client:
+@start:
+@end:
+@Returns:
+
diff --git a/help/devel/calendar/cal-util/.cvsignore b/help/devel/calendar/cal-util/.cvsignore
new file mode 100644
index 0000000000..0842a93f7a
--- /dev/null
+++ b/help/devel/calendar/cal-util/.cvsignore
@@ -0,0 +1,3 @@
+sgml
+Makefile
+Makefile.in
diff --git a/help/devel/calendar/cal-util/Makefile.am b/help/devel/calendar/cal-util/Makefile.am
new file mode 100644
index 0000000000..8861aa03cb
--- /dev/null
+++ b/help/devel/calendar/cal-util/Makefile.am
@@ -0,0 +1,75 @@
+## Process this file with automake to produce Makefile.in
+
+# The name of the module.
+DOC_MODULE=evolution-cal-util
+
+# The top-level SGML file.
+DOC_MAIN_SGML_FILE=evolution-cal-util.sgml
+
+# The directory containing the source code (if it contains documentation).
+DOC_SOURCE_DIR=$(EVOLUTION_DIR)/calendar/cal-util
+
+CFLAGS =" \
+ -I$(top_srcdir)/calendar \
+ -I$(top_srcdir) \
+ -I$(top_builddir) \
+ -I$(top_builddir)/libical/src/libical \
+ -I$(top_srcdir)/libical/src/libical \
+ $(BONOBO_VFS_GNOME_CFLAGS) \
+ "
+
+LDFLAGS=" \
+ $(BONOBO_VFS_GNOME_LIBS) \
+ $(top_builddir)/calendar/cal-util/.libs/libcal-util.a \
+ $(top_builddir)/libical/src/libical/libical.a \
+ $(top_builddir)/libversit/.libs/libversit.al \
+ "
+
+HTML_DIR=$(datadir)/gnome/html
+
+TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
+
+tmpl_sources = \
+ tmpl/cal-util.sgml \
+ tmpl/evolution-cal-util-unused.sgml
+
+evolution_cal_util_docdir = $(HTML_DIR)
+evolution_cal_util_doc_DATA = \
+ evolution-cal-util.hierarchy \
+ evolution-cal-util.types \
+ evolution-cal-util-decl.txt \
+ evolution-cal-util-sections.txt
+
+EXTRA_DIST = \
+ $(evolution_cal_util_doc_DATA)
+
+sgml/evolution-cal-util-doc.bottom: $(tmpl_sources)
+ $(MAKE) sgml
+
+scan:
+ -(cd $(srcdir) \
+ && env CFLAGS=$(CFLAGS) LDFLAGS=$(LDFLAGS) \
+ gtkdoc-scanobj --module=$(DOC_MODULE) \
+ && gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="calobj.h icalendar-save.h icalendar.h" )
+
+templates: scan
+ cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+
+sgml:
+ cd $(srcdir) \
+ && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
+
+clean-local:
+ rm -f *~ *.bak *.signals *-unused.txt
+
+maintainer-clean-local: clean
+ cd $(srcdir) && rm -rf sgml $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+
+dist-hook:
+ mkdir $(distdir)/sgml
+ mkdir $(distdir)/tmpl
+ -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
+ -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
+ -cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
+
+.PHONY : sgml templates scan
diff --git a/help/devel/calendar/cal-util/evolution-cal-util-decl.txt b/help/devel/calendar/cal-util/evolution-cal-util-decl.txt
new file mode 100644
index 0000000000..eb108b868f
--- /dev/null
+++ b/help/devel/calendar/cal-util/evolution-cal-util-decl.txt
@@ -0,0 +1,852 @@
+<MACRO>
+<NAME>CAL_COMPONENT_TYPE</NAME>
+#define CAL_COMPONENT_TYPE (cal_component_get_type ())
+</MACRO>
+<MACRO>
+<NAME>CAL_COMPONENT</NAME>
+#define CAL_COMPONENT(obj) (GTK_CHECK_CAST ((obj), CAL_COMPONENT_TYPE, CalComponent))
+</MACRO>
+<MACRO>
+<NAME>CAL_COMPONENT_CLASS</NAME>
+#define CAL_COMPONENT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), CAL_COMPONENT_TYPE, \
+ CalComponentClass))
+</MACRO>
+<MACRO>
+<NAME>IS_CAL_COMPONENT</NAME>
+#define IS_CAL_COMPONENT(obj) (GTK_CHECK_TYPE ((obj), CAL_COMPONENT_TYPE))
+</MACRO>
+<MACRO>
+<NAME>IS_CAL_COMPONENT_CLASS</NAME>
+#define IS_CAL_COMPONENT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), CAL_COMPONENT_TYPE))
+</MACRO>
+<ENUM>
+<NAME>CalComponentVType</NAME>
+typedef enum {
+ CAL_COMPONENT_NO_TYPE,
+ CAL_COMPONENT_EVENT,
+ CAL_COMPONENT_TODO,
+ CAL_COMPONENT_JOURNAL,
+ CAL_COMPONENT_FREEBUSY,
+ CAL_COMPONENT_TIMEZONE
+} CalComponentVType;
+</ENUM>
+<ENUM>
+<NAME>CalComponentField</NAME>
+typedef enum {
+ CAL_COMPONENT_FIELD_CATEGORIES, /* concatenation of the categories list */
+ CAL_COMPONENT_FIELD_CLASSIFICATION,
+ CAL_COMPONENT_FIELD_COMPLETED,
+ CAL_COMPONENT_FIELD_DTEND,
+ CAL_COMPONENT_FIELD_DTSTART,
+ CAL_COMPONENT_FIELD_DUE,
+ CAL_COMPONENT_FIELD_GEO,
+ CAL_COMPONENT_FIELD_PERCENT,
+ CAL_COMPONENT_FIELD_PRIORITY,
+ CAL_COMPONENT_FIELD_SUMMARY,
+ CAL_COMPONENT_FIELD_TRANSPARENCY,
+ CAL_COMPONENT_FIELD_URL,
+ CAL_COMPONENT_FIELD_HAS_ALARMS, /* not a real field */
+ CAL_COMPONENT_FIELD_ICON, /* not a real field */
+ CAL_COMPONENT_FIELD_COMPLETE, /* not a real field */
+ CAL_COMPONENT_FIELD_RECURRING, /* not a real field */
+ CAL_COMPONENT_FIELD_OVERDUE, /* not a real field */
+ CAL_COMPONENT_FIELD_COLOR, /* not a real field */
+ CAL_COMPONENT_FIELD_NUM_FIELDS
+} CalComponentField;
+</ENUM>
+<ENUM>
+<NAME>CalComponentClassification</NAME>
+typedef enum {
+ CAL_COMPONENT_CLASS_NONE,
+ CAL_COMPONENT_CLASS_PUBLIC,
+ CAL_COMPONENT_CLASS_PRIVATE,
+ CAL_COMPONENT_CLASS_CONFIDENTIAL,
+ CAL_COMPONENT_CLASS_UNKNOWN
+} CalComponentClassification;
+</ENUM>
+<TYPEDEF>
+<NAME>CalComponentDateTime</NAME>
+typedef struct {
+ /* Actual date/time value */
+ struct icaltimetype *value;
+
+ /* Timezone ID */
+ const char *tzid;
+} CalComponentDateTime;
+</TYPEDEF>
+<ENUM>
+<NAME>CalComponentPeriodType</NAME>
+typedef enum {
+ CAL_COMPONENT_PERIOD_DATETIME,
+ CAL_COMPONENT_PERIOD_DURATION
+} CalComponentPeriodType;
+</ENUM>
+<TYPEDEF>
+<NAME>CalComponentPeriod</NAME>
+typedef struct {
+ CalComponentPeriodType type;
+
+ struct icaltimetype start;
+
+ union {
+ struct icaltimetype end;
+ struct icaldurationtype duration;
+ } u;
+} CalComponentPeriod;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>CalComponentText</NAME>
+typedef struct {
+ /* Description string */
+ const char *value;
+
+ /* Alternate representation URI */
+ const char *altrep;
+} CalComponentText;
+</TYPEDEF>
+<ENUM>
+<NAME>CalComponentTransparency</NAME>
+typedef enum {
+ CAL_COMPONENT_TRANSP_NONE,
+ CAL_COMPONENT_TRANSP_TRANSPARENT,
+ CAL_COMPONENT_TRANSP_OPAQUE,
+ CAL_COMPONENT_TRANSP_UNKNOWN
+} CalComponentTransparency;
+</ENUM>
+<STRUCT>
+<NAME>CalComponentAlarm</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalComponent</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalComponentClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalComponentPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalComponent</NAME>
+struct CalComponent {
+ GtkObject object;
+
+ /* Private data */
+ CalComponentPrivate *priv;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>cal_component_get_type</NAME>
+<RETURNS>GtkType </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_gen_uid</NAME>
+<RETURNS>char *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_new</NAME>
+<RETURNS>CalComponent *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_clone</NAME>
+<RETURNS>CalComponent *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_new_vtype</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentVType type
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_icalcomponent</NAME>
+<RETURNS>gboolean </RETURNS>
+CalComponent *comp, icalcomponent *icalcomp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_icalcomponent</NAME>
+<RETURNS>icalcomponent *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_vtype</NAME>
+<RETURNS>CalComponentVType </RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_as_string</NAME>
+<RETURNS>char *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_commit_sequence</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_uid</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, const char **uid
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_uid</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, const char *uid
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_categories_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **categ_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_categories_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *categ_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_classification</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentClassification *classif
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_classification</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentClassification classif
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_comment_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **text_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_comment_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *text_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_completed</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype **t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_completed</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_created</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype **t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_created</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_description_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **text_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_description_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *text_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_dtend</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_dtend</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_dtstamp</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_dtstamp</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_dtstart</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_dtstart</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_due</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_due</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_exdate_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **exdate_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_exdate_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *exdate_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_exrule_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_exrule_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_geo</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icalgeotype **geo
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_geo</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icalgeotype *geo
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_last_modified</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype **t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_last_modified</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_percent</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int **percent
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_percent</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int *percent
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_priority</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int **priority
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_priority</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int *priority
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_rdate_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **period_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_rdate_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *period_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_has_rdates</NAME>
+<RETURNS>gboolean </RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_rrule_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList **recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_rrule_list</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, GSList *recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_has_rrules</NAME>
+<RETURNS>gboolean </RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_sequence</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int **sequence
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_sequence</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, int *sequence
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_summary</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentText *summary
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_summary</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentText *summary
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_transparency</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentTransparency *transp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_transparency</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, CalComponentTransparency transp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_url</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, const char **url
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_url</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, const char *url
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_pilot_id</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, unsigned long *pilot_id
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_pilot_id</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, unsigned long pilot_id
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_pilot_status</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, unsigned long *pilot_status
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_set_pilot_status</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp, unsigned long pilot_status
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_categories_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *categ_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_datetime</NAME>
+<RETURNS>void </RETURNS>
+CalComponentDateTime *dt
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_exdate_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *exdate_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_geo</NAME>
+<RETURNS>void </RETURNS>
+struct icalgeotype *geo
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_icaltimetype</NAME>
+<RETURNS>void </RETURNS>
+struct icaltimetype *t
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_percent</NAME>
+<RETURNS>void </RETURNS>
+int *percent
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_priority</NAME>
+<RETURNS>void </RETURNS>
+int *priority
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_period_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *period_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_recur_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *recur_list
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_sequence</NAME>
+<RETURNS>void </RETURNS>
+int *sequence
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_free_text_list</NAME>
+<RETURNS>void </RETURNS>
+GSList *text_list
+</FUNCTION>
+<ENUM>
+<NAME>CalComponentAlarmAction</NAME>
+typedef enum {
+ CAL_COMPONENT_ALARM_NONE,
+ CAL_COMPONENT_ALARM_AUDIO,
+ CAL_COMPONENT_ALARM_DISPLAY,
+ CAL_COMPONENT_ALARM_EMAIL,
+ CAL_COMPONENT_ALARM_PROCEDURE,
+ CAL_COMPONENT_ALARM_UNKNOWN
+} CalComponentAlarmAction;
+</ENUM>
+<ENUM>
+<NAME>CalComponentAlarmTriggerType</NAME>
+typedef enum {
+ CAL_COMPONENT_ALARM_TRIGGER_RELATIVE,
+ CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE
+} CalComponentAlarmTriggerType;
+</ENUM>
+<ENUM>
+<NAME>CalComponentAlarmTriggerRelated</NAME>
+typedef enum {
+ CAL_COMPONENT_ALARM_TRIGGER_RELATED_START,
+ CAL_COMPONENT_ALARM_TRIGGER_RELATED_END
+} CalComponentAlarmTriggerRelated;
+</ENUM>
+<TYPEDEF>
+<NAME>CalComponentAlarmTrigger</NAME>
+typedef struct {
+ CalComponentAlarmTriggerType type;
+
+ union {
+ struct {
+ struct icaldurationtype duration;
+ CalComponentAlarmTriggerRelated related;
+ } relative;
+
+ struct icaltimetype absolute;
+ } u;
+} CalComponentAlarmTrigger;
+</TYPEDEF>
+<FUNCTION>
+<NAME>cal_component_get_first_alarm</NAME>
+<RETURNS>CalComponentAlarm *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_get_next_alarm</NAME>
+<RETURNS>CalComponentAlarm *</RETURNS>
+CalComponent *comp
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_free</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_get_action</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm, CalComponentAlarmAction *action
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_set_action</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm, CalComponentAlarmAction action
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_get_trigger</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm, CalComponentAlarmTrigger **trigger
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_set_trigger</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarm *alarm, CalComponentAlarmTrigger *trigger
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_component_alarm_free_trigger</NAME>
+<RETURNS>void </RETURNS>
+CalComponentAlarmTrigger *trigger
+</FUNCTION>
+<ENUM>
+<NAME>CalRecurType</NAME>
+typedef enum {
+ CAL_RECUR_YEARLY,
+ CAL_RECUR_MONTHLY,
+ CAL_RECUR_WEEKLY,
+ CAL_RECUR_DAILY,
+ CAL_RECUR_HOURLY,
+ CAL_RECUR_MINUTELY,
+ CAL_RECUR_SECONDLY
+} CalRecurType;
+</ENUM>
+<TYPEDEF>
+<NAME>CalRecurrence</NAME>
+typedef struct {
+ CalRecurType type;
+
+ int interval;
+
+ /* Specifies the end of the recurrence. No occurrences are generated
+ after this date. If it is 0, the event recurs forever. */
+ time_t enddate;
+
+ /* WKST property - the week start day: 0 = Monday to 6 = Sunday. */
+ gint week_start_day;
+
+
+ /* NOTE: I've used GList's here, but it doesn't matter if we use
+ other data structures like arrays. The code should be easy to
+ change. So long as it is easy to see if the modifier is set. */
+
+ /* For BYMONTH modifier. A list of GINT_TO_POINTERs, 0-11. */
+ GList *bymonth;
+
+ /* For BYWEEKNO modifier. A list of GINT_TO_POINTERs, [+-]1-53. */
+ GList *byweekno;
+
+ /* For BYYEARDAY modifier. A list of GINT_TO_POINTERs, [+-]1-366. */
+ GList *byyearday;
+
+ /* For BYMONTHDAY modifier. A list of GINT_TO_POINTERs, [+-]1-31. */
+ GList *bymonthday;
+
+ /* For BYDAY modifier. A list of GINT_TO_POINTERs, in pairs.
+ The first of each pair is the weekday, 0 = Monday to 6 = Sunday.
+ The second of each pair is the week number [+-]0-53. */
+ GList *byday;
+
+ /* For BYHOUR modifier. A list of GINT_TO_POINTERs, 0-23. */
+ GList *byhour;
+
+ /* For BYMINUTE modifier. A list of GINT_TO_POINTERs, 0-59. */
+ GList *byminute;
+
+ /* For BYSECOND modifier. A list of GINT_TO_POINTERs, 0-60. */
+ GList *bysecond;
+
+ /* For BYSETPOS modifier. A list of GINT_TO_POINTERs, +ve or -ve. */
+ GList *bysetpos;
+} CalRecurrence;
+</TYPEDEF>
+<STRUCT>
+<NAME>CalObjTime</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>CalObjTime</NAME>
+struct CalObjTime {
+ guint16 year;
+ guint8 month; /* 0 - 11 */
+ guint8 day; /* 1 - 31 */
+ guint8 hour; /* 0 - 23 */
+ guint8 minute; /* 0 - 59 */
+ guint8 second; /* 0 - 59 (maybe 60 for leap second) */
+};
+</STRUCT>
+<USER_FUNCTION>
+<NAME>CalRecurInstanceFn</NAME>
+<RETURNS>gboolean </RETURNS>
+CalComponent *comp,
+ time_t instance_start,
+ time_t instace_end,
+ gpointer data
+</USER_FUNCTION>
+<FUNCTION>
+<NAME>cal_recur_generate_instances</NAME>
+<RETURNS>void </RETURNS>
+CalComponent *comp,time_t start,time_t end,CalRecurInstanceFn cb,gpointer cb_data
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_recur_from_icalrecurrencetype</NAME>
+<RETURNS>CalRecurrence *</RETURNS>
+struct icalrecurrencetype *ir
+</FUNCTION>
+<FUNCTION>
+<NAME>cal_recur_free</NAME>
+<RETURNS>void </RETURNS>
+CalRecurrence *r
+</FUNCTION>
+<TYPEDEF>
+<NAME>CalObjInstance</NAME>
+typedef struct {
+ char *uid; /* UID of the object */
+ time_t start; /* Start time of instance */
+ time_t end; /* End time of instance */
+} CalObjInstance;
+</TYPEDEF>
+<FUNCTION>
+<NAME>cal_obj_instance_list_free</NAME>
+<RETURNS>void </RETURNS>
+GList *list
+</FUNCTION>
+<TYPEDEF>
+<NAME>CalAlarmInstance</NAME>
+typedef struct {
+ char *uid; /* UID of object */
+#if 0
+ enum AlarmType type; /* Type of alarm */
+#endif
+ time_t trigger; /* Alarm trigger time */
+ time_t occur; /* Occurrence time */
+} CalAlarmInstance;
+</TYPEDEF>
+<FUNCTION>
+<NAME>cal_alarm_instance_list_free</NAME>
+<RETURNS>void </RETURNS>
+GList *list
+</FUNCTION>
+<ENUM>
+<NAME>CalObjType</NAME>
+typedef enum {
+ CALOBJ_TYPE_EVENT = 1 << 0,
+ CALOBJ_TYPE_TODO = 1 << 1,
+ CALOBJ_TYPE_JOURNAL = 1 << 2,
+ CALOBJ_TYPE_ANY = 0x07
+} CalObjType;
+</ENUM>
+<FUNCTION>
+<NAME>cal_obj_uid_list_free</NAME>
+<RETURNS>void </RETURNS>
+GList *list
+</FUNCTION>
+<FUNCTION>
+<NAME>time_from_icaltimetype</NAME>
+<RETURNS>time_t </RETURNS>
+struct icaltimetype itt
+</FUNCTION>
+<FUNCTION>
+<NAME>time_from_isodate</NAME>
+<RETURNS>time_t </RETURNS>
+char *str
+</FUNCTION>
+<FUNCTION>
+<NAME>time_from_start_duration</NAME>
+<RETURNS>time_t </RETURNS>
+time_t start, char *duration
+</FUNCTION>
+<FUNCTION>
+<NAME>isodate_from_time_t</NAME>
+<RETURNS>char *</RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>get_time_t_hour</NAME>
+<RETURNS>int </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>isodiff_to_secs</NAME>
+<RETURNS>int </RETURNS>
+char *str
+</FUNCTION>
+<FUNCTION>
+<NAME>isodiff_from_secs</NAME>
+<RETURNS>char *</RETURNS>
+int secs
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_minutes</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int minutes
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_day</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int days
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_week</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int weeks
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_month</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int months
+</FUNCTION>
+<FUNCTION>
+<NAME>time_add_year</NAME>
+<RETURNS>time_t </RETURNS>
+time_t time, int years
+</FUNCTION>
+<FUNCTION>
+<NAME>format_simple_hour</NAME>
+<RETURNS>char *</RETURNS>
+int hour, int use_am_pm
+</FUNCTION>
+<FUNCTION>
+<NAME>time_days_in_month</NAME>
+<RETURNS>int </RETURNS>
+int year, int month
+</FUNCTION>
+<FUNCTION>
+<NAME>time_from_day</NAME>
+<RETURNS>time_t </RETURNS>
+int year, int month, int day
+</FUNCTION>
+<FUNCTION>
+<NAME>time_day_hour</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t, int hour
+</FUNCTION>
+<FUNCTION>
+<NAME>time_year_begin</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_year_end</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_month_begin</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_month_end</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_week_begin</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_week_end</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_day_begin</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>time_day_end</NAME>
+<RETURNS>time_t </RETURNS>
+time_t t
+</FUNCTION>
+<FUNCTION>
+<NAME>parse_date</NAME>
+<RETURNS>time_t </RETURNS>
+char *str
+</FUNCTION>
+<FUNCTION>
+<NAME>print_time_t</NAME>
+<RETURNS>void </RETURNS>
+time_t t
+</FUNCTION>
diff --git a/help/devel/calendar/cal-util/evolution-cal-util-sections.txt b/help/devel/calendar/cal-util/evolution-cal-util-sections.txt
new file mode 100644
index 0000000000..cd928fc7e3
--- /dev/null
+++ b/help/devel/calendar/cal-util/evolution-cal-util-sections.txt
@@ -0,0 +1,166 @@
+<SECTION>
+<FILE>cal-component</FILE>
+CAL_COMPONENT
+<TITLE>CalComponent</TITLE>
+
+CalComponentVType
+CalComponentField
+CalComponentClassification
+CalComponentDateTime
+CalComponentPeriodType
+CalComponentPeriod
+CalComponentText
+CalComponentTransparency
+CalComponentAlarm
+CalComponentPrivate
+
+cal_component_gen_uid
+cal_component_new
+cal_component_clone
+cal_component_set_new_vtype
+cal_component_set_icalcomponent
+cal_component_get_icalcomponent
+cal_component_get_vtype
+cal_component_get_as_string
+cal_component_commit_sequence
+cal_component_get_uid
+cal_component_set_uid
+cal_component_get_categories_list
+cal_component_set_categories_list
+cal_component_get_classification
+cal_component_set_classification
+cal_component_get_comment_list
+cal_component_set_comment_list
+cal_component_get_completed
+cal_component_set_completed
+cal_component_get_created
+cal_component_set_created
+cal_component_get_description_list
+cal_component_set_description_list
+cal_component_get_dtend
+cal_component_set_dtend
+cal_component_get_dtstamp
+cal_component_set_dtstamp
+cal_component_get_dtstart
+cal_component_set_dtstart
+cal_component_get_due
+cal_component_set_due
+cal_component_get_exdate_list
+cal_component_set_exdate_list
+cal_component_get_exrule_list
+cal_component_set_exrule_list
+cal_component_get_geo
+cal_component_set_geo
+cal_component_get_last_modified
+cal_component_set_last_modified
+cal_component_get_percent
+cal_component_set_percent
+cal_component_get_priority
+cal_component_set_priority
+cal_component_get_rdate_list
+cal_component_set_rdate_list
+cal_component_has_rdates
+cal_component_get_rrule_list
+cal_component_set_rrule_list
+cal_component_has_rrules
+cal_component_get_sequence
+cal_component_set_sequence
+cal_component_get_summary
+cal_component_set_summary
+cal_component_get_transparency
+cal_component_set_transparency
+cal_component_get_url
+cal_component_set_url
+cal_component_get_pilot_id
+cal_component_set_pilot_id
+cal_component_get_pilot_status
+cal_component_set_pilot_status
+
+cal_component_free_categories_list
+cal_component_free_datetime
+cal_component_free_exdate_list
+cal_component_free_geo
+cal_component_free_icaltimetype
+cal_component_free_percent
+cal_component_free_priority
+cal_component_free_period_list
+cal_component_free_recur_list
+cal_component_free_sequence
+cal_component_free_text_list
+
+CalComponentAlarmAction
+CalComponentAlarmTriggerType
+CalComponentAlarmTriggerRelated
+CalComponentAlarmTrigger
+
+cal_component_get_first_alarm
+cal_component_get_next_alarm
+cal_component_alarm_free
+cal_component_alarm_get_action
+cal_component_alarm_set_action
+cal_component_alarm_get_trigger
+cal_component_alarm_set_trigger
+cal_component_alarm_free_trigger
+
+<SUBSECTION Standard>
+CAL_COMPONENT_TYPE
+CAL_COMPONENT_CLASS
+IS_CAL_COMPONENT
+IS_CAL_COMPONENT_CLASS
+cal_component_get_type
+
+<SUBSECTION Private>
+CalComponent
+
+</SECTION>
+
+<SECTION>
+<FILE>cal-recur</FILE>
+CalRecurType
+CalRecurrence
+CalObjTime
+CalRecurInstanceFn
+cal_recur_generate_instances
+cal_recur_from_icalrecurrencetype
+cal_recur_free
+</SECTION>
+
+<SECTION>
+<FILE>cal-util</FILE>
+CalObjInstance
+cal_obj_instance_list_free
+CalAlarmInstance
+cal_alarm_instance_list_free
+CalObjType
+cal_obj_uid_list_free
+</SECTION>
+
+<SECTION>
+<FILE>timeutil</FILE>
+time_from_icaltimetype
+time_from_isodate
+time_from_start_duration
+isodate_from_time_t
+get_time_t_hour
+isodiff_to_secs
+isodiff_from_secs
+time_add_minutes
+time_add_day
+time_add_week
+time_add_month
+time_add_year
+format_simple_hour
+time_days_in_month
+time_from_day
+time_day_hour
+time_year_begin
+time_year_end
+time_month_begin
+time_month_end
+time_week_begin
+time_week_end
+time_day_begin
+time_day_end
+parse_date
+print_time_t
+</SECTION>
diff --git a/help/devel/calendar/cal-util/evolution-cal-util.args b/help/devel/calendar/cal-util/evolution-cal-util.args
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/help/devel/calendar/cal-util/evolution-cal-util.args
diff --git a/help/devel/calendar/cal-util/evolution-cal-util.hierarchy b/help/devel/calendar/cal-util/evolution-cal-util.hierarchy
new file mode 100644
index 0000000000..cc235653f2
--- /dev/null
+++ b/help/devel/calendar/cal-util/evolution-cal-util.hierarchy
@@ -0,0 +1,2 @@
+GtkObject
+ CalComponent
diff --git a/help/devel/calendar/cal-util/evolution-cal-util.signals b/help/devel/calendar/cal-util/evolution-cal-util.signals
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/help/devel/calendar/cal-util/evolution-cal-util.signals
diff --git a/help/devel/calendar/cal-util/evolution-cal-util.types b/help/devel/calendar/cal-util/evolution-cal-util.types
new file mode 100644
index 0000000000..52b2d9bf90
--- /dev/null
+++ b/help/devel/calendar/cal-util/evolution-cal-util.types
@@ -0,0 +1,4 @@
+#include <gnome.h>
+#include <cal-util/cal-component.h>
+
+cal_component_get_type
diff --git a/help/devel/calendar/cal-util/tmpl/cal-component.sgml b/help/devel/calendar/cal-util/tmpl/cal-component.sgml
new file mode 100644
index 0000000000..2f800e583f
--- /dev/null
+++ b/help/devel/calendar/cal-util/tmpl/cal-component.sgml
@@ -0,0 +1,934 @@
+<!-- ##### SECTION Title ##### -->
+CalComponent
+
+<!-- ##### SECTION Short_Description ##### -->
+RFC 2445 iCalendar component object.
+
+<!-- ##### SECTION Long_Description ##### -->
+ <para>
+ The #CalComponent object provides a wrapper over the &libical;
+ functions for manipulating calendar components. #CalComponent
+ presents a GTK+-like interface to calendar components according to
+ RFC 2445.
+ </para>
+
+ <para>
+ While &libical; supports almost all of the features of the
+ iCalendar RFCs, applications are normally not interested in all
+ the mindless gunk that is there. Still, applications should do
+ their best not to drop extension fields from calendar components
+ or any other extra information they do not support (including
+ standard fields they are not interested in). The #CalComponent
+ object provides a wrapper over
+ <structname>icalcomponent</structname> structures from &libical;
+ so that no information in them will be lost even if the
+ application is not designed to handle it. Also, #CalComponent
+ provides a higher-level API to many of the &libical; operations so
+ as to make it less painful to deal with iCalendar components.
+ </para>
+
+ <para>
+ A #CalComponent object starts out empty. It must be initialized
+ from an existing <structname>icalcomponent</structname> structure
+ by using the cal_component_set_icalcomponent() function, or from a
+ completely new data by specifying the desired component type to
+ the cal_component_set_new_vtype() function.
+ </para>
+
+ <para>
+ #CalComponent will create an internal map of the properties in the
+ <structname>icalcomponent</structname> structure and then allow
+ random access to them via the #CalComponent API functions;
+ normally the &libical; API would have to be used by creating many
+ iterators and other unpleasant constructs. #CalComponent keeps
+ handles to the properties it scanned from the
+ <structname>icalcomponent</structname> and will let the parent
+ application modify them at any time without having to do any
+ iteration.
+ </para>
+
+ <para>
+ Eventually a #CalComponent may be turned into the RFC 2445 string
+ representation of an iCalendar component by using the
+ cal_component_get_as_string() function. Applications can then
+ transfer this interoperable
+ <footnote>
+ <para>
+ &ldquo;Interoperable.&rdquo; Heavens, I love that word.
+ </para>
+ </footnote>
+ string to other programs that deal with iCalendar.
+ </para>
+
+<!-- ##### SECTION See_Also ##### -->
+ <para>
+
+ </para>
+
+<!-- ##### MACRO CAL_COMPONENT ##### -->
+ <para>
+ Casts a #GtkObject to a #CalComponent.
+ </para>
+
+@obj: A GTK+ object.
+
+
+<!-- ##### ENUM CalComponentVType ##### -->
+ <para>
+ Calendar component types as defined by RFC 2445. These values can
+ be used to create a new calendar component by passing them to the
+ cal_component_set_new_vtype() function. They are also the return
+ value of the cal_component_get_vtype() function. The only time
+ the @CAL_COMPONENT_NO_TYPE value is used is when querying the
+ vtype of an uninitialized #CalComponent.
+ </para>
+
+@CAL_COMPONENT_NO_TYPE: Returned from cal_component_get_vtype() to
+ indicate an uninitialized #CalComponent object.
+
+@CAL_COMPONENT_EVENT: Indicates a VEVENT component.
+@CAL_COMPONENT_TODO: Indicates a VTODO component.
+@CAL_COMPONENT_JOURNAL: Indicates a VJOURNAL component.
+@CAL_COMPONENT_FREEBUSY: Indicates a VFREEBUSY component.
+@CAL_COMPONENT_TIMEZONE: Indicates a VTIMEZOME component.
+
+<!-- ##### ENUM CalComponentField ##### -->
+ <para>
+ These values are used as identifiers for #ETable columns. These
+ are used by the calendar GUI code in Evolution.
+ </para>
+
+@CAL_COMPONENT_FIELD_CATEGORIES: Component's list of categories.
+@CAL_COMPONENT_FIELD_CLASSIFICATION: Component's classification.
+@CAL_COMPONENT_FIELD_COMPLETED: Component's completion date.
+@CAL_COMPONENT_FIELD_DTEND: Component's ending date.
+@CAL_COMPONENT_FIELD_DTSTART: Component's starting date.
+@CAL_COMPONENT_FIELD_DUE: Component's due date.
+@CAL_COMPONENT_FIELD_GEO: Component's geographical position.
+@CAL_COMPONENT_FIELD_PERCENT: Component's percent completed value.
+@CAL_COMPONENT_FIELD_PRIORITY: Component's priority.
+@CAL_COMPONENT_FIELD_SUMMARY: Component's summary.
+@CAL_COMPONENT_FIELD_TRANSPARENCY: Component's transparency value.
+@CAL_COMPONENT_FIELD_URL: Component's URL.
+@CAL_COMPONENT_FIELD_HAS_ALARMS: Whether the component has any alarms.
+@CAL_COMPONENT_FIELD_ICON: Which icon to use for the component.
+@CAL_COMPONENT_FIELD_COMPLETE: Whether the component has been completed.
+@CAL_COMPONENT_FIELD_RECURRING: Whether the component has any recurrences.
+@CAL_COMPONENT_FIELD_OVERDUE: Whether the component is overdue.
+@CAL_COMPONENT_FIELD_COLOR: Which color to use for the component.
+@CAL_COMPONENT_FIELD_NUM_FIELDS: Total number of enumerated fields.
+
+<!-- ##### ENUM CalComponentClassification ##### -->
+ <para>
+ Values for the access classification property of a calendar
+ component.
+ </para>
+
+@CAL_COMPONENT_CLASS_NONE: Indicates that no access classification has
+ been set for the corresponding component.
+
+@CAL_COMPONENT_CLASS_PUBLIC: Public access.
+@CAL_COMPONENT_CLASS_PRIVATE: Private access.
+@CAL_COMPONENT_CLASS_CONFIDENTIAL: Confidential access.
+
+@CAL_COMPONENT_CLASS_UNKNOWN: Unknown access classification value,
+ used when &libical; returns something #CalComponent does not know
+ about.
+
+<!-- ##### TYPEDEF CalComponentDateTime ##### -->
+ <para>
+ This structure defines a date and time value.
+ </para>
+
+
+<!-- ##### ENUM CalComponentPeriodType ##### -->
+ <para>
+ Defines how a period of time is specified.
+ </para>
+
+@CAL_COMPONENT_PERIOD_DATETIME: Indicates that the period is specified
+ by starting and ending date/time values.
+
+@CAL_COMPONENT_PERIOD_DURATION: Indicates that the period is specified
+ as a starding date/time and a duration value.
+
+<!-- ##### TYPEDEF CalComponentPeriod ##### -->
+ <para>
+ This structure defines a period of time.
+ </para>
+
+
+<!-- ##### TYPEDEF CalComponentText ##### -->
+ <para>
+ This structure defines the value of a text property that may have
+ an alternate representation parameter.
+ </para>
+
+
+<!-- ##### ENUM CalComponentTransparency ##### -->
+<para>
+
+</para>
+
+@CAL_COMPONENT_TRANSP_NONE:
+@CAL_COMPONENT_TRANSP_TRANSPARENT:
+@CAL_COMPONENT_TRANSP_OPAQUE:
+@CAL_COMPONENT_TRANSP_UNKNOWN:
+
+<!-- ##### STRUCT CalComponentAlarm ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT CalComponentPrivate ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION cal_component_gen_uid ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_clone ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_set_new_vtype ##### -->
+<para>
+
+</para>
+
+@comp:
+@type:
+
+
+<!-- ##### FUNCTION cal_component_set_icalcomponent ##### -->
+<para>
+
+</para>
+
+@comp:
+@icalcomp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_icalcomponent ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_vtype ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_as_string ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_commit_sequence ##### -->
+<para>
+
+</para>
+
+@comp:
+
+
+<!-- ##### FUNCTION cal_component_get_uid ##### -->
+<para>
+
+</para>
+
+@comp:
+@uid:
+
+
+<!-- ##### FUNCTION cal_component_set_uid ##### -->
+<para>
+
+</para>
+
+@comp:
+@uid:
+
+
+<!-- ##### FUNCTION cal_component_get_categories_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@categ_list:
+
+
+<!-- ##### FUNCTION cal_component_set_categories_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@categ_list:
+
+
+<!-- ##### FUNCTION cal_component_get_classification ##### -->
+<para>
+
+</para>
+
+@comp:
+@classif:
+
+
+<!-- ##### FUNCTION cal_component_set_classification ##### -->
+<para>
+
+</para>
+
+@comp:
+@classif:
+
+
+<!-- ##### FUNCTION cal_component_get_comment_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@text_list:
+
+
+<!-- ##### FUNCTION cal_component_set_comment_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@text_list:
+
+
+<!-- ##### FUNCTION cal_component_get_completed ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_set_completed ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_get_created ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_set_created ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_get_description_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@text_list:
+
+
+<!-- ##### FUNCTION cal_component_set_description_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@text_list:
+
+
+<!-- ##### FUNCTION cal_component_get_dtend ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_set_dtend ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_get_dtstamp ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_set_dtstamp ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_get_dtstart ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_set_dtstart ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_get_due ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_set_due ##### -->
+<para>
+
+</para>
+
+@comp:
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_get_exdate_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@exdate_list:
+
+
+<!-- ##### FUNCTION cal_component_set_exdate_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@exdate_list:
+
+
+<!-- ##### FUNCTION cal_component_get_exrule_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_set_exrule_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_get_geo ##### -->
+<para>
+
+</para>
+
+@comp:
+@geo:
+
+
+<!-- ##### FUNCTION cal_component_set_geo ##### -->
+<para>
+
+</para>
+
+@comp:
+@geo:
+
+
+<!-- ##### FUNCTION cal_component_get_last_modified ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_set_last_modified ##### -->
+<para>
+
+</para>
+
+@comp:
+@t:
+
+
+<!-- ##### FUNCTION cal_component_get_percent ##### -->
+<para>
+
+</para>
+
+@comp:
+@percent:
+
+
+<!-- ##### FUNCTION cal_component_set_percent ##### -->
+<para>
+
+</para>
+
+@comp:
+@percent:
+
+
+<!-- ##### FUNCTION cal_component_get_priority ##### -->
+<para>
+
+</para>
+
+@comp:
+@priority:
+
+
+<!-- ##### FUNCTION cal_component_set_priority ##### -->
+<para>
+
+</para>
+
+@comp:
+@priority:
+
+
+<!-- ##### FUNCTION cal_component_get_rdate_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@period_list:
+
+
+<!-- ##### FUNCTION cal_component_set_rdate_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@period_list:
+
+
+<!-- ##### FUNCTION cal_component_has_rdates ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_rrule_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_set_rrule_list ##### -->
+<para>
+
+</para>
+
+@comp:
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_has_rrules ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_sequence ##### -->
+<para>
+
+</para>
+
+@comp:
+@sequence:
+
+
+<!-- ##### FUNCTION cal_component_set_sequence ##### -->
+<para>
+
+</para>
+
+@comp:
+@sequence:
+
+
+<!-- ##### FUNCTION cal_component_get_summary ##### -->
+<para>
+
+</para>
+
+@comp:
+@summary:
+
+
+<!-- ##### FUNCTION cal_component_set_summary ##### -->
+<para>
+
+</para>
+
+@comp:
+@summary:
+
+
+<!-- ##### FUNCTION cal_component_get_transparency ##### -->
+<para>
+
+</para>
+
+@comp:
+@transp:
+
+
+<!-- ##### FUNCTION cal_component_set_transparency ##### -->
+<para>
+
+</para>
+
+@comp:
+@transp:
+
+
+<!-- ##### FUNCTION cal_component_get_url ##### -->
+<para>
+
+</para>
+
+@comp:
+@url:
+
+
+<!-- ##### FUNCTION cal_component_set_url ##### -->
+<para>
+
+</para>
+
+@comp:
+@url:
+
+
+<!-- ##### FUNCTION cal_component_get_pilot_id ##### -->
+<para>
+
+</para>
+
+@comp:
+@pilot_id:
+
+
+<!-- ##### FUNCTION cal_component_set_pilot_id ##### -->
+<para>
+
+</para>
+
+@comp:
+@pilot_id:
+
+
+<!-- ##### FUNCTION cal_component_get_pilot_status ##### -->
+<para>
+
+</para>
+
+@comp:
+@pilot_status:
+
+
+<!-- ##### FUNCTION cal_component_set_pilot_status ##### -->
+<para>
+
+</para>
+
+@comp:
+@pilot_status:
+
+
+<!-- ##### FUNCTION cal_component_free_categories_list ##### -->
+<para>
+
+</para>
+
+@categ_list:
+
+
+<!-- ##### FUNCTION cal_component_free_datetime ##### -->
+<para>
+
+</para>
+
+@dt:
+
+
+<!-- ##### FUNCTION cal_component_free_exdate_list ##### -->
+<para>
+
+</para>
+
+@exdate_list:
+
+
+<!-- ##### FUNCTION cal_component_free_geo ##### -->
+<para>
+
+</para>
+
+@geo:
+
+
+<!-- ##### FUNCTION cal_component_free_icaltimetype ##### -->
+<para>
+
+</para>
+
+@t:
+
+
+<!-- ##### FUNCTION cal_component_free_percent ##### -->
+<para>
+
+</para>
+
+@percent:
+
+
+<!-- ##### FUNCTION cal_component_free_priority ##### -->
+<para>
+
+</para>
+
+@priority:
+
+
+<!-- ##### FUNCTION cal_component_free_period_list ##### -->
+<para>
+
+</para>
+
+@period_list:
+
+
+<!-- ##### FUNCTION cal_component_free_recur_list ##### -->
+<para>
+
+</para>
+
+@recur_list:
+
+
+<!-- ##### FUNCTION cal_component_free_sequence ##### -->
+<para>
+
+</para>
+
+@sequence:
+
+
+<!-- ##### FUNCTION cal_component_free_text_list ##### -->
+<para>
+
+</para>
+
+@text_list:
+
+
+<!-- ##### ENUM CalComponentAlarmAction ##### -->
+<para>
+
+</para>
+
+@CAL_COMPONENT_ALARM_NONE:
+@CAL_COMPONENT_ALARM_AUDIO:
+@CAL_COMPONENT_ALARM_DISPLAY:
+@CAL_COMPONENT_ALARM_EMAIL:
+@CAL_COMPONENT_ALARM_PROCEDURE:
+@CAL_COMPONENT_ALARM_UNKNOWN:
+
+<!-- ##### ENUM CalComponentAlarmTriggerType ##### -->
+<para>
+
+</para>
+
+@CAL_COMPONENT_ALARM_TRIGGER_RELATIVE:
+@CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE:
+
+<!-- ##### ENUM CalComponentAlarmTriggerRelated ##### -->
+<para>
+
+</para>
+
+@CAL_COMPONENT_ALARM_TRIGGER_RELATED_START:
+@CAL_COMPONENT_ALARM_TRIGGER_RELATED_END:
+
+<!-- ##### TYPEDEF CalComponentAlarmTrigger ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION cal_component_get_first_alarm ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_get_next_alarm ##### -->
+<para>
+
+</para>
+
+@comp:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_component_alarm_free ##### -->
+<para>
+
+</para>
+
+@alarm:
+
+
+<!-- ##### FUNCTION cal_component_alarm_get_action ##### -->
+<para>
+
+</para>
+
+@alarm:
+@action:
+
+
+<!-- ##### FUNCTION cal_component_alarm_set_action ##### -->
+<para>
+
+</para>
+
+@alarm:
+@action:
+
+
+<!-- ##### FUNCTION cal_component_alarm_get_trigger ##### -->
+<para>
+
+</para>
+
+@alarm:
+@trigger:
+
+
+<!-- ##### FUNCTION cal_component_alarm_set_trigger ##### -->
+<para>
+
+</para>
+
+@alarm:
+@trigger:
+
+
+<!-- ##### FUNCTION cal_component_alarm_free_trigger ##### -->
+<para>
+
+</para>
+
+@trigger:
+
+
+<!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../../../evolution-devel-guide.sgml" "book" "refsect2" "")
+End:
+-->
diff --git a/help/devel/calendar/cal-util/tmpl/cal-recur.sgml b/help/devel/calendar/cal-util/tmpl/cal-recur.sgml
new file mode 100644
index 0000000000..703f8b2b85
--- /dev/null
+++ b/help/devel/calendar/cal-util/tmpl/cal-recur.sgml
@@ -0,0 +1,88 @@
+<!-- ##### SECTION Title ##### -->
+cal-recur
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM CalRecurType ##### -->
+<para>
+
+</para>
+
+@CAL_RECUR_YEARLY:
+@CAL_RECUR_MONTHLY:
+@CAL_RECUR_WEEKLY:
+@CAL_RECUR_DAILY:
+@CAL_RECUR_HOURLY:
+@CAL_RECUR_MINUTELY:
+@CAL_RECUR_SECONDLY:
+
+<!-- ##### TYPEDEF CalRecurrence ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT CalObjTime ##### -->
+<para>
+
+</para>
+
+@year:
+@month:
+@day:
+@hour:
+@minute:
+@second:
+
+<!-- ##### USER_FUNCTION CalRecurInstanceFn ##### -->
+<para>
+
+</para>
+
+@comp:
+@instance_start:
+@instace_end:
+@data:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_recur_generate_instances ##### -->
+<para>
+
+</para>
+
+@comp:
+@start:
+@end:
+@cb:
+@cb_data:
+
+
+<!-- ##### FUNCTION cal_recur_from_icalrecurrencetype ##### -->
+<para>
+
+</para>
+
+@ir:
+@Returns:
+
+
+<!-- ##### FUNCTION cal_recur_free ##### -->
+<para>
+
+</para>
+
+@r:
+
+
diff --git a/help/devel/calendar/cal-util/tmpl/cal-util.sgml b/help/devel/calendar/cal-util/tmpl/cal-util.sgml
new file mode 100644
index 0000000000..8d4516c2ec
--- /dev/null
+++ b/help/devel/calendar/cal-util/tmpl/cal-util.sgml
@@ -0,0 +1,62 @@
+<!-- ##### SECTION Title ##### -->
+cal-util
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### TYPEDEF CalObjInstance ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION cal_obj_instance_list_free ##### -->
+<para>
+
+</para>
+
+@list:
+
+
+<!-- ##### TYPEDEF CalAlarmInstance ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION cal_alarm_instance_list_free ##### -->
+<para>
+
+</para>
+
+@list:
+
+
+<!-- ##### ENUM CalObjType ##### -->
+<para>
+
+</para>
+
+@CALOBJ_TYPE_EVENT:
+@CALOBJ_TYPE_TODO:
+@CALOBJ_TYPE_JOURNAL:
+@CALOBJ_TYPE_ANY:
+
+<!-- ##### FUNCTION cal_obj_uid_list_free ##### -->
+<para>
+
+</para>
+
+@list:
+
+
diff --git a/help/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml b/help/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/help/devel/calendar/cal-util/tmpl/evolution-cal-util-unused.sgml
diff --git a/help/devel/calendar/cal-util/tmpl/timeutil.sgml b/help/devel/calendar/cal-util/tmpl/timeutil.sgml
new file mode 100644
index 0000000000..3b62fbba3f
--- /dev/null
+++ b/help/devel/calendar/cal-util/tmpl/timeutil.sgml
@@ -0,0 +1,260 @@
+<!-- ##### SECTION Title ##### -->
+timeutil
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION time_from_icaltimetype ##### -->
+<para>
+
+</para>
+
+@itt:
+@Returns:
+
+
+<!-- ##### FUNCTION time_from_isodate ##### -->
+<para>
+
+</para>
+
+@str:
+@Returns:
+
+
+<!-- ##### FUNCTION time_from_start_duration ##### -->
+<para>
+
+</para>
+
+@start:
+@duration:
+@Returns:
+
+
+<!-- ##### FUNCTION isodate_from_time_t ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION get_time_t_hour ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION isodiff_to_secs ##### -->
+<para>
+
+</para>
+
+@str:
+@Returns:
+
+
+<!-- ##### FUNCTION isodiff_from_secs ##### -->
+<para>
+
+</para>
+
+@secs:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_minutes ##### -->
+<para>
+
+</para>
+
+@time:
+@minutes:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_day ##### -->
+<para>
+
+</para>
+
+@time:
+@days:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_week ##### -->
+<para>
+
+</para>
+
+@time:
+@weeks:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_month ##### -->
+<para>
+
+</para>
+
+@time:
+@months:
+@Returns:
+
+
+<!-- ##### FUNCTION time_add_year ##### -->
+<para>
+
+</para>
+
+@time:
+@years:
+@Returns:
+
+
+<!-- ##### FUNCTION format_simple_hour ##### -->
+<para>
+
+</para>
+
+@hour:
+@use_am_pm:
+@Returns:
+
+
+<!-- ##### FUNCTION time_days_in_month ##### -->
+<para>
+
+</para>
+
+@year:
+@month:
+@Returns:
+
+
+<!-- ##### FUNCTION time_from_day ##### -->
+<para>
+
+</para>
+
+@year:
+@month:
+@day:
+@Returns:
+
+
+<!-- ##### FUNCTION time_day_hour ##### -->
+<para>
+
+</para>
+
+@t:
+@hour:
+@Returns:
+
+
+<!-- ##### FUNCTION time_year_begin ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_year_end ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_month_begin ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_month_end ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_week_begin ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_week_end ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_day_begin ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION time_day_end ##### -->
+<para>
+
+</para>
+
+@t:
+@Returns:
+
+
+<!-- ##### FUNCTION parse_date ##### -->
+<para>
+
+</para>
+
+@str:
+@Returns:
+
+
+<!-- ##### FUNCTION print_time_t ##### -->
+<para>
+
+</para>
+
+@t:
+
+
diff --git a/help/devel/calendar/public-reference.sgml b/help/devel/calendar/public-reference.sgml
index afe3b85628..f8aa6e848d 100644
--- a/help/devel/calendar/public-reference.sgml
+++ b/help/devel/calendar/public-reference.sgml
@@ -10,6 +10,10 @@
</partintro>
&CalClient;
+ &CalComponent;
+ &cal-util;
+ &cal-recur;
+ &timeutil;
</reference>
<!--
diff --git a/help/devel/calendar/reference.sgml b/help/devel/calendar/reference.sgml
index afe3b85628..f8aa6e848d 100644
--- a/help/devel/calendar/reference.sgml
+++ b/help/devel/calendar/reference.sgml
@@ -10,6 +10,10 @@
</partintro>
&CalClient;
+ &CalComponent;
+ &cal-util;
+ &cal-recur;
+ &timeutil;
</reference>
<!--
diff --git a/help/devel/evolution-devel-guide.sgml b/help/devel/evolution-devel-guide.sgml
index f6b942b3d8..ca80ec533a 100644
--- a/help/devel/evolution-devel-guide.sgml
+++ b/help/devel/evolution-devel-guide.sgml
@@ -3,7 +3,12 @@
<!entity calendar-architecture SYSTEM "calendar/architecture.sgml">
<!entity calendar-reference SYSTEM "calendar/reference.sgml">
<!entity CalClient SYSTEM "calendar/cal-client/sgml/cal-client.sgml">
+<!entity CalComponent SYSTEM "calendar/cal-util/sgml/cal-component.sgml">
+<!entity cal-util SYSTEM "calendar/cal-util/sgml/cal-util.sgml">
+<!entity cal-recur SYSTEM "calendar/cal-util/sgml/cal-recur.sgml">
+<!entity timeutil SYSTEM "calendar/cal-util/sgml/timeutil.sgml">
<!entity PCS "<acronym>PCS</acronym>">
+<!entity libical "<application>libical</application>">
]>
<book>