<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="EDataServer" version="1.2"/>
  <include name="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="libxml2" version="2.0"/>
  <package name="libecal-1.2"/>
  <c:include name="libecal/e-cal.h"/>
  <namespace name="ECalendar"
             version="1.2"
             shared-library="libecal-1.2.so.13.2,libedataserver-1.2.so.16.0"
             c:identifier-prefixes="E"
             c:symbol-prefixes="e">
    <class name="Cal"
           c:symbol-prefix="cal"
           c:type="ECal"
           parent="GObject.Object"
           glib:type-name="ECal"
           glib:get-type="e_cal_get_type"
           glib:type-struct="CalClass">
      <constructor name="new"
                   c:identifier="e_cal_new"
                   deprecated="Use e_cal_client_new() instead."
                   deprecated-version="3.2">
        <doc xml:whitespace="preserve">Creates a new calendar client. This does not open the calendar itself,
for that, #e_cal_open or #e_cal_open_async needs to be called.

not be constructed because it could not contact the calendar server.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly-created calendar client, or NULL if the client could</doc>
          <type name="Cal" c:type="ECal*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #ESource to be used for the client.</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the client.</doc>
            <type name="CalSourceType" c:type="ECalSourceType"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_uri"
                   c:identifier="e_cal_new_from_uri"
                   deprecated="Use e_cal_client_new_from_uri() instead."
                   deprecated-version="3.2">
        <doc xml:whitespace="preserve">Creates a new calendar client. This does not open the calendar itself,
for that, #e_cal_open or #e_cal_open_async needs to be called.

not be constructed because it could not contact the calendar server.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly-created calendar client, or NULL if the client could</doc>
          <type name="Cal" c:type="ECal*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">The URI pointing to the calendar to open.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the client.</doc>
            <type name="CalSourceType" c:type="ECalSourceType"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_system_calendar"
                   c:identifier="e_cal_new_system_calendar"
                   deprecated="Use e_cal_client_new_system() instead."
                   deprecated-version="3.2">
        <doc xml:whitespace="preserve">Create a calendar client for the system calendar, which should always be
present in all Evolution installations. This does not open the calendar
itself -- for that use e_cal_open() or e_cal_open_async().

not be constructed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly-created calendar client, or %NULL if the client could</doc>
          <type name="Cal" c:type="ECal*"/>
        </return-value>
      </constructor>
      <constructor name="new_system_memos"
                   c:identifier="e_cal_new_system_memos"
                   deprecated="Use e_cal_client_new_system() instead."
                   deprecated-version="3.2">
        <doc xml:whitespace="preserve">Create a calendar client for the system memo list, which should always
be present in all Evolution installations. This does not open the memo
list itself -- for that use e_cal_open() or e_cal_open_async().

not be constructed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly-created calendar client, or %NULL if the client could</doc>
          <type name="Cal" c:type="ECal*"/>
        </return-value>
      </constructor>
      <constructor name="new_system_tasks"
                   c:identifier="e_cal_new_system_tasks"
                   deprecated="Use e_cal_client_new_system() instead."
                   deprecated-version="3.2">
        <doc xml:whitespace="preserve">Create a calendar client for the system task list, which should always
be present in all Evolution installations. This does not open the task
list itself -- for that use e_cal_open() or e_cal_open_async().

not be constructed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly-created calendar client, or %NULL if the client could</doc>
          <type name="Cal" c:type="ECal*"/>
        </return-value>
      </constructor>
      <function name="check_timezones"
                c:identifier="e_cal_check_timezones"
                version="2.24"
                introspectable="0"
                deprecated="Use e_cal_client_check_timezones() instead."
                deprecated-version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">This function cleans up VEVENT, VJOURNAL, VTODO and VTIMEZONE
items which are to be imported into Evolution.

Using VTIMEZONE definitions is problematic because they cannot be
updated properly when timezone definitions change. They are also
incomplete (for compatibility reason only one set of rules for
summer saving changes can be included, even if different rules
apply in different years). This function looks for matches of the
used TZIDs against system timezones and replaces such TZIDs with
the corresponding system timezone. This works for TZIDs containing
a location (found via a fuzzy string search) and for Outlook TZIDs
(via a hard-coded lookup table).

Some programs generate broken meeting invitations with TZID, but
without including the corresponding VTIMEZONE. Importing such
invitations unchanged causes problems later on (meeting displayed
incorrectly, #e_cal_get_component_as_string fails). The situation
where this occurred in the past (found by a SyncEvolution user) is
now handled via the location based mapping.

If this mapping fails, this function also deals with VTIMEZONE
conflicts: such conflicts occur when the calendar already contains
an old VTIMEZONE definition with the same TZID, but different
summer saving rules. Replacing the VTIMEZONE potentially breaks
displaying of old events, whereas not replacing it breaks the new
events (the behavior in Evolution &lt;= 2.22.1).

The way this problem is resolved is by renaming the new VTIMEZONE
definition until the TZID is unique. A running count is appended to
the TZID. All items referencing the renamed TZID are adapted
accordingly.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a VCALENDAR containing a list of VTIMEZONE and arbitrary other components, in arbitrary order: these other components are modified by this call</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="comps" transfer-ownership="none">
            <doc xml:whitespace="preserve">a list of icalcomponent instances which also have to be patched; may be NULL</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="tzlookup" transfer-ownership="none">
            <doc xml:whitespace="preserve">a callback function which is called to retrieve a calendar's VTIMEZONE definition; the returned definition is *not* freed by e_cal_check_timezones() (to be compatible with e_cal_get_timezone()); NULL indicates that no such timezone exists or an error occurred</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="custom" transfer-ownership="none">
            <doc xml:whitespace="preserve">an arbitrary pointer which is passed through to the tzlookup function</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_alarms"
                c:identifier="e_cal_free_alarms"
                introspectable="0"
                deprecated="This function has been dropped completely."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Frees a list of #ECalComponentAlarms structures as returned by
e_cal_get_alarms_in_range().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="comp_alarms" transfer-ownership="none">
            <doc xml:whitespace="preserve">A list of #ECalComponentAlarms structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_change_list"
                c:identifier="e_cal_free_change_list"
                introspectable="0"
                deprecated="Use () instead."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Free a list of changes as returned by #e_cal_get_changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of changes to be freed.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_object_list"
                c:identifier="e_cal_free_object_list"
                introspectable="0"
                deprecated="Use e_cal_client_free_icalcomp_slist() instead."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Frees a list of objects as returned by #e_cal_get_object_list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of objects to be freed.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="get_error_message"
                c:identifier="e_cal_get_error_message"
                deprecated="Use e_cal_client_error_to_string() instead."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Gets an error message for the given status code.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the error message.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <doc xml:whitespace="preserve">A status code.</doc>
            <type name="CalendarStatus" c:type="ECalendarStatus"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_sources"
                c:identifier="e_cal_get_sources"
                deprecated="Use e_cal_client_get_sources() instead."
                deprecated-version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">Gets the list of sources defined in the configuration for the given @type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sources" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for list of sources.</doc>
            <type name="EDataServer.SourceList" c:type="ESourceList**"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the sources to get.</doc>
            <type name="CalSourceType" c:type="ECalSourceType"/>
          </parameter>
        </parameters>
      </function>
      <function name="marshal_VOID__ENUM_ENUM"
                c:identifier="e_cal_marshal_VOID__ENUM_ENUM">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="closure" transfer-ownership="none">
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="return_value" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="n_param_values" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="param_values" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="invocation_hint" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="marshal_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="marshal_VOID__STRING_UINT"
                c:identifier="e_cal_marshal_VOID__STRING_UINT">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="closure" transfer-ownership="none">
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="return_value" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="n_param_values" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="param_values" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="invocation_hint" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="marshal_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="marshal_VOID__UINT_STRING"
                c:identifier="e_cal_marshal_VOID__UINT_STRING">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="closure" transfer-ownership="none">
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="return_value" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="n_param_values" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="param_values" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="invocation_hint" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="marshal_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="match_tzid"
                c:identifier="e_cal_match_tzid"
                version="2.24">
        <doc xml:whitespace="preserve">Matches @tzid against the system timezone definitions
and returns the matching TZID, or %NULL if none found</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">a timezone ID</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="open_default"
                c:identifier="e_cal_open_default"
                introspectable="0"
                deprecated="Use e_cal_client_new_default_calendar() instead"
                deprecated-version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">Opens the default calendar.


and open it on your own.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it opened correctly, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="ecal" transfer-ownership="none">
            <doc xml:whitespace="preserve">A calendar client.</doc>
            <type name="Cal" c:type="ECal**"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the calendar.</doc>
            <type name="CalSourceType" c:type="ECalSourceType"/>
          </parameter>
          <parameter name="func" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Authentication function.</doc>
            <type name="CalAuthFunc" c:type="ECalAuthFunc"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the authentication function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="recur_ensure_end_dates"
                c:identifier="e_cal_recur_ensure_end_dates"
                version="2.32"
                introspectable="0">
        <doc xml:whitespace="preserve">This recalculates the end dates for recurrence &amp; exception rules which use
the COUNT property. If @refresh is %TRUE it will recalculate all enddates
for rules which use COUNT. If @refresh is %FALSE, it will only calculate
the enddate if it hasn't already been set. It returns %TRUE if the component
was changed, i.e. if the component should be saved at some point.
We store the enddate in the "X-EVOLUTION-ENDDATE" parameter of the RRULE
or EXRULE.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="refresh" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="tz_cb" transfer-ownership="none" closure="3">
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="tz_cb_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="recur_generate_instances"
                c:identifier="e_cal_recur_generate_instances"
                introspectable="0">
        <doc xml:whitespace="preserve">Calls the given callback function for each occurrence of the event that
intersects the range between the given @start and @end times (the end time is
not included). Note that the occurrences may start before the given start
time.

If the callback routine returns FALSE the occurrence generation stops.

Both start and end can be -1, in which case we start at the events first
instance and continue until it ends, or forever if it has no enddate.

The tz_cb is used to resolve references to timezones. It is passed a TZID
and should return the icaltimezone* corresponding to that TZID. We need to
do this as we access timezones in different ways on the client &amp; server.

The default_timezone argument is used for DTSTART or DTEND properties that
are DATE values or do not have a TZID (i.e. floating times).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A calendar component object.</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Range start time.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">Range end time.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb" transfer-ownership="none" closure="4">
            <doc xml:whitespace="preserve">Callback function.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="tz_cb" transfer-ownership="none" closure="6">
            <doc xml:whitespace="preserve">Callback for retrieving timezones.</doc>
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="tz_cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the timezone callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="default_timezone" transfer-ownership="none">
            <doc xml:whitespace="preserve">Default timezone to use when a timezone cannot be found.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </function>
      <function name="recur_obtain_enddate"
                c:identifier="e_cal_recur_obtain_enddate"
                introspectable="0">
        <return-value transfer-ownership="none">
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <parameter name="ir" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="prop" transfer-ownership="none">
            <type c:type="icalproperty*"/>
          </parameter>
          <parameter name="zone" transfer-ownership="none">
            <type c:type="icaltimezone*"/>
          </parameter>
          <parameter name="convert_end_date" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="resolve_tzid_cb"
                c:identifier="e_cal_resolve_tzid_cb"
                introspectable="0"
                deprecated="Use e_cal_client_resolve_tzid_cb() instead."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Resolves TZIDs for the recurrence generator.

it could not be found.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The timezone identified by the @tzid argument, or %NULL if</doc>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to resolve.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_default_source"
                c:identifier="e_cal_set_default_source"
                deprecated="Use e_cal_client_set_default_source() instead."
                deprecated-version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">Sets @source as the default source for the specified @type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #ESource</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">type of the source</doc>
            <type name="CalSourceType" c:type="ECalSourceType"/>
          </parameter>
        </parameters>
      </function>
      <function name="system_timezone_get_location"
                c:identifier="e_cal_system_timezone_get_location"
                version="2.28">
        <doc xml:whitespace="preserve">Returns system timezone location string, NULL on an error.
Returned pointer should be freed with g_free().

Note: Since 3.4 the returned timezone location is either NULL or
an equivalent within known libical timezones.</doc>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </function>
      <function name="tzlookup_ecal"
                c:identifier="e_cal_tzlookup_ecal"
                version="2.24"
                introspectable="0"
                deprecated="Use e_cal_client_tzlookup() instead."
                deprecated-version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">An implementation of the tzlookup callback which clients
can use. Calls e_cal_get_timezone().</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="custom" transfer-ownership="none">
            <doc xml:whitespace="preserve">must be a valid ECal pointer</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="tzlookup_icomp"
                c:identifier="e_cal_tzlookup_icomp"
                version="2.24"
                introspectable="0"
                deprecated="Use e_cal_client_tzlookup_icomp() instead."
                deprecated-version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">An implementation of the tzlookup callback which backends
like the file backend can use. Searches for the timezone
in the component list.</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="custom" transfer-ownership="none">
            <doc xml:whitespace="preserve">must be a icalcomponent pointer which contains either a VCALENDAR with VTIMEZONEs or VTIMEZONES directly</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_add_timezones_from_component"
                c:identifier="e_cal_util_add_timezones_from_component"
                introspectable="0">
        <doc xml:whitespace="preserve">Adds VTIMEZONE components to a VCALENDAR for all tzid's
in the given @icalcomp.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="vcal_comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A VCALENDAR component.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An iCalendar component, of any type.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_alarms"
                c:identifier="e_cal_util_component_has_alarms"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks whether an #icalcomponent has any alarm.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it has alarms, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_attendee"
                c:identifier="e_cal_util_component_has_attendee"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks if an #icalcomponent has any attendees.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are attendees, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_organizer"
                c:identifier="e_cal_util_component_has_organizer"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks whether an #icalcomponent has an organizer or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there is an organizer, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_rdates"
                c:identifier="e_cal_util_component_has_rdates"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks if an #icalcomponent has recurrence dates.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are recurrence dates, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_recurrences"
                c:identifier="e_cal_util_component_has_recurrences"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks if an #icalcomponent has recurrence dates or rules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are recurrence dates/rules, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_rrules"
                c:identifier="e_cal_util_component_has_rrules"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks if an #icalcomponent has recurrence rules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are recurrence rules, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_is_instance"
                c:identifier="e_cal_util_component_is_instance"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks whether an #icalcomponent is an instance of a recurring appointment or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it is an instance, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_construct_instance"
                c:identifier="e_cal_util_construct_instance"
                introspectable="0">
        <doc xml:whitespace="preserve">This checks that @rid indicates a valid recurrence of @icalcomp, and
if so, generates a copy of @comp containing a RECURRENCE-ID of @rid.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the instance, or %NULL.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A recurring #icalcomponent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">The RECURRENCE-ID to construct a component for</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_event_dates_match"
                c:identifier="e_cal_util_event_dates_match"
                introspectable="0">
        <doc xml:whitespace="preserve">Compare the dates of two #icalcomponent's to check if they match.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the dates of both components match, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp1" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="icalcomp2" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_generate_alarms_for_comp"
                c:identifier="e_cal_util_generate_alarms_for_comp"
                introspectable="0">
        <doc xml:whitespace="preserve">Generates alarm instances for a calendar component.  Returns the instances
structure, or NULL if no alarm instances occurred in the specified time
range.

the given time tange. The list of alarms should be freed by using the
#e_cal_component_free_alarm_list function.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a list of all the alarms found for the given component on</doc>
          <type name="CalComponentAlarms" c:type="ECalComponentAlarms*"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The #ECalComponent to generate alarms from.</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="omit" transfer-ownership="none">
            <doc xml:whitespace="preserve">Alarm types to omit</doc>
            <type name="CalComponentAlarmAction"
                  c:type="ECalComponentAlarmAction*"/>
          </parameter>
          <parameter name="resolve_tzid" transfer-ownership="none" closure="5">
            <doc xml:whitespace="preserve">Callback for resolving timezones</doc>
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Data to be passed to the resolve_tzid callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="default_timezone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone used to resolve DATE and floating DATE-TIME values.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_generate_alarms_for_list"
                c:identifier="e_cal_util_generate_alarms_for_list"
                introspectable="0">
        <doc xml:whitespace="preserve">Iterates through all the components in the @comps list and generates alarm
instances for them; putting them in the @comp_alarms list.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the number of elements it added to the list.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="comps" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponent's.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="omit" transfer-ownership="none">
            <doc xml:whitespace="preserve">Alarm types to omit</doc>
            <type name="CalComponentAlarmAction"
                  c:type="ECalComponentAlarmAction*"/>
          </parameter>
          <parameter name="comp_alarms" transfer-ownership="none">
            <doc xml:whitespace="preserve">List to be returned</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="resolve_tzid" transfer-ownership="none" closure="6">
            <doc xml:whitespace="preserve">Callback for resolving timezones</doc>
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Data to be passed to the resolve_tzid callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="default_timezone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone used to resolve DATE and floating DATE-TIME values.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_get_component_occur_times"
                c:identifier="e_cal_util_get_component_occur_times"
                version="2.32"
                introspectable="0">
        <doc xml:whitespace="preserve">Find out when the component starts and stops, being careful about
recurrences.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <type name="glong" c:type="time_t*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <type name="glong" c:type="time_t*"/>
          </parameter>
          <parameter name="tz_cb" transfer-ownership="none" closure="4">
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="tz_cb_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="default_timezone" transfer-ownership="none">
            <type c:type="icaltimezone*"/>
          </parameter>
          <parameter name="kind" transfer-ownership="none">
            <type c:type="icalcomponent_kind"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_get_system_timezone"
                c:identifier="e_cal_util_get_system_timezone"
                version="2.28"
                introspectable="0">
        <doc xml:whitespace="preserve">Returns icaltimezone object of the system timezone. NULL on an error.
Returned pointer is part of the built-in timezones, thus do not free it.</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
      </function>
      <function name="util_get_system_timezone_location"
                c:identifier="e_cal_util_get_system_timezone_location"
                version="2.28">
        <doc xml:whitespace="preserve">Returns system timezone location string, NULL on an error.
Returned pointer should be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </function>
      <function name="util_new_component"
                c:identifier="e_cal_util_new_component"
                introspectable="0">
        <doc xml:whitespace="preserve">Creates a new #icalcomponent of the specified kind.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the newly created component.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">Kind of the component to create.</doc>
            <type c:type="icalcomponent_kind"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_new_top_level"
                c:identifier="e_cal_util_new_top_level"
                introspectable="0">
        <doc xml:whitespace="preserve">Creates a new VCALENDAR component.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the newly created top level component.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
      </function>
      <function name="util_parse_ics_file"
                c:identifier="e_cal_util_parse_ics_file"
                introspectable="0">
        <doc xml:whitespace="preserve">Parses the given file, and, if it contains a valid iCalendar object,
parse it and return a new #icalcomponent.

contain a valid iCalendar object.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a newly created #icalcomponent or NULL if the file doesn't</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the file to be parsed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_parse_ics_string"
                c:identifier="e_cal_util_parse_ics_string"
                introspectable="0">
        <doc xml:whitespace="preserve">Parses an iCalendar string and returns a new #icalcomponent representing
that string. Note that this function deals with multiple VCALENDAR's in the
string, something that Mozilla used to do and which libical does not
support.

valid iCalendar string.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a newly created #icalcomponent or NULL if the string isn't a</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <doc xml:whitespace="preserve">iCalendar string to be parsed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_priority_from_string"
                c:identifier="e_cal_util_priority_from_string">
        <doc xml:whitespace="preserve">Converts a translated priority string to an iCalendar priority value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the priority (0-9) or -1 if the priority string is not valid.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <doc xml:whitespace="preserve">A string representing the PRIORITY value.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_priority_to_string"
                c:identifier="e_cal_util_priority_to_string">
        <doc xml:whitespace="preserve">Converts an iCalendar PRIORITY value to a translated string. Any unknown
priority value (i.e. not 0-9) will be returned as "" (undefined).

constant, so it should never be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a string representing the PRIORITY value. This value is a</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">Priority value.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_remove_instances"
                c:identifier="e_cal_util_remove_instances"
                introspectable="0">
        <doc xml:whitespace="preserve">Removes one or more instances from @comp according to @rid and @mod.

FIXME: should probably have a return value indicating whether or not
@icalcomp still has any instances</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A (recurring) #icalcomponent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">The base RECURRENCE-ID to remove</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">How to interpret @rid</doc>
            <type c:type="CalObjModType"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="backend_died">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="backend_error">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cal_opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="CalendarStatus" c:type="ECalendarStatus"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cal_opened_ex">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cal_set_mode" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="CalSetModeStatus" c:type="ECalSetModeStatus"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <type c:type="CalMode"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_timezone"
              c:identifier="e_cal_add_timezone"
              introspectable="0"
              deprecated="Use e_cal_client_add_timezone_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Add a VTIMEZONE object to the given calendar.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="izone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone to add.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_object"
              c:identifier="e_cal_create_object"
              introspectable="0"
              deprecated="Use e_cal_client_create_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to create the object specified by the @icalcomp
argument. Some backends would assign a specific UID to the newly created object,
in those cases that UID would be returned in the @uid argument.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The component to create.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the UID assigned to the new component by the calendar backend.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="discard_alarm"
              c:identifier="e_cal_discard_alarm"
              deprecated="Use e_cal_client_discard_alarm_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Tells the calendar backend to get rid of the alarm identified by the
@auid argument in @comp. Some backends might remove the alarm or
update internal information about the alarm be discarded, or, like
the file backend does, ignore the operation.

CALOBJ_MOD_ONLY_THIS is not supported in this call.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The component to discard the alarm from.</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier of the alarm to be discarded.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances"
              c:identifier="e_cal_generate_instances"
              introspectable="0"
              deprecated="Use e_cal_client_generate_instances() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Does a combination of #e_cal_get_object_list () and
#e_cal_recur_generate_instances().

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances_for_object"
              c:identifier="e_cal_generate_instances_for_object"
              introspectable="0"
              deprecated="Use e_cal_client_generate_instances_for_object() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Does a combination of #e_cal_get_object_list () and
#e_cal_recur_generate_instances(), like #e_cal_generate_instances(), but
for a single object.

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Object to generate instances from.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb" transfer-ownership="none" closure="4">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarm_email_address"
              c:identifier="e_cal_get_alarm_email_address"
              deprecated="Use e_client_get_backend_property_sync()"
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries the address to be used for alarms in a calendar client.

an error while contacting the backend.

with #CAL_BACKEND_PROPERTY_ALARM_EMAIL_ADDRESS instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE if there was</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="alarm_address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for alarm address.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarms_for_object"
              c:identifier="e_cal_get_alarms_for_object"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for the alarms of a particular object that trigger in the
specified range of time.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE on success, FALSE if the object was not found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="CalComponentId" c:type="ECalComponentId*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="alarms" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the component's alarm instances.  Will return NULL if no instances occur within the specified time range.  This should be freed using the e_cal_component_alarms_free() function.</doc>
            <type name="CalComponentAlarms" c:type="ECalComponentAlarms**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarms_in_range"
              c:identifier="e_cal_get_alarms_in_range"
              introspectable="0"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for the alarms that trigger in the specified range of
time.

using the #e_cal_free_alarms() function, or by freeing each element
separately with #e_cal_component_alarms_free() and then freeing the list with
#g_slist_free().</doc>
        <return-value>
          <doc xml:whitespace="preserve">A list of #ECalComponentAlarms structures.  This should be freed</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attachments_for_comp"
              c:identifier="e_cal_get_attachments_for_comp"
              introspectable="0"
              deprecated="Use e_cal_client_get_attachment_uris_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for a calendar component object based on its unique
identifier and gets the attachments for the component.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return the list of attachment uris.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_cal_address"
              c:identifier="e_cal_get_cal_address"
              deprecated="Use e_client_get_backend_property_sync()"
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries the calendar address associated with a calendar client.

was an error.

with #CAL_BACKEND_PROPERTY_CAL_EMAIL_ADDRESS instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE if there</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cal_address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for address information.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_changes"
              c:identifier="e_cal_get_changes"
              introspectable="0"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Returns a list of changes made to the calendar since a specific time. That time
is identified by the @change_id argument, which is used by the backend to
compute the changes done.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="change_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID to use for comparing changes.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="changes" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the list of changes.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_component_as_string"
              c:identifier="e_cal_get_component_as_string"
              introspectable="0"
              deprecated="Use e_cal_client_get_component_as_string() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Gets a calendar component as an iCalendar string, with a toplevel
VCALENDAR component and all VTIMEZONEs needed for the component.

failure. The string should be freed after use.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the component as a complete iCalendar string, or NULL on</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A calendar component object.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_object"
              c:identifier="e_cal_get_default_object"
              introspectable="0"
              deprecated="Use e_cal_client_get_default_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Retrives an #icalcomponent from the backend that contains the default
values for properties needed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the default object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_free_busy"
              c:identifier="e_cal_get_free_busy"
              introspectable="0"
              deprecated="Use e_cal_client_get_free_busy_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Gets free/busy information from the calendar server.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="users" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of users to retrieve free/busy information for.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="freebusy" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for VFREEBUSY objects.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_ldap_attribute"
              c:identifier="e_cal_get_ldap_attribute"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries the LDAP attribute for a calendar client.

error contacting the backend.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE if there was an</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="ldap_attribute" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the LDAP attribute.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_load_state"
              c:identifier="e_cal_get_load_state"
              deprecated="Use e_client_is_opened() on an #ECalClient instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries the state of loading of a calendar client.

not been loaded with #e_cal_open yet, whether it is being
loaded, or whether it is already loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #ECalLoadState value indicating whether the client has</doc>
          <type name="CalLoadState" c:type="ECalLoadState"/>
        </return-value>
      </method>
      <method name="get_local_attachment_store"
              c:identifier="e_cal_get_local_attachment_store"
              deprecated="Use e_cal_client_get_local_attachment_store() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries the URL where the calendar attachments are
serialized in the local filesystem. This enable clients
to operate with the reference to attachments rather than the data itself
unless it specifically uses the attachments for open/sending
operations.

local filesystem.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The URL where the attachments are serialized in the</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_object"
              c:identifier="e_cal_get_object"
              introspectable="0"
              deprecated="Use e_cal_client_get_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for a calendar component object based on its unique
identifier.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the calendar component object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list"
              c:identifier="e_cal_get_object_list"
              deprecated="Use e_cal_client_get_object_list_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @query argument. The objects will be returned in the @objects
argument, which is a list of #icalcomponent. When done, this list
should be freed by using the #e_cal_free_object_list function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="query" transfer-ownership="none">
            <doc xml:whitespace="preserve">Query string.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="objects"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for list of objects.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_as_comp"
              c:identifier="e_cal_get_object_list_as_comp"
              introspectable="0"
              deprecated="Use e_cal_client_get_object_list_as_comps_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @query argument. The objects will be returned in the @objects
argument, which is a list of #ECalComponent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="query" transfer-ownership="none">
            <doc xml:whitespace="preserve">Query string.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for list of objects.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_objects_for_uid"
              c:identifier="e_cal_get_objects_for_uid"
              introspectable="0"
              deprecated="Use e_cal_client_get_objects_for_uid_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for all calendar components with the given unique
ID. This will return any recurring event and all its detached recurrences.
For non-recurring events, it will just return the object with that ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the list of objects obtained from the backend.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_one_alarm_only"
              c:identifier="e_cal_get_one_alarm_only"
              deprecated="Use e_cal_client_check_one_alarm_only() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks if a calendar supports only one alarm per component.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar allows only one alarm, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_organizer_must_accept"
              c:identifier="e_cal_get_organizer_must_accept"
              deprecated="Use e_cal_client_check_organizer_must_accept() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks whether a calendar requires organizer to accept their attendance to
meetings.

otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar requires organizers to accept, FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_organizer_must_attend"
              c:identifier="e_cal_get_organizer_must_attend"
              deprecated="Use e_cal_client_check_organizer_must_attend() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks if a calendar forces organizers of meetings to be also attendees.

FALSE otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar forces organizers to attend meetings,</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_query"
              c:identifier="e_cal_get_query"
              deprecated="Use e_cal_client_get_view_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Creates a live query object from a loaded calendar.

components are added and removed from the query in the server.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A query object that will emit notification signals as calendar</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">S-expression representing the query.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="query"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the new query.</doc>
            <type name="CalView" c:type="ECalView**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_recurrences_no_master"
              c:identifier="e_cal_get_recurrences_no_master"
              deprecated="Use e_cal_client_check_recurrences_no_master() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks if the calendar has a master object for recurrences.

FALSE otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar has a master object for recurrences,</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_refresh_supported"
              c:identifier="e_cal_get_refresh_supported"
              version="2.30"
              deprecated="Use e_client_check_refresh_supported() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks whether a calendar supports explicit refreshing (see @e_cal_refresh).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar supports refreshing, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_save_schedules"
              c:identifier="e_cal_get_save_schedules"
              deprecated="Use e_cal_client_check_save_schedules() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks whether the calendar saves schedules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it saves schedules, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_source"
              c:identifier="e_cal_get_source"
              introspectable="0"
              deprecated="Use e_client_get_source() on an #ECalClient object instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries the source that is open in a calendar client.

loaded, or NULL if the ecal has not started a load request yet.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The source of the calendar that is already loaded or is being</doc>
          <type name="EDataServer.Source" c:type="ESource*"/>
        </return-value>
      </method>
      <method name="get_source_type"
              c:identifier="e_cal_get_source_type"
              deprecated="Use e_cal_client_get_source_type() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Gets the type of the calendar client.

of the calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">an #ECalSourceType value corresponding to the type</doc>
          <type name="CalSourceType" c:type="ECalSourceType"/>
        </return-value>
      </method>
      <method name="get_static_capability"
              c:identifier="e_cal_get_static_capability"
              deprecated="Use e_client_check_capability() on an #ECalClient object instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries the calendar for static capabilities.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the capability is supported, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cap" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the static capability to check.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_timezone"
              c:identifier="e_cal_get_timezone"
              introspectable="0"
              deprecated="Use e_cal_client_get_timezone_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Retrieves a timezone object from the calendar backend.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to retrieve.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the timezone.</doc>
            <type c:type="icaltimezone**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uri"
              c:identifier="e_cal_get_uri"
              deprecated="Use e_client_get_uri() on an #ECalClient object instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries the URI that is open in a calendar client.

loaded, or NULL if the client has not started a load request yet.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The URI of the calendar that is already loaded or is being</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="is_read_only"
              c:identifier="e_cal_is_read_only"
              deprecated="Use e_cal_client_is_readonly() on an #ECalClient object instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries whether the calendar client can perform modifications
on the calendar or not. Whether the backend is read only or not
is specified, on exit, in the @read_only argument.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE if there was an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="read_only" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for read only status.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_object"
              c:identifier="e_cal_modify_object"
              introspectable="0"
              deprecated="Use e_cal_client_modify_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to modify an existing object. If the object
does not exist on the calendar, an error will be returned.

For recurrent appointments, the @mod argument specifies what to modify,
if all instances (CALOBJ_MOD_ALL), a single instance (CALOBJ_MOD_THIS),
or a specific set of instances (CALOBJ_MOD_THISNADPRIOR and
CALOBJ_MOD_THISANDFUTURE).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Component to modify.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of modification.</doc>
            <type c:type="CalObjModType"/>
          </parameter>
        </parameters>
      </method>
      <method name="open"
              c:identifier="e_cal_open"
              deprecated="Use e_client_open_sync() on an #ECalClient object instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Makes a calendar client initiate a request to open a calendar.  The calendar
client will emit the "cal_opened" signal when the response from the server is
received. Since 3.0 is emitted also "cal_opened_ex" signal, which contains
a GError pointer from the open operation (NULL when no error occurred).
New signal deprecates the old "cal_opened" signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE on success, FALSE on failure to issue the open request.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="only_if_exists" transfer-ownership="none">
            <doc xml:whitespace="preserve">FALSE if the calendar should be opened even if there was no storage for it, i.e. to create a new calendar or load an existing one if it already exists.  TRUE if it should only try to load calendars that already exist.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_async"
              c:identifier="e_cal_open_async"
              deprecated="Use e_client_open()/e_client_open_finish()"
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Open the calendar asynchronously.  The calendar will emit the
"cal_opened" signal when the operation has completed.
Since 3.0 is emitted also "cal_opened_ex" signal, which contains
a GError pointer from the open operation (NULL when no error occurred).
New signal deprecates the old "cal_opened" signal.

Because this operation runs in another thread, any authentication
callback set on the calendar will be called from this other thread.
See #e_cal_set_auth_func() for details.

on an #ECalClient object instead.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="only_if_exists" transfer-ownership="none">
            <doc xml:whitespace="preserve">If TRUE, then only open the calendar if it already exists.  If FALSE, then create a new calendar if it doesn't already exist.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_objects"
              c:identifier="e_cal_receive_objects"
              introspectable="0"
              deprecated="Use e_cal_client_receive_objects_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Makes the backend receive the set of iCalendar objects specified in the
@icalcomp argument. This is used for iTIP confirmation/cancellation
messages for scheduled meetings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh"
              c:identifier="e_cal_refresh"
              version="2.30"
              deprecated="Use e_cal_client_refresh_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Invokes refresh on a calendar. See @e_cal_get_refresh_supported.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if calendar supports refresh and it was invoked, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="remove"
              c:identifier="e_cal_remove"
              deprecated="Use e_client_remove_sync() on an #ECalClient object instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Removes a calendar.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar was removed, FALSE if there was an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="remove_object"
              c:identifier="e_cal_remove_object"
              deprecated="Use e_cal_client_remove_object_sync() instead, with rid set to NULL and mod set to CALOBJ_MOD_ALL."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Asks a calendar to remove all components with the given UID.
If more control of the removal is desired, then use e_cal_remove_object_with_mod().
If the server is able to remove the component(s), all clients will
be notified and they will emit the "obj_removed" signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier of the calendar component to remove.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_object_with_mod"
              c:identifier="e_cal_remove_object_with_mod"
              introspectable="0"
              deprecated="Use e_cal_client_remove_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">This function allows the removal of instances of a recurrent
appointment. If what you want is to remove all instances, use
e_cal_remove_object instead.

By using a combination of the @uid, @rid and @mod arguments, you
can remove specific instances. @uid is mandatory.  Empty or NULL
@rid selects the parent appointment (the one with the recurrence
rule). A non-empty @rid selects the recurrence at the time specified
in @rid, using the same time zone as the parent appointment's start
time.

The exact semantic then depends on @mod. CALOBJ_MOD_THIS,
CALOBJ_MOD_THISANDPRIOR, CALOBJ_MOD_THISANDFUTURE and
CALOBJ_MOD_ALL ensure that the event does not recur at the selected
instance(s). This is done by removing any detached recurrence
matching the selection criteria and modifying the parent
appointment (adding EXDATE, adjusting recurrence rules, etc.).  It
is not an error if @uid+@rid do not match an existing instance.

If not all instances are removed, the client will get a
"obj_modified" signal for the parent appointment, while it will get
an "obj_removed" signal when all instances are removed.

CALOBJ_MOD_ONLY_THIS changes the semantic of CALOBJ_MOD_THIS: @uid
and @rid must select an existing instance. That instance is
removed without modifying the parent appointment. In other words,
e_cal_remove_object_with_mod(CALOBJ_MOD_ONLY_THIS) is the inverse
operation for adding a detached recurrence. The client is
always sent an "obj_removed" signal.

Note that not all backends support CALOBJ_MOD_ONLY_THIS. Check for
the CAL_STATIC_CAPABILITY_REMOVE_ONLY_THIS capability before using
it. Previous releases did not check consistently for unknown
@mod values, using it with them may have had unexpected results.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">UID of the object to remove.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence ID of the specific recurrence to remove.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of removal.</doc>
            <type c:type="CalObjModType"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_objects"
              c:identifier="e_cal_send_objects"
              introspectable="0"
              deprecated="Use e_cal_client_send_objects_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Requests a calendar backend to send meeting information to the specified list
of users.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="users" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of users to send the objects to.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="modified_icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the icalcomponent after all the operations performed.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auth_func"
              c:identifier="e_cal_set_auth_func"
              introspectable="0"
              deprecated="Use EClient::authenticate() signal on an #ECalClient instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Sets the given authentication function on the calendar client. This
function will be called any time the calendar server needs a
password for an operation associated with the calendar and should
be supplied before any calendar is opened.

When a calendar is opened asynchronously, the open function is
processed in a concurrent thread.  This means that the
authentication function will also be called from this thread.  As
such, the authentication callback cannot directly call any
functions that must be called from the main thread.  For example
any Gtk+ related functions, which must be proxied synchronously to
the main thread by the callback.

The authentication function has the following signature
(ECalAuthFunc):
gchar * auth_func (ECal *ecal,
const gchar *prompt,
const gchar *key,
gpointer user_data)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="func" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">The authentication function</doc>
            <type name="CalAuthFunc" c:type="ECalAuthFunc"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data to be used when calling the authentication function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default"
              c:identifier="e_cal_set_default"
              deprecated="Use e_cal_client_set_default() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Sets the #ESource in @ecal as default.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_default_timezone"
              c:identifier="e_cal_set_default_timezone"
              introspectable="0"
              deprecated="Use e_cal_client_set_default_timezone() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Sets the default timezone on the calendar. This should be called before opening
the calendar.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">A timezone object.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode"
              c:identifier="e_cal_set_mode"
              introspectable="0"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Switches online/offline mode on the calendar.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the switch was successful, FALSE if there was an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Mode to switch to.</doc>
            <type c:type="CalMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="uri_list"
              c:identifier="e_cal_uri_list"
              introspectable="0"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Retrieves a list of all calendar clients for the given mode.</doc>
        <return-value>
          <doc xml:whitespace="preserve">list of uris.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Mode of the URIs to get.</doc>
            <type c:type="CalMode"/>
          </parameter>
        </parameters>
      </method>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalPrivate" c:type="ECalPrivate*"/>
      </field>
      <glib:signal name="backend-died" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="backend-error" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cal-opened" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cal-opened-ex" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <type name="glong"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cal-set-mode" when="first" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="CalSetModeStatusEnum"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <callback name="CalAuthFunc" c:type="ECalAuthFunc">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="ecal" transfer-ownership="none">
          <type name="Cal" c:type="ECal*"/>
        </parameter>
        <parameter name="prompt" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="CalChange" c:type="ECalChange">
      <field name="comp" writable="1">
        <type name="CalComponent" c:type="ECalComponent*"/>
      </field>
      <field name="type" writable="1">
        <type name="CalChangeType" c:type="ECalChangeType"/>
      </field>
    </record>
    <bitfield name="CalChangeType" c:type="ECalChangeType">
      <member name="added" value="1" c:identifier="E_CAL_CHANGE_ADDED"/>
      <member name="modified" value="2" c:identifier="E_CAL_CHANGE_MODIFIED"/>
      <member name="deleted" value="4" c:identifier="E_CAL_CHANGE_DELETED"/>
    </bitfield>
    <record name="CalClass" c:type="ECalClass" glib:is-gtype-struct-for="Cal">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="cal_opened">
        <callback name="cal_opened">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="CalendarStatus" c:type="ECalendarStatus"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cal_opened_ex">
        <callback name="cal_opened_ex">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cal_set_mode" introspectable="0">
        <callback name="cal_set_mode" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="CalSetModeStatus" c:type="ECalSetModeStatus"/>
            </parameter>
            <parameter name="mode" transfer-ownership="none">
              <type c:type="CalMode"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="backend_error">
        <callback name="backend_error">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="backend_died">
        <callback name="backend_died">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="CalClient"
           c:symbol-prefix="cal_client"
           c:type="ECalClient"
           version="3.2"
           parent="EDataServer.Client"
           glib:type-name="ECalClient"
           glib:get-type="e_cal_client_get_type"
           glib:type-struct="CalClientClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <constructor name="new"
                   c:identifier="e_cal_client_new"
                   version="3.2"
                   throws="1">
        <doc xml:whitespace="preserve">Creates a new #ECalClient corresponding to the given source.  There are
only two operations that are valid on this calendar at this point:
e_client_open(), and e_client_remove().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new but unopened #ECalClient.</doc>
          <type name="CalClient" c:type="ECalClient*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #ESource pointer</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
          <parameter name="source_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">source type of the calendar</doc>
            <type name="CalClientSourceType" c:type="ECalClientSourceType"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_default"
                   c:identifier="e_cal_client_new_default"
                   version="3.2"
                   throws="1">
        <doc xml:whitespace="preserve">Creates a new #ECalClient corresponding to the user's default
calendar.  See the documentation for e_cal_client_new() for
further information.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new but unopened #ECalClient</doc>
          <type name="CalClient" c:type="ECalClient*"/>
        </return-value>
        <parameters>
          <parameter name="source_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">source type of the calendar</doc>
            <type name="CalClientSourceType" c:type="ECalClientSourceType"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_uri"
                   c:identifier="e_cal_client_new_from_uri"
                   version="3.2"
                   throws="1">
        <doc xml:whitespace="preserve">Creates a new #ECalClient corresponding to the given uri.  See the
documentation for e_cal_client_new() for further information.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new but unopened #ECalClient.</doc>
          <type name="CalClient" c:type="ECalClient*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the URI to load</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="source_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">source type of the calendar</doc>
            <type name="CalClientSourceType" c:type="ECalClientSourceType"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_system"
                   c:identifier="e_cal_client_new_system"
                   version="3.2"
                   throws="1">
        <doc xml:whitespace="preserve">Creates a new #ECalClient corresponding to the user's system
calendar.  See the documentation for e_cal_client_new() for further
information.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new but unopened #ECalClient.</doc>
          <type name="CalClient" c:type="ECalClient*"/>
        </return-value>
        <parameters>
          <parameter name="source_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">source type of the calendar</doc>
            <type name="CalClientSourceType" c:type="ECalClientSourceType"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="check_timezones"
                c:identifier="e_cal_client_check_timezones"
                version="3.2"
                introspectable="0"
                throws="1">
        <doc xml:whitespace="preserve">This function cleans up VEVENT, VJOURNAL, VTODO and VTIMEZONE
items which are to be imported into Evolution.

Using VTIMEZONE definitions is problematic because they cannot be
updated properly when timezone definitions change. They are also
incomplete (for compatibility reason only one set of rules for
summer saving changes can be included, even if different rules
apply in different years). This function looks for matches of the
used TZIDs against system timezones and replaces such TZIDs with
the corresponding system timezone. This works for TZIDs containing
a location (found via a fuzzy string search) and for Outlook TZIDs
(via a hard-coded lookup table).

Some programs generate broken meeting invitations with TZID, but
without including the corresponding VTIMEZONE. Importing such
invitations unchanged causes problems later on (meeting displayed
incorrectly, e_cal_get_component_as_string() fails). The situation
where this occurred in the past (found by a SyncEvolution user) is
now handled via the location based mapping.

If this mapping fails, this function also deals with VTIMEZONE
conflicts: such conflicts occur when the calendar already contains
an old VTIMEZONE definition with the same TZID, but different
summer saving rules. Replacing the VTIMEZONE potentially breaks
displaying of old events, whereas not replacing it breaks the new
events (the behavior in Evolution &lt;= 2.22.1).

The way this problem is resolved is by renaming the new VTIMEZONE
definition until the TZID is unique. A running count is appended to
the TZID. All items referencing the renamed TZID are adapted
accordingly.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a VCALENDAR containing a list of VTIMEZONE and arbitrary other components, in arbitrary order: these other components are modified by this call</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="comps" transfer-ownership="none">
            <doc xml:whitespace="preserve">a list of icalcomponent instances which also have to be patched; may be NULL</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="tzlookup" transfer-ownership="none">
            <doc xml:whitespace="preserve">a callback function which is called to retrieve a calendar's VTIMEZONE definition; the returned definition is *not* freed by e_cal_client_check_timezones() (to be compatible with e_cal_get_timezone()); NULL indicates that no such timezone exists or an error occurred</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="ecalclient" transfer-ownership="none">
            <doc xml:whitespace="preserve">an arbitrary pointer which is passed through to the @tzlookup function</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable to use in @tzlookup function</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="error_create"
                c:identifier="e_cal_client_error_create"
                version="3.2">
        <doc xml:whitespace="preserve">@code. If the @custom_msg is NULL, then the error message is
the one returned from e_cal_client_error_to_string() for the @code,
otherwise the given message is used.

Returned pointer should be freed with g_error_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GError containing an E_CAL_CLIENT_ERROR of the given</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </return-value>
        <parameters>
          <parameter name="code" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #ECalClientError code to create</doc>
            <type name="CalClientError" c:type="ECalClientError"/>
          </parameter>
          <parameter name="custom_msg" transfer-ownership="none">
            <doc xml:whitespace="preserve">custom message to use for the error; can be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="error_quark" c:identifier="e_cal_client_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="error_to_string"
                c:identifier="e_cal_client_error_to_string"
                version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="code" transfer-ownership="none">
            <type name="CalClientError" c:type="ECalClientError"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_ecalcomp_slist"
                c:identifier="e_cal_client_free_ecalcomp_slist"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees each element of @ecalcomps list and the list itself.
Each element is an object of ECalComponent type.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ecalcomps" transfer-ownership="none">
            <doc xml:whitespace="preserve">list of ECalComponent objects</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_icalcomp_slist"
                c:identifier="e_cal_client_free_icalcomp_slist"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees each element of @icalcomps list and the list itself.
Each element is an object of icalcomponent type.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomps" transfer-ownership="none">
            <doc xml:whitespace="preserve">slist of icalcomponent objects</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="get_sources"
                c:identifier="e_cal_client_get_sources"
                version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">Populate @*sources with the list of all sources which have been
added to Evolution.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @sources was set, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sources"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">A pointer to an #ESourceList to set</doc>
            <type name="EDataServer.SourceList" c:type="ESourceList**"/>
          </parameter>
          <parameter name="source_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">source type of calendars</doc>
            <type name="CalClientSourceType" c:type="ECalClientSourceType"/>
          </parameter>
        </parameters>
      </function>
      <function name="resolve_tzid_cb"
                c:identifier="e_cal_client_resolve_tzid_cb"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Resolves TZIDs for the recurrence generator.

it could not be found.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The timezone identified by the @tzid argument, or %NULL if</doc>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to resolve.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback, in this case #ECalClient.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_default_source"
                c:identifier="e_cal_client_set_default_source"
                version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">Sets @source as the "default" calendar.  This is the source that
will be loaded in the e_cal_client_get_default_calendar() call.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the setting was stored in libecal's ESourceList, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #ESource pointer</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
          <parameter name="source_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">source type of the calendar</doc>
            <type name="CalClientSourceType" c:type="ECalClientSourceType"/>
          </parameter>
        </parameters>
      </function>
      <function name="tzlookup"
                c:identifier="e_cal_client_tzlookup"
                version="3.2"
                introspectable="0"
                throws="1">
        <doc xml:whitespace="preserve">An implementation of the tzlookup callback which clients
can use. Calls e_cal_client_get_timezone_sync().</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="ecalclient" transfer-ownership="none">
            <doc xml:whitespace="preserve">must be a valid ECalCleint pointer</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="tzlookup_icomp"
                c:identifier="e_cal_client_tzlookup_icomp"
                version="3.2"
                introspectable="0"
                throws="1">
        <doc xml:whitespace="preserve">An implementation of the tzlookup callback which backends
like the file backend can use. Searches for the timezone
in the component list.</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="custom" transfer-ownership="none">
            <doc xml:whitespace="preserve">must be a icalcomponent pointer which contains either a VCALENDAR with VTIMEZONEs or VTIMEZONES directly</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="free_busy_data" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="free_busy_ecalcomps" transfer-ownership="none">
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_timezone"
              c:identifier="e_cal_client_add_timezone"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Add a VTIMEZONE object to the given calendar client.
The call is finished by e_cal_client_add_timezone_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone to add</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_timezone_finish"
              c:identifier="e_cal_client_add_timezone_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_add_timezone().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_timezone_sync"
              c:identifier="e_cal_client_add_timezone_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Add a VTIMEZONE object to the given calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone to add</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_one_alarm_only"
              c:identifier="e_cal_client_check_one_alarm_only"
              version="3.2">
        <doc xml:whitespace="preserve">Checks if a calendar supports only one alarm per component.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar allows only one alarm, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="check_organizer_must_accept"
              c:identifier="e_cal_client_check_organizer_must_accept"
              version="3.2">
        <doc xml:whitespace="preserve">Checks whether a calendar requires organizer to accept their attendance to
meetings.

otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar requires organizers to accept, FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="check_organizer_must_attend"
              c:identifier="e_cal_client_check_organizer_must_attend"
              version="3.2">
        <doc xml:whitespace="preserve">Checks if a calendar forces organizers of meetings to be also attendees.

FALSE otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar forces organizers to attend meetings,</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="check_recurrences_no_master"
              c:identifier="e_cal_client_check_recurrences_no_master"
              version="3.2">
        <doc xml:whitespace="preserve">Checks if the calendar has a master object for recurrences.

FALSE otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar has a master object for recurrences,</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="check_save_schedules"
              c:identifier="e_cal_client_check_save_schedules"
              version="3.2">
        <doc xml:whitespace="preserve">Checks whether the calendar saves schedules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it saves schedules, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="create_object"
              c:identifier="e_cal_client_create_object"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Requests the calendar backend to create the object specified by the @icalcomp
argument. Some backends would assign a specific UID to the newly created object,
but this function does not modify the original @icalcomp if its UID changes.
The call is finished by e_cal_client_create_object_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The component to create</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_object_finish"
              c:identifier="e_cal_client_create_object_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_create_object() and
sets @uid to newly assigned UID for the created object.
This @uid should be freed with g_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="uid"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the UID assigned to the new component by the calendar backend</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_object_sync"
              c:identifier="e_cal_client_create_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to create the object specified by the @icalcomp
argument. Some backends would assign a specific UID to the newly created object,
in those cases that UID would be returned in the @uid argument. This function
does not modify the original @icalcomp if its UID changes.
Returned @uid should be freed with g_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The component to create</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="uid"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the UID assigned to the new component by the calendar backend</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="discard_alarm"
              c:identifier="e_cal_client_discard_alarm"
              version="3.2">
        <doc xml:whitespace="preserve">Removes alarm @auid from a given component identified by @uid and @rid.
The call is finished by e_cal_client_discard_alarm_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Alarm identifier to remove</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="discard_alarm_finish"
              c:identifier="e_cal_client_discard_alarm_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_discard_alarm().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="discard_alarm_sync"
              c:identifier="e_cal_client_discard_alarm_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Removes alarm @auid from a given component identified by @uid and @rid.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Alarm identifier to remove</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances"
              c:identifier="e_cal_client_generate_instances"
              version="3.2">
        <doc xml:whitespace="preserve">Does a combination of #e_cal_client_get_object_list () and
#e_cal_client_recur_generate_instances(). Unlike #e_cal_client_generate_instances_sync (),
this returns immediately and the @cb callback is called asynchronously.

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4"
                     destroy="5">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy_cb_data"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:whitespace="preserve">Function to call when the processing is done, to free @cb_data; can be %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances_for_object"
              c:identifier="e_cal_client_generate_instances_for_object"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Does a combination of #e_cal_client_get_object_list () and
#e_cal_client_recur_generate_instances(), like #e_cal_client_generate_instances(), but
for a single object. Unlike #e_cal_client_generate_instances_for_object_sync (),
this returns immediately and the @cb callback is called asynchronously.

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Object to generate instances from.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="notified"
                     closure="5"
                     destroy="6">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy_cb_data"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:whitespace="preserve">Function to call when the processing is done, to free @cb_data; can be %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances_for_object_sync"
              c:identifier="e_cal_client_generate_instances_for_object_sync"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Does a combination of #e_cal_client_get_object_list () and
#e_cal_client_recur_generate_instances(), like #e_cal_client_generate_instances_sync(), but
for a single object.

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Object to generate instances from.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb" transfer-ownership="none" closure="4">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances_sync"
              c:identifier="e_cal_client_generate_instances_sync"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Does a combination of #e_cal_client_get_object_list () and
#e_cal_client_recur_generate_instances().

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attachment_uris"
              c:identifier="e_cal_client_get_attachment_uris"
              version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for a specified component's object attachment uris.
The call is finished by e_cal_client_get_attachment_uris_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attachment_uris_finish"
              c:identifier="e_cal_client_get_attachment_uris_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_attachment_uris() and
sets @attachment_uris to uris for component's attachments.
The list should be freed with e_client_util_free_string_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="attachment_uris" transfer-ownership="none">
            <doc xml:whitespace="preserve">(out:) Return the list of attachment uris</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_attachment_uris_sync"
              c:identifier="e_cal_client_get_attachment_uris_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for a specified component's object attachment uris.
The list should be freed with e_client_util_free_string_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="attachment_uris" transfer-ownership="none">
            <doc xml:whitespace="preserve">(out:) Return the list of attachment uris</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_component_as_string"
              c:identifier="e_cal_client_get_component_as_string"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Gets a calendar component as an iCalendar string, with a toplevel
VCALENDAR component and all VTIMEZONEs needed for the component.

failure. The string should be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the component as a complete iCalendar string, or NULL on</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A calendar component object.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_object"
              c:identifier="e_cal_client_get_default_object"
              version="3.2">
        <doc xml:whitespace="preserve">Retrives an #icalcomponent from the backend that contains the default
values for properties needed. The call is finished
by e_cal_client_get_default_object_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_object_finish"
              c:identifier="e_cal_client_get_default_object_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_default_object() and
sets @icalcomp to an #icalcomponent from the backend that contains
the default values for properties needed. This @icalcomp should be
freed with icalcomponent_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the default calendar object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_object_sync"
              c:identifier="e_cal_client_get_default_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Retrives an #icalcomponent from the backend that contains the default
values for properties needed. This @icalcomp should be freed with
icalcomponent_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the default calendar object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_timezone"
              c:identifier="e_cal_client_get_default_timezone"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Returned pointer is owned by the @client and should not be freed.</doc>
        <return-value>
          <doc xml:whitespace="preserve">Default timezone previously set with e_cal_client_set_default_timezone().</doc>
          <type c:type="icaltimezone*"/>
        </return-value>
      </method>
      <method name="get_free_busy"
              c:identifier="e_cal_client_get_free_busy"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Begins retrieval of free/busy information from the calendar server
as a list of #ECalComponent-s. Connect to "free-busy-data" signal
to receive chunks of free/busy components.
The call is finished by e_cal_client_get_free_busy_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="users" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of users to retrieve free/busy information for</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_free_busy_finish"
              c:identifier="e_cal_client_get_free_busy_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_free_busy().
All VFREEBUSY #ECalComponent-s were received by "free-busy-data" signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_free_busy_sync"
              c:identifier="e_cal_client_get_free_busy_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Gets free/busy information from the calendar server.
All VFREEBUSY #ECalComponent-s were received by "free-busy-data" signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="users" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of users to retrieve free/busy information for</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_local_attachment_store"
              c:identifier="e_cal_client_get_local_attachment_store"
              version="3.2">
        <doc xml:whitespace="preserve">Queries the URL where the calendar attachments are
serialized in the local filesystem. This enable clients
to operate with the reference to attachments rather than the data itself
unless it specifically uses the attachments for open/sending
operations.

local filesystem.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The URL where the attachments are serialized in the</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_object"
              c:identifier="e_cal_client_get_object"
              version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for a calendar component object based on its unique
identifier. The call is finished by e_cal_client_get_object_finish()
from the @callback.

Use e_cal_client_get_objects_for_uid() to get list of all
objects for the given uid, which includes master object and
all detached instances.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_finish"
              c:identifier="e_cal_client_get_object_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_object() and
sets @icalcomp to queried component. This function always returns
master object for a case of @rid being NULL or an empty string.
This component should be freed with icalcomponent_free().

Use e_cal_client_get_objects_for_uid() to get list of all
objects for the given uid, which includes master object and
all detached instances.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the calendar component object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list"
              c:identifier="e_cal_client_get_object_list"
              version="3.2">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @sexp argument, returning matching objects as a list of #icalcomponent-s.
The call is finished by e_cal_client_get_object_list_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_as_comps"
              c:identifier="e_cal_client_get_object_list_as_comps"
              version="3.2">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @sexp argument, returning matching objects as a list of #ECalComponent-s.
The call is finished by e_cal_client_get_object_list_as_comps_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_as_comps_finish"
              c:identifier="e_cal_client_get_object_list_as_comps_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_object_list_as_comps() and
sets @ecalcomps to a matching list of #ECalComponent-s.
This list should be freed with #e_cal_client_free_ecalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="ecalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">list of matching #ECalComponent-s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_as_comps_sync"
              c:identifier="e_cal_client_get_object_list_as_comps_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @sexp argument. The objects will be returned in the @ecalcomps
argument, which is a list of #ECalComponent.
This list should be freed with #e_cal_client_free_ecalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="ecalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">list of matching #ECalComponent-s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_finish"
              c:identifier="e_cal_client_get_object_list_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_object_list() and
sets @icalcomps to a matching list of #icalcomponent-s.
This list should be freed with #e_cal_client_free_icalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="icalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">list of matching #icalcomponent-s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_sync"
              c:identifier="e_cal_client_get_object_list_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @sexp argument. The objects will be returned in the @icalcomps
argument, which is a list of #icalcomponent.
This list should be freed with #e_cal_client_free_icalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="icalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">list of matching #icalcomponent-s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_sync"
              c:identifier="e_cal_client_get_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for a calendar component object based
on its unique identifier. This function always returns
master object for a case of @rid being NULL or an empty string.
This component should be freed with icalcomponent_free().

Use e_cal_client_get_objects_for_uid_sync() to get list of all
objects for the given uid, which includes master object and
all detached instances.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the calendar component object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_objects_for_uid"
              c:identifier="e_cal_client_get_objects_for_uid"
              version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for all calendar components with the given unique
ID. This will return any recurring event and all its detached recurrences.
For non-recurring events, it will just return the object with that ID.
The call is finished by e_cal_client_get_objects_for_uid_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_objects_for_uid_finish"
              c:identifier="e_cal_client_get_objects_for_uid_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_objects_for_uid() and
sets @ecalcomps to a list of #ECalComponent-s corresponding to
found components for a given uid of the same type as this client.
This list should be freed with e_cal_client_free_ecalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="ecalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the list of objects obtained from the backend</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_objects_for_uid_sync"
              c:identifier="e_cal_client_get_objects_for_uid_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for all calendar components with the given unique
ID. This will return any recurring event and all its detached recurrences.
For non-recurring events, it will just return the object with that ID.
This list should be freed with e_cal_client_free_ecalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="ecalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the list of objects obtained from the backend</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_source_type"
              c:identifier="e_cal_client_get_source_type"
              version="3.2">
        <doc xml:whitespace="preserve">Gets the source type of the calendar client.

to the source type of the calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">an #ECalClientSourceType value corresponding</doc>
          <type name="CalClientSourceType" c:type="ECalClientSourceType"/>
        </return-value>
      </method>
      <method name="get_timezone"
              c:identifier="e_cal_client_get_timezone"
              version="3.2">
        <doc xml:whitespace="preserve">Retrieves a timezone object from the calendar backend.
The call is finished by e_cal_client_get_timezone_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to retrieve</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_timezone_finish"
              c:identifier="e_cal_client_get_timezone_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_timezone() and
sets @zone to a retrieved timezone object from the calendar backend.
This object is owned by the @client, thus do not free it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="zone"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the timezone</doc>
            <type c:type="icaltimezone**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_timezone_sync"
              c:identifier="e_cal_client_get_timezone_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Retrieves a timezone object from the calendar backend.
This object is owned by the @client, thus do not free it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to retrieve</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="zone"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the timezone</doc>
            <type c:type="icaltimezone**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view"
              c:identifier="e_cal_client_get_view"
              version="3.2">
        <doc xml:whitespace="preserve">Query @client with @sexp, creating an #ECalClientView.
The call is finished by e_cal_client_get_view_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view_finish"
              c:identifier="e_cal_client_get_view_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_view().
If successful, then the @view is set to newly allocated #ECalClientView,
which should be freed with g_object_unref().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">(out) an #ECalClientView</doc>
            <type name="CalClientView" c:type="ECalClientView**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view_sync"
              c:identifier="e_cal_client_get_view_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Query @client with @sexp, creating an #ECalClientView.
If successful, then the @view is set to newly allocated #ECalClientView,
which should be freed with g_object_unref().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">(out) an #ECalClientView</doc>
            <type name="CalClientView" c:type="ECalClientView**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_object"
              c:identifier="e_cal_client_modify_object"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Requests the calendar backend to modify an existing object. If the object
does not exist on the calendar, an error will be returned.

For recurrent appointments, the @mod argument specifies what to modify,
if all instances (CALOBJ_MOD_ALL), a single instance (CALOBJ_MOD_THIS),
or a specific set of instances (CALOBJ_MOD_THISNADPRIOR and
CALOBJ_MOD_THISANDFUTURE).

The call is finished by e_cal_client_modify_object_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Component to modify</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of modification</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_object_finish"
              c:identifier="e_cal_client_modify_object_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_modify_object().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_object_sync"
              c:identifier="e_cal_client_modify_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to modify an existing object. If the object
does not exist on the calendar, an error will be returned.

For recurrent appointments, the @mod argument specifies what to modify,
if all instances (CALOBJ_MOD_ALL), a single instance (CALOBJ_MOD_THIS),
or a specific set of instances (CALOBJ_MOD_THISNADPRIOR and
CALOBJ_MOD_THISANDFUTURE).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Component to modify</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of modification</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_objects"
              c:identifier="e_cal_client_receive_objects"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Makes the backend receive the set of iCalendar objects specified in the
@icalcomp argument. This is used for iTIP confirmation/cancellation
messages for scheduled meetings.

The call is finished by e_cal_client_receive_objects_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_objects_finish"
              c:identifier="e_cal_client_receive_objects_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_receive_objects().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_objects_sync"
              c:identifier="e_cal_client_receive_objects_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Makes the backend receive the set of iCalendar objects specified in the
@icalcomp argument. This is used for iTIP confirmation/cancellation
messages for scheduled meetings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_object"
              c:identifier="e_cal_client_remove_object"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">This function allows the removal of instances of a recurrent
appointment. By using a combination of the @uid, @rid and @mod
arguments, you can remove specific instances. If what you want
is to remove all instances, use #NULL @rid and CALOBJ_MOD_ALL
for the @mod.

The call is finished by e_cal_client_remove_object_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">UID of the object to remove</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence ID of the specific recurrence to remove</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the removal</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_object_finish"
              c:identifier="e_cal_client_remove_object_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_remove_object().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_object_sync"
              c:identifier="e_cal_client_remove_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">This function allows the removal of instances of a recurrent
appointment. By using a combination of the @uid, @rid and @mod
arguments, you can remove specific instances. If what you want
is to remove all instances, use #NULL @rid and CALOBJ_MODE_THIS
for the @mod.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">UID of the object to remove</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence ID of the specific recurrence to remove</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the removal</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_objects"
              c:identifier="e_cal_client_send_objects"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Requests a calendar backend to send meeting information stored in @icalcomp.
The backend can modify this component and request a send to particular users.
The call is finished by e_cal_client_send_objects_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An icalcomponent to be sent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_objects_finish"
              c:identifier="e_cal_client_send_objects_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_send_objects() and
populates @users with a list of users to send @modified_icalcomp to.
The @users list should be freed with e_client_util_free_string_slist() and
the @modified_icalcomp should be freed with icalcomponent_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="users"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">List of users to send the @modified_icalcomp to</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="modified_icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the icalcomponent to be sent</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_objects_sync"
              c:identifier="e_cal_client_send_objects_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Requests a calendar backend to send meeting information stored in @icalcomp.
The backend can modify this component and request a send to users in the @users list.
The @users list should be freed with e_client_util_free_string_slist() and
the @modified_icalcomp should be freed with icalcomponent_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An icalcomponent to be sent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="users"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">List of users to send the @modified_icalcomp to</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="modified_icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the icalcomponent to be sent</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default"
              c:identifier="e_cal_client_set_default"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Sets the #ESource of the #ECalClient as the "default" calendar.  This is the source
that will be loaded in the e_cal_client_get_default_calendar() call.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the setting was stored in libecal's ESourceList, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_default_timezone"
              c:identifier="e_cal_client_set_default_timezone"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the default timezone to use to resolve DATE and floating DATE-TIME
values. This will typically be from the user's timezone setting. Call this
before using any other object fetching functions.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">A timezone object.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="EDataServer.Client" c:type="EClient"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalClientPrivate" c:type="ECalClientPrivate*"/>
      </field>
      <glib:signal name="free-busy-data" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CalClientClass"
            c:type="ECalClientClass"
            glib:is-gtype-struct-for="CalClient">
      <field name="parent">
        <type name="EDataServer.ClientClass" c:type="EClientClass"/>
      </field>
      <field name="free_busy_data" introspectable="0">
        <callback name="free_busy_data" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="CalClient" c:type="ECalClient*"/>
            </parameter>
            <parameter name="free_busy_ecalcomps" transfer-ownership="none">
              <type name="GLib.SList" c:type="GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="CalClientError" version="3.2" c:type="ECalClientError">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <member name="no_such_calendar"
              value="0"
              c:identifier="E_CAL_CLIENT_ERROR_NO_SUCH_CALENDAR"/>
      <member name="object_not_found"
              value="1"
              c:identifier="E_CAL_CLIENT_ERROR_OBJECT_NOT_FOUND"/>
      <member name="invalid_object"
              value="2"
              c:identifier="E_CAL_CLIENT_ERROR_INVALID_OBJECT"/>
      <member name="unknown_user"
              value="3"
              c:identifier="E_CAL_CLIENT_ERROR_UNKNOWN_USER"/>
      <member name="object_id_already_exists"
              value="4"
              c:identifier="E_CAL_CLIENT_ERROR_OBJECT_ID_ALREADY_EXISTS"/>
      <member name="invalid_range"
              value="5"
              c:identifier="E_CAL_CLIENT_ERROR_INVALID_RANGE"/>
    </enumeration>
    <record name="CalClientPrivate" c:type="ECalClientPrivate" disguised="1">
    </record>
    <enumeration name="CalClientSourceType"
                 version="3.2"
                 c:type="ECalClientSourceType">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <member name="events"
              value="0"
              c:identifier="E_CAL_CLIENT_SOURCE_TYPE_EVENTS"/>
      <member name="tasks"
              value="1"
              c:identifier="E_CAL_CLIENT_SOURCE_TYPE_TASKS"/>
      <member name="memos"
              value="2"
              c:identifier="E_CAL_CLIENT_SOURCE_TYPE_MEMOS"/>
      <member name="last"
              value="3"
              c:identifier="E_CAL_CLIENT_SOURCE_TYPE_LAST"/>
    </enumeration>
    <enumeration name="CalClientSourceTypeEnum"
                 glib:type-name="ECalClientSourceTypeEnum"
                 glib:get-type="e_cal_client_source_type_enum_get_type"
                 c:type="ECalClientSourceTypeEnum">
      <member name="Events"
              value="0"
              c:identifier="Events"
              glib:nick="Events"/>
      <member name="Tasks" value="1" c:identifier="Tasks" glib:nick="Tasks"/>
      <member name="Memos" value="2" c:identifier="Memos" glib:nick="Memos"/>
      <member name="Invalid"
              value="3"
              c:identifier="Invalid"
              glib:nick="Invalid"/>
    </enumeration>
    <class name="CalClientView"
           c:symbol-prefix="cal_client_view"
           c:type="ECalClientView"
           version="3.2"
           parent="GObject.Object"
           glib:type-name="ECalClientView"
           glib:get-type="e_cal_client_view_get_type"
           glib:type-struct="CalClientViewClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <virtual-method name="complete">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_added" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_modified" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_removed" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uids" transfer-ownership="none">
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_client"
              c:identifier="e_cal_client_view_get_client"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Get the #ECalClient associated with this view.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the associated client.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </return-value>
      </method>
      <method name="is_running"
              c:identifier="e_cal_client_view_is_running"
              version="3.2">
        <doc xml:whitespace="preserve">Retunrs: Whether view is running. Not running views are ignoring
all events sent from the server.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_fields_of_interest"
              c:identifier="e_cal_client_view_set_fields_of_interest"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Client can instruct server to which fields it is interested in only, thus
the server can return less data over the wire. The server can still return
complete objects, this is just a hint to it that the listed fields will
be used only. The UID/RID fields are returned always. Initial views has no fields
of interest and using %NULL for @fields_of_interest will unset any previous
changes.

Some backends can use summary information of its cache to create artifical
objects, which will omit stored object parsing. If this cannot be done then
it will simply return object as is stored in the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="fields_of_interest" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of field names in which the client is interested</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="start"
              c:identifier="e_cal_client_view_start"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Starts a live query to the calendar/tasks backend.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="stop"
              c:identifier="e_cal_client_view_stop"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Stops a live query to the calendar/tasks backend.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="client"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="CalClient"/>
      </property>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer"/>
      </property>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalClientViewPrivate" c:type="ECalClientViewPrivate*"/>
      </field>
      <glib:signal name="complete" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-added" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-modified" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-removed" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList">
              <type name="CalComponentId"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="progress" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CalClientViewClass"
            c:type="ECalClientViewClass"
            glib:is-gtype-struct-for="CalClientView">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="objects_added" introspectable="0">
        <callback name="objects_added" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.SList" c:type="GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_modified" introspectable="0">
        <callback name="objects_modified" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.SList" c:type="GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_removed" introspectable="0">
        <callback name="objects_removed" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="uids" transfer-ownership="none">
              <type name="GLib.SList" c:type="GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="progress">
        <callback name="progress">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="percent" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="complete">
        <callback name="complete">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="CalClientViewPrivate"
            c:type="ECalClientViewPrivate"
            disguised="1">
    </record>
    <class name="CalComponent"
           c:symbol-prefix="cal_component"
           c:type="ECalComponent"
           parent="GObject.Object"
           glib:type-name="ECalComponent"
           glib:get-type="e_cal_component_get_type"
           glib:type-struct="CalComponentClass">
      <constructor name="new" c:identifier="e_cal_component_new">
        <doc xml:whitespace="preserve">Creates a new empty calendar component object.  Once created, you should set it from an
existing #icalcomponent structure by using e_cal_component_set_icalcomponent() or with a
new empty component type by using e_cal_component_set_new_vtype().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly-created calendar component object.</doc>
          <type name="CalComponent" c:type="ECalComponent*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_icalcomponent"
                   c:identifier="e_cal_component_new_from_icalcomponent"
                   version="3.4"
                   introspectable="0">
        <doc xml:whitespace="preserve">Creates a new #ECalComponent which will has set @icalcomp as
an inner #icalcomponent. The newly created #ECalComponent takes
ownership of the @icalcomp, and if the call
to e_cal_component_set_icalcomponent() fails, then @icalcomp
is freed.

NULL if the @icalcomp cannot be assigned to #ECalComponent.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">An #ECalComponet with @icalcomp assigned on success,</doc>
          <type name="CalComponent" c:type="ECalComponent*"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent to use</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="e_cal_component_new_from_string">
        <doc xml:whitespace="preserve">Creates a new calendar component object from the given iCalendar string.

success, NULL if there was an error.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A calendar component representing the given iCalendar string on</doc>
          <type name="CalComponent" c:type="ECalComponent*"/>
        </return-value>
        <parameters>
          <parameter name="calobj" transfer-ownership="none">
            <doc xml:whitespace="preserve">A string representation of an iCalendar component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="free_attendee_list"
                c:identifier="e_cal_component_free_attendee_list"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees a list of #ECalComponentAttendee structures.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of attendees.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_categories_list"
                c:identifier="e_cal_component_free_categories_list"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees a list of category strings.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categ_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of category strings.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_datetime"
                c:identifier="e_cal_component_free_datetime">
        <doc xml:whitespace="preserve">Frees a date/time structure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">A date/time structure.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_exdate_list"
                c:identifier="e_cal_component_free_exdate_list"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees a list of #ECalComponentDateTime structures as returned by the
e_cal_component_get_exdate_list() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="exdate_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentDateTime structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_geo" c:identifier="e_cal_component_free_geo">
        <doc xml:whitespace="preserve">Frees a struct #icalgeotype structure as returned by the calendar component
functions.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="geo" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalgeotype structure.</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_icaltimetype"
                c:identifier="e_cal_component_free_icaltimetype">
        <doc xml:whitespace="preserve">Frees a struct #icaltimetype value as returned by the calendar component
functions.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icaltimetype structure.</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_id" c:identifier="e_cal_component_free_id">
        <doc xml:whitespace="preserve">Frees the id.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Component ID</doc>
            <type name="CalComponentId" c:type="ECalComponentId*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_percent"
                c:identifier="e_cal_component_free_percent">
        <doc xml:whitespace="preserve">Frees a percent value as returned by the e_cal_component_get_percent()
function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Percent value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_period_list"
                c:identifier="e_cal_component_free_period_list"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees a list of #ECalComponentPeriod structures.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="period_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentPeriod structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_priority"
                c:identifier="e_cal_component_free_priority">
        <doc xml:whitespace="preserve">Frees a priority value as returned by the e_cal_component_get_priority()
function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">Priority value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_range" c:identifier="e_cal_component_free_range">
        <doc xml:whitespace="preserve">Frees an #ECalComponentRange structure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="range" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #ECalComponentRange.</doc>
            <type name="CalComponentRange" c:type="ECalComponentRange*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_recur_list"
                c:identifier="e_cal_component_free_recur_list"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees a list of struct #icalrecurrencetype structures.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of struct #icalrecurrencetype structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_sequence"
                c:identifier="e_cal_component_free_sequence">
        <doc xml:whitespace="preserve">Frees a sequence number value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sequence" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sequence number value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_text_list"
                c:identifier="e_cal_component_free_text_list"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees a list of #ECalComponentText structures.  This function should only be
used to free lists of text values as returned by the other getter functions
of #ECalComponent.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentText structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="gen_uid" c:identifier="e_cal_component_gen_uid">
        <doc xml:whitespace="preserve">Generates a unique identifier suitable for calendar components.

a different string is returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A unique identifier string.  Every time this function is called</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </function>
      <method name="abort_sequence"
              c:identifier="e_cal_component_abort_sequence">
        <doc xml:whitespace="preserve">Aborts the sequence change needed in the given calendar component, which
means it will not require a sequence commit (via #e_cal_component_commit_sequence)
even if the changes done require a sequence increment.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="add_alarm" c:identifier="e_cal_component_add_alarm">
        <doc xml:whitespace="preserve">Adds an alarm subcomponent to a calendar component.  You should have created
the @alarm by using e_cal_component_alarm_new(); it is invalid to use a
#ECalComponentAlarm structure that came from e_cal_component_get_alarm().  After
adding the alarm, the @alarm structure is no longer valid because the
internal structures may change and you should get rid of it by using
e_cal_component_alarm_free().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="alarm" transfer-ownership="none">
            <doc xml:whitespace="preserve">An alarm.</doc>
            <type name="CalComponentAlarm" c:type="ECalComponentAlarm*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clone"
              c:identifier="e_cal_component_clone"
              introspectable="0">
        <doc xml:whitespace="preserve">Creates a new calendar component object by copying the information from
another one.

original one.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A newly-created calendar component with the same values as the</doc>
          <type name="CalComponent" c:type="ECalComponent*"/>
        </return-value>
      </method>
      <method name="commit_sequence"
              c:identifier="e_cal_component_commit_sequence">
        <doc xml:whitespace="preserve">Increments the sequence number property in a calendar component object if it
needs it.  This needs to be done when any of a number of properties listed in
RFC 2445 change values, such as the start and end dates of a component.

This function must be called before calling e_cal_component_get_as_string() to
ensure that the component is fully consistent.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="event_dates_match"
              c:identifier="e_cal_component_event_dates_match">
        <doc xml:whitespace="preserve">Checks if the DTSTART and DTEND properties of the 2 components match.
Note that the events may have different recurrence properties which are not
taken into account here.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the DTSTART and DTEND properties of the 2 components match.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp2" transfer-ownership="none">
            <doc xml:whitespace="preserve">A calendar component object.</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarm"
              c:identifier="e_cal_component_get_alarm"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries a particular alarm subcomponent of a calendar component.

or #NULL if no alarm exists with that UID.  This should be freed using
e_cal_component_alarm_free().</doc>
        <return-value>
          <doc xml:whitespace="preserve">The alarm subcomponent that corresponds to the specified @auid,</doc>
          <type name="CalComponentAlarm" c:type="ECalComponentAlarm*"/>
        </return-value>
        <parameters>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for the sought alarm subcomponent.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarm_uids"
              c:identifier="e_cal_component_get_alarm_uids"
              introspectable="0">
        <doc xml:whitespace="preserve">Builds a list of the unique identifiers of the alarm subcomponents inside a
calendar component.

using cal_obj_uid_list_free().</doc>
        <return-value>
          <doc xml:whitespace="preserve">List of unique identifiers for alarms.  This should be freed</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </method>
      <method name="get_as_string"
              c:identifier="e_cal_component_get_as_string">
        <doc xml:whitespace="preserve">Gets the iCalendar string representation of a calendar component.  You should
call e_cal_component_commit_sequence() before this function to ensure that the
component's sequence number is consistent with the state of the object.

RFC 2445.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">String representation of the calendar component according to</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_attachment_list"
              c:identifier="e_cal_component_get_attachment_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the attachment properties of the calendar component object. When done,
the @attachment_list should be freed by calling #g_slist_free.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attachment_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return list of URLS to attachments.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_attendee_list"
              c:identifier="e_cal_component_get_attendee_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the attendee properties of the calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the attendee property. This should be freed using the e_cal_component_free_attendee_list () function.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_categories"
              c:identifier="e_cal_component_get_categories">
        <doc xml:whitespace="preserve">Queries the categories of the given calendar component. The categories
are returned in the @categories argument, which, on success, will contain
a comma-separated list of all categories set in the component.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categories" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return holder for the categories.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_categories_list"
              c:identifier="e_cal_component_get_categories_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the list of categories of a calendar component object.  Each element
in the returned categ_list is a string with the corresponding category.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categ_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the list of strings, where each string is a category. This should be freed using e_cal_component_free_categories_list().</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_classification"
              c:identifier="e_cal_component_get_classification">
        <doc xml:whitespace="preserve">Queries the classification of a calendar component object.  If the
classification property is not set on this component, this function returns
#E_CAL_COMPONENT_CLASS_NONE.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="classif" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the classification.</doc>
            <type name="CalComponentClassification"
                  c:type="ECalComponentClassification*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_comment_list"
              c:identifier="e_cal_component_get_comment_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the comments of a calendar component object.  The comment property can
appear several times inside a calendar component, and so a list of
#ECalComponentText is returned.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the comment properties and their parameters, as a list of #ECalComponentText structures.  This should be freed using the e_cal_component_free_text_list() function.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_completed"
              c:identifier="e_cal_component_get_completed">
        <doc xml:whitespace="preserve">Queries the date at which a calendar compoment object was completed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the completion date.  This should be freed using the e_cal_component_free_icaltimetype() function.</doc>
            <type name="gpointer" c:type="gpointer**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contact_list"
              c:identifier="e_cal_component_get_contact_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the contact of a calendar component object.  The contact property can
appear several times inside a calendar component, and so a list of
#ECalComponentText is returned.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the contact properties and their parameters, as a list of #ECalComponentText structures.  This should be freed using the e_cal_component_free_text_list() function.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_created" c:identifier="e_cal_component_get_created">
        <doc xml:whitespace="preserve">Queries the date in which a calendar component object was created in the
calendar store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the creation date.  This should be freed using the e_cal_component_free_icaltimetype() function.</doc>
            <type name="gpointer" c:type="gpointer**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_description_list"
              c:identifier="e_cal_component_get_description_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the description of a calendar component object.  Journal components
may have more than one description, and as such this function returns a list
of #ECalComponentText structures.  All other types of components can have at
most one description.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the description properties and their parameters, as a list of #ECalComponentText structures.  This should be freed using the e_cal_component_free_text_list() function.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_dtend" c:identifier="e_cal_component_get_dtend">
        <doc xml:whitespace="preserve">Queries the date/time end of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the date/time end.  This should be freed with the e_cal_component_free_datetime() function.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dtstamp" c:identifier="e_cal_component_get_dtstamp">
        <doc xml:whitespace="preserve">Queries the date/timestamp property of a calendar component object, which is
the last time at which the object was modified by a calendar user agent.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">A value for the date/timestamp.</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dtstart" c:identifier="e_cal_component_get_dtstart">
        <doc xml:whitespace="preserve">Queries the date/time start of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the date/time start.  This should be freed with the e_cal_component_free_datetime() function.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_due" c:identifier="e_cal_component_get_due">
        <doc xml:whitespace="preserve">Queries the due date/time of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the due date/time.  This should be freed with the e_cal_component_free_datetime() function.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_exdate_list"
              c:identifier="e_cal_component_get_exdate_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the list of exception date properties in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="exdate_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the list of exception dates, as a list of #ECalComponentDateTime structures.  This should be freed using the e_cal_component_free_exdate_list() function.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_exrule_list"
              c:identifier="e_cal_component_get_exrule_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the list of exception rule properties of a calendar component
object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of exception rules as struct #icalrecurrencetype structures.  This should be freed using the e_cal_component_free_recur_list() function.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_exrule_property_list"
              c:identifier="e_cal_component_get_exrule_property_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the list of exception rule properties of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Returns a list of exception rule properties.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_geo" c:identifier="e_cal_component_get_geo">
        <doc xml:whitespace="preserve">Gets the geographic position property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="geo" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the geographic position property.  This should be freed using the e_cal_component_free_geo() function.</doc>
            <type name="gpointer" c:type="gpointer**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icalcomponent"
              c:identifier="e_cal_component_get_icalcomponent"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the #icalcomponent structure that a calendar component object is
wrapping.

#icalcomponent set to it.</doc>
        <return-value>
          <doc xml:whitespace="preserve">An #icalcomponent structure, or NULL if the @comp has no</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
      </method>
      <method name="get_id"
              c:identifier="e_cal_component_get_id"
              introspectable="0">
        <doc xml:whitespace="preserve">Get the ID of the component as a #ECalComponentId.  The return value should
be freed with e_cal_component_free_id() when you have finished with it.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the id of the component</doc>
          <type name="CalComponentId" c:type="ECalComponentId*"/>
        </return-value>
      </method>
      <method name="get_last_modified"
              c:identifier="e_cal_component_get_last_modified">
        <doc xml:whitespace="preserve">Queries the time at which a calendar component object was last modified in
the calendar store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the last modified time value.</doc>
            <type name="gpointer" c:type="gpointer**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_location" c:identifier="e_cal_component_get_location">
        <doc xml:whitespace="preserve">Queries the location property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the location.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_num_attachments"
              c:identifier="e_cal_component_get_num_attachments">
        <doc xml:whitespace="preserve">Get the number of attachments to this calendar component object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the number of attachments.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_organizer"
              c:identifier="e_cal_component_get_organizer">
        <doc xml:whitespace="preserve">Queries the organizer property of a calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="organizer" transfer-ownership="none">
            <doc xml:whitespace="preserve">A value for the organizer</doc>
            <type name="CalComponentOrganizer"
                  c:type="ECalComponentOrganizer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_percent" c:identifier="e_cal_component_get_percent">
        <doc xml:whitespace="preserve">Queries the percent-complete property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the percent-complete property.  This should be freed using the e_cal_component_free_percent() function.</doc>
            <type name="gint" c:type="gint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_percent_as_int"
              c:identifier="e_cal_component_get_percent_as_int"
              version="2.28">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_priority" c:identifier="e_cal_component_get_priority">
        <doc xml:whitespace="preserve">Queries the priority property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the priority property.  This should be freed using the e_cal_component_free_priority() function.</doc>
            <type name="gint" c:type="gint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rdate_list"
              c:identifier="e_cal_component_get_rdate_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the list of recurrence date properties in a calendar component
object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="period_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the list of recurrence dates, as a list of #ECalComponentPeriod structures.  This should be freed using the e_cal_component_free_period_list() function.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_recurid" c:identifier="e_cal_component_get_recurid">
        <doc xml:whitespace="preserve">Queries the recurrence id property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the recurrence id property</doc>
            <type name="CalComponentRange" c:type="ECalComponentRange*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_recurid_as_string"
              c:identifier="e_cal_component_get_recurid_as_string">
        <doc xml:whitespace="preserve">Gets the recurrence ID property as a string.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the recurrence ID as a string.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_rrule_list"
              c:identifier="e_cal_component_get_rrule_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the list of recurrence rule properties of a calendar component
object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of recurrence rules as struct #icalrecurrencetype structures.  This should be freed using the e_cal_component_free_recur_list() function.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_rrule_property_list"
              c:identifier="e_cal_component_get_rrule_property_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries a list of recurrence rule properties of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Returns a list of recurrence rule properties.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_sequence" c:identifier="e_cal_component_get_sequence">
        <doc xml:whitespace="preserve">Queries the sequence number of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sequence" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the sequence number.  This should be freed using e_cal_component_free_sequence().</doc>
            <type name="gint" c:type="gint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_status"
              c:identifier="e_cal_component_get_status"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the status property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the status value.  It is set to #ICAL_STATUS_NONE if the component has no status property.</doc>
            <type c:type="icalproperty_status*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_summary" c:identifier="e_cal_component_get_summary">
        <doc xml:whitespace="preserve">Queries the summary of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the summary property and its parameters.</doc>
            <type name="CalComponentText" c:type="ECalComponentText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_transparency"
              c:identifier="e_cal_component_get_transparency">
        <doc xml:whitespace="preserve">Queries the time transparency of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="transp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the time transparency.</doc>
            <type name="CalComponentTransparency"
                  c:type="ECalComponentTransparency*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uid" c:identifier="e_cal_component_get_uid">
        <doc xml:whitespace="preserve">Queries the unique identifier of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the UID string.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="e_cal_component_get_url">
        <doc xml:whitespace="preserve">Queries the uniform resource locator property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="url" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the URL.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_vtype" c:identifier="e_cal_component_get_vtype">
        <doc xml:whitespace="preserve">Queries the type of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The type of the component, as defined by RFC 2445.</doc>
          <type name="CalComponentVType" c:type="ECalComponentVType"/>
        </return-value>
      </method>
      <method name="has_alarms" c:identifier="e_cal_component_has_alarms">
        <doc xml:whitespace="preserve">Checks whether the component has any alarms.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has any alarms.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_attachments"
              c:identifier="e_cal_component_has_attachments">
        <doc xml:whitespace="preserve">Queries the component to see if it has attachments.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are attachments, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_attendees"
              c:identifier="e_cal_component_has_attendees">
        <doc xml:whitespace="preserve">Queries a calendar component object for the existence of attendees.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are attendees, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_exceptions"
              c:identifier="e_cal_component_has_exceptions">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any exception dates
or exception rules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has exceptions, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_exdates" c:identifier="e_cal_component_has_exdates">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any exception dates defined
for it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has exception dates, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_exrules" c:identifier="e_cal_component_has_exrules">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any exception rules defined
for it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has exception rules, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_organizer"
              c:identifier="e_cal_component_has_organizer">
        <doc xml:whitespace="preserve">Check whether a calendar component object has an organizer or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there is an organizer, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_rdates" c:identifier="e_cal_component_has_rdates">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any recurrence dates defined
for it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has recurrence dates, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_recurrences"
              c:identifier="e_cal_component_has_recurrences">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any recurrence dates or
recurrence rules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has recurrences, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_rrules" c:identifier="e_cal_component_has_rrules">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any recurrence rules defined
for it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has recurrence rules, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_simple_recurrence"
              c:identifier="e_cal_component_has_simple_recurrence">
        <doc xml:whitespace="preserve">Checks whether the given calendar component object has simple recurrence
rules or more complicated ones.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it has a simple recurrence rule, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_instance" c:identifier="e_cal_component_is_instance">
        <doc xml:whitespace="preserve">Checks whether a calendar component object is an instance of a recurring
event.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it is an instance, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="remove_alarm" c:identifier="e_cal_component_remove_alarm">
        <doc xml:whitespace="preserve">Removes an alarm subcomponent from a calendar component.  If the alarm that
corresponds to the specified @auid had been fetched with
e_cal_component_get_alarm(), then those alarm structures will be invalid; you
should get rid of them with e_cal_component_alarm_free() before using this
function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">UID of the alarm to remove.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_all_alarms"
              c:identifier="e_cal_component_remove_all_alarms">
        <doc xml:whitespace="preserve">Remove all alarms from the calendar component</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="rescan" c:identifier="e_cal_component_rescan">
        <doc xml:whitespace="preserve">Rescans the #icalcomponent being wrapped by the given calendar component. This
would replace any value that was changed in the wrapped #icalcomponent.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set_attachment_list"
              c:identifier="e_cal_component_set_attachment_list"
              introspectable="0">
        <doc xml:whitespace="preserve">This currently handles only attachments that are urls
in the file system - not inline binaries.

Sets the attachments of a calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attachment_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">list of urls to attachment pointers.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_attendee_list"
              c:identifier="e_cal_component_set_attendee_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the attendees of a calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Values for attendee properties</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_categories"
              c:identifier="e_cal_component_set_categories">
        <doc xml:whitespace="preserve">Sets the list of categories for a calendar component.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categories" transfer-ownership="none">
            <doc xml:whitespace="preserve">Comma-separated list of categories.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_categories_list"
              c:identifier="e_cal_component_set_categories_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the list of categories of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categ_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of strings, one for each category.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_classification"
              c:identifier="e_cal_component_set_classification">
        <doc xml:whitespace="preserve">Sets the classification property of a calendar component object.  To unset
the property, specify E_CAL_COMPONENT_CLASS_NONE for @classif.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="classif" transfer-ownership="none">
            <doc xml:whitespace="preserve">Classification to use.</doc>
            <type name="CalComponentClassification"
                  c:type="ECalComponentClassification"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_comment_list"
              c:identifier="e_cal_component_set_comment_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the comments of a calendar component object.  The comment property can
appear several times inside a calendar component, and so a list of
#ECalComponentText structures is used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentText structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_completed"
              c:identifier="e_cal_component_set_completed">
        <doc xml:whitespace="preserve">Sets the date at which a calendar component object was completed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the completion date.</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contact_list"
              c:identifier="e_cal_component_set_contact_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the contact of a calendar component object.  The contact property can
appear several times inside a calendar component, and so a list of
#ECalComponentText structures is used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentText structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_created" c:identifier="e_cal_component_set_created">
        <doc xml:whitespace="preserve">Sets the date in which a calendar component object is created in the calendar
store.  This should only be used inside a calendar store application, i.e.
not by calendar user agents.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the creation date.</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description_list"
              c:identifier="e_cal_component_set_description_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the description of a calendar component object.  Journal components may
have more than one description, and as such this function takes in a list of
#ECalComponentDescription structures.  All other types of components can have
at most one description.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentSummary structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_dtend" c:identifier="e_cal_component_set_dtend">
        <doc xml:whitespace="preserve">Sets the date/time end property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">End date/time.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dtstamp" c:identifier="e_cal_component_set_dtstamp">
        <doc xml:whitespace="preserve">Sets the date/timestamp of a calendar component object.  This should be
called whenever a calendar user agent makes a change to a component's
properties.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Date/timestamp value.</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dtstart" c:identifier="e_cal_component_set_dtstart">
        <doc xml:whitespace="preserve">Sets the date/time start property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start date/time.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_due" c:identifier="e_cal_component_set_due">
        <doc xml:whitespace="preserve">Sets the due date/time property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">End date/time.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_exdate_list"
              c:identifier="e_cal_component_set_exdate_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the list of exception dates in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="exdate_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentDateTime structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_exrule_list"
              c:identifier="e_cal_component_set_exrule_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the list of exception rules in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of struct #icalrecurrencetype structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_geo" c:identifier="e_cal_component_set_geo">
        <doc xml:whitespace="preserve">Sets the geographic position property on a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="geo" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the geographic position property.</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icalcomponent"
              c:identifier="e_cal_component_set_icalcomponent">
        <doc xml:whitespace="preserve">Sets the contents of a calendar component object from an #icalcomponent
structure.  If the @comp already had an #icalcomponent set into it, it will
will be freed automatically if the #icalcomponent does not have a parent
component itself.

Supported component types are VEVENT, VTODO, VJOURNAL, VFREEBUSY, and VTIMEZONE.

type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE on success, FALSE if @icalcomp is an unsupported component</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type name="glong" c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_last_modified"
              c:identifier="e_cal_component_set_last_modified">
        <doc xml:whitespace="preserve">Sets the time at which a calendar component object was last stored in the
calendar store.  This should not be called by plain calendar user agents.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the last time modified.</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_location" c:identifier="e_cal_component_set_location">
        <doc xml:whitespace="preserve">Sets the location property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location value.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_new_vtype"
              c:identifier="e_cal_component_set_new_vtype">
        <doc xml:whitespace="preserve">Clears any existing component data from a calendar component object and
creates a new #icalcomponent of the specified type for it.  The only property
that will be set in the new component will be its unique identifier.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of calendar component to create.</doc>
            <type name="CalComponentVType" c:type="ECalComponentVType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_organizer"
              c:identifier="e_cal_component_set_organizer">
        <doc xml:whitespace="preserve">Sets the organizer of a calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="organizer" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the organizer property</doc>
            <type name="CalComponentOrganizer"
                  c:type="ECalComponentOrganizer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_percent" c:identifier="e_cal_component_set_percent">
        <doc xml:whitespace="preserve">Sets the percent-complete property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the percent-complete property.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_percent_as_int"
              c:identifier="e_cal_component_set_percent_as_int"
              version="2.28">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_priority" c:identifier="e_cal_component_set_priority">
        <doc xml:whitespace="preserve">Sets the priority property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the priority property.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rdate_list"
              c:identifier="e_cal_component_set_rdate_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the list of recurrence dates in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="period_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentPeriod structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_recurid" c:identifier="e_cal_component_set_recurid">
        <doc xml:whitespace="preserve">Sets the recurrence id property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the recurrence id property.</doc>
            <type name="CalComponentRange" c:type="ECalComponentRange*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rrule_list"
              c:identifier="e_cal_component_set_rrule_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the list of recurrence rules in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of struct #icalrecurrencetype structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_sequence" c:identifier="e_cal_component_set_sequence">
        <doc xml:whitespace="preserve">Sets the sequence number of a calendar component object.  Normally this
function should not be called, since the sequence number is incremented
automatically at the proper times.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sequence" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sequence number value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_status"
              c:identifier="e_cal_component_set_status"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the status property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <doc xml:whitespace="preserve">Status value.  You should use #ICAL_STATUS_NONE if you want to unset this property.</doc>
            <type c:type="icalproperty_status"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_summary" c:identifier="e_cal_component_set_summary">
        <doc xml:whitespace="preserve">Sets the summary of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:whitespace="preserve">Summary property and its parameters.</doc>
            <type name="CalComponentText" c:type="ECalComponentText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transparency"
              c:identifier="e_cal_component_set_transparency">
        <doc xml:whitespace="preserve">Sets the time transparency of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="transp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Time transparency value.</doc>
            <type name="CalComponentTransparency"
                  c:type="ECalComponentTransparency"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uid" c:identifier="e_cal_component_set_uid">
        <doc xml:whitespace="preserve">Sets the unique identifier string of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_url" c:identifier="e_cal_component_set_url">
        <doc xml:whitespace="preserve">Sets the uniform resource locator property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="url" transfer-ownership="none">
            <doc xml:whitespace="preserve">URL value.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="strip_errors" c:identifier="e_cal_component_strip_errors">
        <doc xml:whitespace="preserve">Strips all error messages from the calendar component. Those error messages are
added to the iCalendar string representation whenever an invalid is used for
one of its fields.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalComponentPrivate" c:type="ECalComponentPrivate*"/>
      </field>
    </class>
    <record name="CalComponentAlarm" c:type="ECalComponentAlarm" disguised="1">
      <method name="clone"
              c:identifier="e_cal_component_alarm_clone"
              introspectable="0">
        <doc xml:whitespace="preserve">Creates a new alarm subcomponent by copying the information from another one.

original one.  Should be freed with e_cal_component_alarm_free().</doc>
        <return-value>
          <doc xml:whitespace="preserve">A newly-created alarm subcomponent with the same values as the</doc>
          <type name="CalComponentAlarm" c:type="ECalComponentAlarm*"/>
        </return-value>
      </method>
      <method name="free" c:identifier="e_cal_component_alarm_free">
        <doc xml:whitespace="preserve">Frees an alarm structure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_action"
              c:identifier="e_cal_component_alarm_get_action">
        <doc xml:whitespace="preserve">Queries the action type of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="action" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the alarm's action type.</doc>
            <type name="CalComponentAlarmAction"
                  c:type="ECalComponentAlarmAction*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attach"
              c:identifier="e_cal_component_alarm_get_attach"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the attachment property of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attach" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the attachment; should be freed using icalattach_unref().</doc>
            <type c:type="icalattach**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attendee_list"
              c:identifier="e_cal_component_alarm_get_attendee_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Gets the list of attendees associated with an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the list of attendees.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="e_cal_component_alarm_get_description">
        <doc xml:whitespace="preserve">Queries the description property of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="description" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the description property and its parameters.</doc>
            <type name="CalComponentText" c:type="ECalComponentText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icalcomponent"
              c:identifier="e_cal_component_alarm_get_icalcomponent"
              introspectable="0">
        <doc xml:whitespace="preserve">Get the icalcomponent associated with the given #ECalComponentAlarm.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the icalcomponent.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
      </method>
      <method name="get_repeat"
              c:identifier="e_cal_component_alarm_get_repeat">
        <doc xml:whitespace="preserve">Queries the repeat/duration properties of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="repeat" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the repeat/duration properties.</doc>
            <type name="CalComponentAlarmRepeat"
                  c:type="ECalComponentAlarmRepeat*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_trigger"
              c:identifier="e_cal_component_alarm_get_trigger">
        <doc xml:whitespace="preserve">Queries the trigger time for an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="trigger" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the trigger time.</doc>
            <type name="CalComponentAlarmTrigger"
                  c:type="ECalComponentAlarmTrigger*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uid" c:identifier="e_cal_component_alarm_get_uid">
        <doc xml:whitespace="preserve">Queries the unique identifier of an alarm subcomponent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">UID of the alarm.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="has_attendees"
              c:identifier="e_cal_component_alarm_has_attendees">
        <doc xml:whitespace="preserve">Queries an alarm to see if it has attendees associated with it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are attendees in the alarm, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_action"
              c:identifier="e_cal_component_alarm_set_action">
        <doc xml:whitespace="preserve">Sets the action type for an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="action" transfer-ownership="none">
            <doc xml:whitespace="preserve">Action type.</doc>
            <type name="CalComponentAlarmAction"
                  c:type="ECalComponentAlarmAction"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attach"
              c:identifier="e_cal_component_alarm_set_attach"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the attachment property of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attach" transfer-ownership="none">
            <doc xml:whitespace="preserve">Attachment property or NULL to remove an existing property.</doc>
            <type c:type="icalattach*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attendee_list"
              c:identifier="e_cal_component_alarm_set_attendee_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the list of attendees for an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of attendees.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="e_cal_component_alarm_set_description">
        <doc xml:whitespace="preserve">Sets the description property of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="description" transfer-ownership="none">
            <doc xml:whitespace="preserve">Description property and its parameters, or NULL for no description.</doc>
            <type name="CalComponentText" c:type="ECalComponentText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_repeat"
              c:identifier="e_cal_component_alarm_set_repeat">
        <doc xml:whitespace="preserve">Sets the repeat/duration values for an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="repeat" transfer-ownership="none">
            <doc xml:whitespace="preserve">Repeat/duration values.  To remove any repetitions from the alarm, set the @repeat.repetitions to 0.</doc>
            <type name="CalComponentAlarmRepeat"
                  c:type="ECalComponentAlarmRepeat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_trigger"
              c:identifier="e_cal_component_alarm_set_trigger">
        <doc xml:whitespace="preserve">Sets the trigger time of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="trigger" transfer-ownership="none">
            <doc xml:whitespace="preserve">Trigger time structure.</doc>
            <type name="CalComponentAlarmTrigger"
                  c:type="ECalComponentAlarmTrigger"/>
          </parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="e_cal_component_alarm_new"
                introspectable="0">
        <doc xml:whitespace="preserve">Create a new alarm object.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a new alarm component</doc>
          <type name="CalComponentAlarm" c:type="ECalComponentAlarm*"/>
        </return-value>
      </function>
    </record>
    <enumeration name="CalComponentAlarmAction"
                 c:type="ECalComponentAlarmAction">
      <member name="none" value="0" c:identifier="E_CAL_COMPONENT_ALARM_NONE"/>
      <member name="audio"
              value="1"
              c:identifier="E_CAL_COMPONENT_ALARM_AUDIO"/>
      <member name="display"
              value="2"
              c:identifier="E_CAL_COMPONENT_ALARM_DISPLAY"/>
      <member name="email"
              value="3"
              c:identifier="E_CAL_COMPONENT_ALARM_EMAIL"/>
      <member name="procedure"
              value="4"
              c:identifier="E_CAL_COMPONENT_ALARM_PROCEDURE"/>
      <member name="unknown"
              value="5"
              c:identifier="E_CAL_COMPONENT_ALARM_UNKNOWN"/>
    </enumeration>
    <record name="CalComponentAlarmInstance"
            c:type="ECalComponentAlarmInstance">
      <field name="auid" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="trigger" writable="1">
        <type name="glong" c:type="time_t"/>
      </field>
      <field name="occur_start" writable="1">
        <type name="glong" c:type="time_t"/>
      </field>
      <field name="occur_end" writable="1">
        <type name="glong" c:type="time_t"/>
      </field>
    </record>
    <record name="CalComponentAlarmRepeat" c:type="ECalComponentAlarmRepeat">
      <field name="repetitions" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="duration" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <record name="CalComponentAlarmTrigger" c:type="ECalComponentAlarmTrigger">
      <field name="type" writable="1">
        <type name="CalComponentAlarmTriggerType"
              c:type="ECalComponentAlarmTriggerType"/>
      </field>
      <union name="u" c:type="u">
        <field name="rel_duration" writable="1">
          <type name="gpointer" c:type="gpointer"/>
        </field>
        <field name="abs_time" writable="1">
          <type name="gpointer" c:type="gpointer"/>
        </field>
      </union>
    </record>
    <enumeration name="CalComponentAlarmTriggerType"
                 c:type="ECalComponentAlarmTriggerType">
      <member name="none"
              value="0"
              c:identifier="E_CAL_COMPONENT_ALARM_TRIGGER_NONE"/>
      <member name="relative_start"
              value="1"
              c:identifier="E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START"/>
      <member name="relative_end"
              value="2"
              c:identifier="E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_END"/>
      <member name="absolute"
              value="3"
              c:identifier="E_CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE"/>
    </enumeration>
    <record name="CalComponentAlarms" c:type="ECalComponentAlarms">
      <field name="comp" writable="1">
        <type name="CalComponent" c:type="ECalComponent*"/>
      </field>
      <field name="alarms" writable="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <method name="free" c:identifier="e_cal_component_alarms_free">
        <doc xml:whitespace="preserve">Frees a #ECalComponentAlarms structure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </record>
    <record name="CalComponentAttendee" c:type="ECalComponentAttendee">
      <field name="value" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="member" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="cutype" introspectable="0" writable="1">
        <type c:type="icalparameter_cutype"/>
      </field>
      <field name="role" introspectable="0" writable="1">
        <type c:type="icalparameter_role"/>
      </field>
      <field name="status" introspectable="0" writable="1">
        <type c:type="icalparameter_partstat"/>
      </field>
      <field name="rsvp" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="delto" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="delfrom" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="sentby" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="cn" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="language" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="CalComponentClass"
            c:type="ECalComponentClass"
            glib:is-gtype-struct-for="CalComponent">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="CalComponentClassification"
                 c:type="ECalComponentClassification">
      <member name="none" value="0" c:identifier="E_CAL_COMPONENT_CLASS_NONE"/>
      <member name="public"
              value="1"
              c:identifier="E_CAL_COMPONENT_CLASS_PUBLIC"/>
      <member name="private"
              value="2"
              c:identifier="E_CAL_COMPONENT_CLASS_PRIVATE"/>
      <member name="confidential"
              value="3"
              c:identifier="E_CAL_COMPONENT_CLASS_CONFIDENTIAL"/>
      <member name="unknown"
              value="4"
              c:identifier="E_CAL_COMPONENT_CLASS_UNKNOWN"/>
    </enumeration>
    <record name="CalComponentDateTime" c:type="ECalComponentDateTime">
      <field name="value" writable="1">
        <type name="gpointer" c:type="gpointer*"/>
      </field>
      <field name="tzid" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <enumeration name="CalComponentField" c:type="ECalComponentField">
      <member name="categories"
              value="0"
              c:identifier="E_CAL_COMPONENT_FIELD_CATEGORIES"/>
      <member name="classification"
              value="1"
              c:identifier="E_CAL_COMPONENT_FIELD_CLASSIFICATION"/>
      <member name="completed"
              value="2"
              c:identifier="E_CAL_COMPONENT_FIELD_COMPLETED"/>
      <member name="dtend"
              value="3"
              c:identifier="E_CAL_COMPONENT_FIELD_DTEND"/>
      <member name="dtstart"
              value="4"
              c:identifier="E_CAL_COMPONENT_FIELD_DTSTART"/>
      <member name="due" value="5" c:identifier="E_CAL_COMPONENT_FIELD_DUE"/>
      <member name="geo" value="6" c:identifier="E_CAL_COMPONENT_FIELD_GEO"/>
      <member name="percent"
              value="7"
              c:identifier="E_CAL_COMPONENT_FIELD_PERCENT"/>
      <member name="priority"
              value="8"
              c:identifier="E_CAL_COMPONENT_FIELD_PRIORITY"/>
      <member name="summary"
              value="9"
              c:identifier="E_CAL_COMPONENT_FIELD_SUMMARY"/>
      <member name="transparency"
              value="10"
              c:identifier="E_CAL_COMPONENT_FIELD_TRANSPARENCY"/>
      <member name="url" value="11" c:identifier="E_CAL_COMPONENT_FIELD_URL"/>
      <member name="has_alarms"
              value="12"
              c:identifier="E_CAL_COMPONENT_FIELD_HAS_ALARMS"/>
      <member name="icon"
              value="13"
              c:identifier="E_CAL_COMPONENT_FIELD_ICON"/>
      <member name="complete"
              value="14"
              c:identifier="E_CAL_COMPONENT_FIELD_COMPLETE"/>
      <member name="recurring"
              value="15"
              c:identifier="E_CAL_COMPONENT_FIELD_RECURRING"/>
      <member name="overdue"
              value="16"
              c:identifier="E_CAL_COMPONENT_FIELD_OVERDUE"/>
      <member name="color"
              value="17"
              c:identifier="E_CAL_COMPONENT_FIELD_COLOR"/>
      <member name="status"
              value="18"
              c:identifier="E_CAL_COMPONENT_FIELD_STATUS"/>
      <member name="component"
              value="19"
              c:identifier="E_CAL_COMPONENT_FIELD_COMPONENT"/>
      <member name="location"
              value="20"
              c:identifier="E_CAL_COMPONENT_FIELD_LOCATION"/>
      <member name="num_fields"
              value="21"
              c:identifier="E_CAL_COMPONENT_FIELD_NUM_FIELDS"/>
    </enumeration>
    <record name="CalComponentId" c:type="ECalComponentId">
      <field name="uid" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="rid" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="CalComponentOrganizer" c:type="ECalComponentOrganizer">
      <field name="value" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="sentby" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="cn" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="language" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="CalComponentPeriod" c:type="ECalComponentPeriod">
      <field name="type" writable="1">
        <type name="CalComponentPeriodType" c:type="ECalComponentPeriodType"/>
      </field>
      <field name="start" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <union name="u" c:type="u">
        <field name="end" writable="1">
          <type name="gpointer" c:type="gpointer"/>
        </field>
        <field name="duration" writable="1">
          <type name="gpointer" c:type="gpointer"/>
        </field>
      </union>
    </record>
    <enumeration name="CalComponentPeriodType"
                 c:type="ECalComponentPeriodType">
      <member name="datetime"
              value="0"
              c:identifier="E_CAL_COMPONENT_PERIOD_DATETIME"/>
      <member name="duration"
              value="1"
              c:identifier="E_CAL_COMPONENT_PERIOD_DURATION"/>
    </enumeration>
    <record name="CalComponentPrivate"
            c:type="ECalComponentPrivate"
            disguised="1">
    </record>
    <record name="CalComponentRange" c:type="ECalComponentRange">
      <field name="type" writable="1">
        <type name="CalComponentRangeType" c:type="ECalComponentRangeType"/>
      </field>
      <field name="datetime" writable="1">
        <type name="CalComponentDateTime" c:type="ECalComponentDateTime"/>
      </field>
    </record>
    <enumeration name="CalComponentRangeType" c:type="ECalComponentRangeType">
      <member name="single"
              value="0"
              c:identifier="E_CAL_COMPONENT_RANGE_SINGLE"/>
      <member name="thisprior"
              value="1"
              c:identifier="E_CAL_COMPONENT_RANGE_THISPRIOR"/>
      <member name="thisfuture"
              value="2"
              c:identifier="E_CAL_COMPONENT_RANGE_THISFUTURE"/>
    </enumeration>
    <record name="CalComponentText" c:type="ECalComponentText">
      <field name="value" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="altrep" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <enumeration name="CalComponentTransparency"
                 c:type="ECalComponentTransparency">
      <member name="none"
              value="0"
              c:identifier="E_CAL_COMPONENT_TRANSP_NONE"/>
      <member name="transparent"
              value="1"
              c:identifier="E_CAL_COMPONENT_TRANSP_TRANSPARENT"/>
      <member name="opaque"
              value="2"
              c:identifier="E_CAL_COMPONENT_TRANSP_OPAQUE"/>
      <member name="unknown"
              value="3"
              c:identifier="E_CAL_COMPONENT_TRANSP_UNKNOWN"/>
    </enumeration>
    <enumeration name="CalComponentVType" c:type="ECalComponentVType">
      <member name="no_type" value="0" c:identifier="E_CAL_COMPONENT_NO_TYPE"/>
      <member name="event" value="1" c:identifier="E_CAL_COMPONENT_EVENT"/>
      <member name="todo" value="2" c:identifier="E_CAL_COMPONENT_TODO"/>
      <member name="journal" value="3" c:identifier="E_CAL_COMPONENT_JOURNAL"/>
      <member name="freebusy"
              value="4"
              c:identifier="E_CAL_COMPONENT_FREEBUSY"/>
      <member name="timezone"
              value="5"
              c:identifier="E_CAL_COMPONENT_TIMEZONE"/>
    </enumeration>
    <enumeration name="CalLoadState" c:type="ECalLoadState">
      <member name="not_loaded"
              value="0"
              c:identifier="E_CAL_LOAD_NOT_LOADED"/>
      <member name="authenticating"
              value="1"
              c:identifier="E_CAL_LOAD_AUTHENTICATING"/>
      <member name="loading" value="2" c:identifier="E_CAL_LOAD_LOADING"/>
      <member name="loaded" value="3" c:identifier="E_CAL_LOAD_LOADED"/>
    </enumeration>
    <record name="CalPrivate" c:type="ECalPrivate" disguised="1">
    </record>
    <callback name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="comp" transfer-ownership="none">
          <type name="CalComponent" c:type="ECalComponent*"/>
        </parameter>
        <parameter name="instance_start" transfer-ownership="none">
          <type name="glong" c:type="time_t"/>
        </parameter>
        <parameter name="instance_end" transfer-ownership="none">
          <type name="glong" c:type="time_t"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="CalRecurResolveTimezoneFn"
              c:type="ECalRecurResolveTimezoneFn"
              introspectable="0">
      <return-value>
        <type c:type="icaltimezone*"/>
      </return-value>
      <parameters>
        <parameter name="tzid" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="CalSetModeStatus" c:type="ECalSetModeStatus">
      <member name="success" value="0" c:identifier="E_CAL_SET_MODE_SUCCESS"/>
      <member name="error" value="1" c:identifier="E_CAL_SET_MODE_ERROR"/>
      <member name="not_supported"
              value="2"
              c:identifier="E_CAL_SET_MODE_NOT_SUPPORTED"/>
    </enumeration>
    <enumeration name="CalSetModeStatusEnum"
                 glib:type-name="ECalSetModeStatusEnum"
                 glib:get-type="e_cal_set_mode_status_enum_get_type"
                 c:type="ECalSetModeStatusEnum">
      <member name="success"
              value="0"
              c:identifier="ECalSetModeSuccess"
              glib:nick="success"/>
      <member name="error"
              value="1"
              c:identifier="ECalSetModeError"
              glib:nick="error"/>
      <member name="unsupported"
              value="2"
              c:identifier="ECalSetModeNotSupported"
              glib:nick="unsupported"/>
    </enumeration>
    <enumeration name="CalSourceType" c:type="ECalSourceType">
      <member name="event" value="0" c:identifier="E_CAL_SOURCE_TYPE_EVENT"/>
      <member name="todo" value="1" c:identifier="E_CAL_SOURCE_TYPE_TODO"/>
      <member name="journal"
              value="2"
              c:identifier="E_CAL_SOURCE_TYPE_JOURNAL"/>
      <member name="last" value="3" c:identifier="E_CAL_SOURCE_TYPE_LAST"/>
    </enumeration>
    <enumeration name="CalSourceTypeEnum"
                 glib:type-name="ECalSourceTypeEnum"
                 glib:get-type="e_cal_source_type_enum_get_type"
                 c:type="ECalSourceTypeEnum">
      <member name="Event" value="0" c:identifier="Event" glib:nick="Event"/>
      <member name="ToDo" value="1" c:identifier="ToDo" glib:nick="ToDo"/>
      <member name="Journal"
              value="2"
              c:identifier="Journal"
              glib:nick="Journal"/>
      <member name="Invalid"
              value="3"
              c:identifier="Invalid"
              glib:nick="Invalid"/>
    </enumeration>
    <class name="CalView"
           c:symbol-prefix="cal_view"
           c:type="ECalView"
           parent="GObject.Object"
           glib:type-name="ECalView"
           glib:get-type="e_cal_view_get_type"
           glib:type-struct="CalViewClass">
      <virtual-method name="objects_added" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_modified" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_removed" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uids" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="view_complete">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="CalendarStatus" c:type="ECalendarStatus"/>
          </parameter>
          <parameter name="error_msg" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="view_done">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="CalendarStatus" c:type="ECalendarStatus"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="view_progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="percent" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_client"
              c:identifier="e_cal_view_get_client"
              version="2.22"
              introspectable="0"
              deprecated="Use #ECalClientView"
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Get the #ECal associated with this view.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the associated client.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </return-value>
      </method>
      <method name="start"
              c:identifier="e_cal_view_start"
              version="2.22"
              deprecated="Use #ECalClientView"
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Starts a live query to the calendar/tasks backend.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="stop"
              c:identifier="e_cal_view_stop"
              version="2.32"
              deprecated="Use #ECalClientView"
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Stops a live query to the calendar/tasks backend.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="client"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Cal"/>
      </property>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer"/>
      </property>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalViewPrivate" c:type="ECalViewPrivate*"/>
      </field>
      <glib:signal name="objects-added" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-modified" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-removed" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List">
              <type name="CalComponentId"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="view-complete" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="view-done" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="view-progress" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CalViewClass"
            c:type="ECalViewClass"
            glib:is-gtype-struct-for="CalView">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="objects_added" introspectable="0">
        <callback name="objects_added" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.List" c:type="GList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_modified" introspectable="0">
        <callback name="objects_modified" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.List" c:type="GList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_removed" introspectable="0">
        <callback name="objects_removed" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="uids" transfer-ownership="none">
              <type name="GLib.List" c:type="GList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="view_progress">
        <callback name="view_progress">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="percent" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="view_done">
        <callback name="view_done">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="CalendarStatus" c:type="ECalendarStatus"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="view_complete">
        <callback name="view_complete">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="CalendarStatus" c:type="ECalendarStatus"/>
            </parameter>
            <parameter name="error_msg" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="CalViewPrivate" c:type="ECalViewPrivate" disguised="1">
    </record>
    <enumeration name="CalendarStatus" c:type="ECalendarStatus">
      <member name="ok" value="0" c:identifier="E_CALENDAR_STATUS_OK"/>
      <member name="invalid_arg"
              value="1"
              c:identifier="E_CALENDAR_STATUS_INVALID_ARG"/>
      <member name="busy" value="2" c:identifier="E_CALENDAR_STATUS_BUSY"/>
      <member name="repository_offline"
              value="3"
              c:identifier="E_CALENDAR_STATUS_REPOSITORY_OFFLINE"/>
      <member name="no_such_calendar"
              value="4"
              c:identifier="E_CALENDAR_STATUS_NO_SUCH_CALENDAR"/>
      <member name="object_not_found"
              value="5"
              c:identifier="E_CALENDAR_STATUS_OBJECT_NOT_FOUND"/>
      <member name="invalid_object"
              value="6"
              c:identifier="E_CALENDAR_STATUS_INVALID_OBJECT"/>
      <member name="uri_not_loaded"
              value="7"
              c:identifier="E_CALENDAR_STATUS_URI_NOT_LOADED"/>
      <member name="uri_already_loaded"
              value="8"
              c:identifier="E_CALENDAR_STATUS_URI_ALREADY_LOADED"/>
      <member name="permission_denied"
              value="9"
              c:identifier="E_CALENDAR_STATUS_PERMISSION_DENIED"/>
      <member name="unknown_user"
              value="10"
              c:identifier="E_CALENDAR_STATUS_UNKNOWN_USER"/>
      <member name="object_id_already_exists"
              value="11"
              c:identifier="E_CALENDAR_STATUS_OBJECT_ID_ALREADY_EXISTS"/>
      <member name="protocol_not_supported"
              value="12"
              c:identifier="E_CALENDAR_STATUS_PROTOCOL_NOT_SUPPORTED"/>
      <member name="cancelled"
              value="13"
              c:identifier="E_CALENDAR_STATUS_CANCELLED"/>
      <member name="could_not_cancel"
              value="14"
              c:identifier="E_CALENDAR_STATUS_COULD_NOT_CANCEL"/>
      <member name="authentication_failed"
              value="15"
              c:identifier="E_CALENDAR_STATUS_AUTHENTICATION_FAILED"/>
      <member name="authentication_required"
              value="16"
              c:identifier="E_CALENDAR_STATUS_AUTHENTICATION_REQUIRED"/>
      <member name="dbus_exception"
              value="17"
              c:identifier="E_CALENDAR_STATUS_DBUS_EXCEPTION"/>
      <member name="other_error"
              value="18"
              c:identifier="E_CALENDAR_STATUS_OTHER_ERROR"/>
      <member name="invalid_server_version"
              value="19"
              c:identifier="E_CALENDAR_STATUS_INVALID_SERVER_VERSION"/>
      <member name="not_supported"
              value="20"
              c:identifier="E_CALENDAR_STATUS_NOT_SUPPORTED"/>
    </enumeration>
    <bitfield name="DataCalMode" version="3.2" c:type="EDataCalMode">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <member name="ocal" value="1" c:identifier="Local"/>
      <member name="emote" value="2" c:identifier="Remote"/>
      <member name="nymode" value="7" c:identifier="AnyMode"/>
    </bitfield>
    <function name="calendar_error_quark"
              c:identifier="e_calendar_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
