<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="ECal">
<refmeta>
<refentrytitle role="top_of_page">ECal</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LIBECAL Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>ECal</refname>
<refpurpose>Permits access to a calendar or list of tasks.</refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>



            <link linkend="ECal-struct">ECal</link>;
#define     <link linkend="E-CAL-SET-MODE-STATUS-ENUM-TYPE:CAPS">E_CAL_SET_MODE_STATUS_ENUM_TYPE</link>
#define     <link linkend="CAL-MODE-ENUM-TYPE:CAPS">CAL_MODE_ENUM_TYPE</link>
enum        <link linkend="ECalSetModeStatus">ECalSetModeStatus</link>;
enum        <link linkend="ECalLoadState">ECalLoadState</link>;
<link linkend="char">char</link>*       (<link linkend="ECalAuthFunc">*ECalAuthFunc</link>)                 (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *prompt,
                                             const <link linkend="char">char</link> *key,
                                             <link linkend="gpointer">gpointer</link> user_data);
<link linkend="GType">GType</link>       <link linkend="e-cal-open-status-enum-get-type">e_cal_open_status_enum_get_type</link> (void);
<link linkend="GType">GType</link>       <link linkend="e-cal-set-mode-status-enum-get-type">e_cal_set_mode_status_enum_get_type</link>
                                            (void);
<link linkend="GType">GType</link>       <link linkend="cal-mode-enum-get-type">cal_mode_enum_get_type</link>          (void);
<link linkend="ECal">ECal</link>*       <link linkend="e-cal-new">e_cal_new</link>                       (<link linkend="ESource">ESource</link> *source,
                                             <link linkend="ECalSourceType">ECalSourceType</link> type);
<link linkend="void">void</link>        <link linkend="e-cal-set-auth-func">e_cal_set_auth_func</link>             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="ECalAuthFunc">ECalAuthFunc</link> func,
                                             <link linkend="gpointer">gpointer</link> data);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-open">e_cal_open</link>                      (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="gboolean">gboolean</link> only_if_exists,
                                             <link linkend="GError">GError</link> **error);
<link linkend="void">void</link>        <link linkend="e-cal-open-async">e_cal_open_async</link>                (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="gboolean">gboolean</link> only_if_exists);
<link linkend="GList">GList</link>*      <link linkend="e-cal-uri-list">e_cal_uri_list</link>                  (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="CalMode">CalMode</link> mode);
<link linkend="ECalLoadState">ECalLoadState</link> <link linkend="e-cal-get-load-state">e_cal_get_load_state</link>          (<link linkend="ECal">ECal</link> *ecal);
const <link linkend="char">char</link>* <link linkend="e-cal-get-uri">e_cal_get_uri</link>                   (<link linkend="ECal">ECal</link> *ecal);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-is-read-only">e_cal_is_read_only</link>              (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="gboolean">gboolean</link> *read_only,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-cal-address">e_cal_get_cal_address</link>           (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="char">char</link> **cal_address,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-alarm-email-address">e_cal_get_alarm_email_address</link>   (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="char">char</link> **alarm_address,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-ldap-attribute">e_cal_get_ldap_attribute</link>        (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="char">char</link> **ldap_attribute,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-one-alarm-only">e_cal_get_one_alarm_only</link>        (<link linkend="ECal">ECal</link> *ecal);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-organizer-must-attend">e_cal_get_organizer_must_attend</link> (<link linkend="ECal">ECal</link> *ecal);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-save-schedules">e_cal_get_save_schedules</link>        (<link linkend="ECal">ECal</link> *ecal);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-static-capability">e_cal_get_static_capability</link>     (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *cap);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-set-mode">e_cal_set_mode</link>                  (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="CalMode">CalMode</link> mode);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-default-object">e_cal_get_default_object</link>        (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> **icalcomp,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-object">e_cal_get_object</link>                (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *uid,
                                             const <link linkend="char">char</link> *rid,
                                             <link linkend="icalcomponent">icalcomponent</link> **icalcomp,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-changes">e_cal_get_changes</link>               (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *change_id,
                                             <link linkend="GList">GList</link> **changes,
                                             <link linkend="GError">GError</link> **error);
<link linkend="void">void</link>        <link linkend="e-cal-free-change-list">e_cal_free_change_list</link>          (<link linkend="GList">GList</link> *list);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-object-list">e_cal_get_object_list</link>           (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *query,
                                             <link linkend="GList">GList</link> **objects,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-object-list-as-comp">e_cal_get_object_list_as_comp</link>   (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *query,
                                             <link linkend="GList">GList</link> **objects,
                                             <link linkend="GError">GError</link> **error);
<link linkend="void">void</link>        <link linkend="e-cal-free-object-list">e_cal_free_object_list</link>          (<link linkend="GList">GList</link> *objects);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-free-busy">e_cal_get_free_busy</link>             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="GList">GList</link> *users,
                                             <link linkend="time-t">time_t</link> start,
                                             <link linkend="time-t">time_t</link> end,
                                             <link linkend="GList">GList</link> **freebusy,
                                             <link linkend="GError">GError</link> **error);
<link linkend="void">void</link>        <link linkend="e-cal-generate-instances">e_cal_generate_instances</link>        (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="time-t">time_t</link> start,
                                             <link linkend="time-t">time_t</link> end,
                                             <link linkend="ECalRecurInstanceFn">ECalRecurInstanceFn</link> cb,
                                             <link linkend="gpointer">gpointer</link> cb_data);
<link linkend="GSList">GSList</link>*     <link linkend="e-cal-get-alarms-in-range">e_cal_get_alarms_in_range</link>       (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="time-t">time_t</link> start,
                                             <link linkend="time-t">time_t</link> end);
<link linkend="void">void</link>        <link linkend="e-cal-free-alarms">e_cal_free_alarms</link>               (<link linkend="GSList">GSList</link> *comp_alarms);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-alarms-for-object">e_cal_get_alarms_for_object</link>     (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="ECalComponentId">ECalComponentId</link> *id,
                                             <link linkend="time-t">time_t</link> start,
                                             <link linkend="time-t">time_t</link> end,
                                             <link linkend="ECalComponentAlarms">ECalComponentAlarms</link> **alarms);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-create-object">e_cal_create_object</link>             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp,
                                             <link linkend="char">char</link> **uid,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-modify-object">e_cal_modify_object</link>             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp,
                                             <link linkend="CalObjModType">CalObjModType</link> mod,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-remove-object">e_cal_remove_object</link>             (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *uid,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-remove-object-with-mod">e_cal_remove_object_with_mod</link>    (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *uid,
                                             const <link linkend="char">char</link> *rid,
                                             <link linkend="CalObjModType">CalObjModType</link> mod,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-discard-alarm">e_cal_discard_alarm</link>             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="ECalComponent">ECalComponent</link> *comp,
                                             const <link linkend="char">char</link> *auid,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-receive-objects">e_cal_receive_objects</link>           (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-send-objects">e_cal_send_objects</link>              (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp,
                                             <link linkend="GList">GList</link> **users,
                                             <link linkend="icalcomponent">icalcomponent</link> **modified_icalcomp,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-timezone">e_cal_get_timezone</link>              (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *tzid,
                                             <link linkend="icaltimezone">icaltimezone</link> **zone,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-add-timezone">e_cal_add_timezone</link>              (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icaltimezone">icaltimezone</link> *izone,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-set-default-timezone">e_cal_set_default_timezone</link>      (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icaltimezone">icaltimezone</link> *zone,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-cal-get-query">e_cal_get_query</link>                 (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *sexp,
                                             <link linkend="ECalView">ECalView</link> **query,
                                             <link linkend="GError">GError</link> **error);
<link linkend="icaltimezone">icaltimezone</link>* <link linkend="e-cal-resolve-tzid-cb">e_cal_resolve_tzid_cb</link>         (const <link linkend="char">char</link> *tzid,
                                             <link linkend="gpointer">gpointer</link> data);
<link linkend="char">char</link>*       <link linkend="e-cal-get-component-as-string">e_cal_get_component_as_string</link>   (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp);
const <link linkend="char">char</link>* <link linkend="e-cal-get-error-message">e_cal_get_error_message</link>         (<link linkend="ECalendarStatus">ECalendarStatus</link> status);


</synopsis>
</refsynopsisdiv>

<refsect1 role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<synopsis>

  <link linkend="GObject">GObject</link>
   +----ECal
</synopsis>

</refsect1>






<refsect1 role="signal_proto">
<title role="signal_proto.title">Signals</title>
<synopsis>

&quot;<link linkend="ECal-backend-died">backend-died</link>&quot;
            <link linkend="void">void</link>        user_function      (<link linkend="ECal">ECal</link>    *ecal,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run first
&quot;<link linkend="ECal-backend-error">backend-error</link>&quot;
            <link linkend="void">void</link>        user_function      (<link linkend="ECal">ECal</link>    *ecal,
                                            <link linkend="gchar">gchar</link>   *arg1,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run first
&quot;<link linkend="ECal-cal-opened">cal-opened</link>&quot;
            <link linkend="void">void</link>        user_function      (<link linkend="ECal">ECal</link>    *ecal,
                                            <link linkend="gint">gint</link>     arg1,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run first
&quot;<link linkend="ECal-cal-set-mode">cal-set-mode</link>&quot;
            <link linkend="void">void</link>        user_function      (<link linkend="ECal">ECal</link>                  *ecal,
                                            <link linkend="ECalSetModeStatusEnum">ECalSetModeStatusEnum</link> *arg1,
                                            <link linkend="CalModeEnum">CalModeEnum</link>           *arg2,
                                            <link linkend="gpointer">gpointer</link>               user_data)      : Run first
</synopsis>
</refsect1>


<refsect1 role="desc">
<title role="desc.title">Description</title>
<para>
Represents an entire calendar or task list, not individual items within them.2
</para>
</refsect1>

<refsect1 role="details">
<title role="details.title">Details</title>
<refsect2>
<title><anchor id="ECal-struct" role="struct"/>ECal</title>
<indexterm><primary>ECal</primary></indexterm><programlisting>typedef struct _ECal ECal;</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="E-CAL-SET-MODE-STATUS-ENUM-TYPE:CAPS" role="macro"/>E_CAL_SET_MODE_STATUS_ENUM_TYPE</title>
<indexterm><primary>E_CAL_SET_MODE_STATUS_ENUM_TYPE</primary></indexterm><programlisting>#define E_CAL_SET_MODE_STATUS_ENUM_TYPE (e_cal_set_mode_status_enum_get_type ())
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="CAL-MODE-ENUM-TYPE:CAPS" role="macro"/>CAL_MODE_ENUM_TYPE</title>
<indexterm><primary>CAL_MODE_ENUM_TYPE</primary></indexterm><programlisting>#define CAL_MODE_ENUM_TYPE                   (cal_mode_enum_get_type ())
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="ECalSetModeStatus" role="enum"/>enum ECalSetModeStatus</title>
<indexterm><primary>ECalSetModeStatus</primary></indexterm><programlisting>typedef enum {
	E_CAL_SET_MODE_SUCCESS,
	E_CAL_SET_MODE_ERROR,
	E_CAL_SET_MODE_NOT_SUPPORTED
} ECalSetModeStatus;
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="ECalLoadState" role="enum"/>enum ECalLoadState</title>
<indexterm><primary>ECalLoadState</primary></indexterm><programlisting>typedef enum {
	E_CAL_LOAD_NOT_LOADED,
	E_CAL_LOAD_AUTHENTICATING,
	E_CAL_LOAD_LOADING,
	E_CAL_LOAD_LOADED
} ECalLoadState;
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="ECalAuthFunc" role="function"/>ECalAuthFunc ()</title>
<indexterm><primary>ECalAuthFunc</primary></indexterm><programlisting><link linkend="char">char</link>*       (*ECalAuthFunc)                 (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *prompt,
                                             const <link linkend="char">char</link> *key,
                                             <link linkend="gpointer">gpointer</link> user_data);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>prompt</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-open-status-enum-get-type" role="function"/>e_cal_open_status_enum_get_type ()</title>
<indexterm><primary>e_cal_open_status_enum_get_type</primary></indexterm><programlisting><link linkend="GType">GType</link>       e_cal_open_status_enum_get_type (void);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-set-mode-status-enum-get-type" role="function"/>e_cal_set_mode_status_enum_get_type ()</title>
<indexterm><primary>e_cal_set_mode_status_enum_get_type</primary></indexterm><programlisting><link linkend="GType">GType</link>       e_cal_set_mode_status_enum_get_type
                                            (void);</programlisting>
<para>
Registers the <link linkend="ECalSetModeStatusEnum"><type>ECalSetModeStatusEnum</type></link> type with glib.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the ID of the <link linkend="ECalSetModeStatusEnum"><type>ECalSetModeStatusEnum</type></link> type.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cal-mode-enum-get-type" role="function"/>cal_mode_enum_get_type ()</title>
<indexterm><primary>cal_mode_enum_get_type</primary></indexterm><programlisting><link linkend="GType">GType</link>       cal_mode_enum_get_type          (void);</programlisting>
<para>
Registers the <link linkend="CalModeEnum"><type>CalModeEnum</type></link> type with glib.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the ID of the <link linkend="CalModeEnum"><type>CalModeEnum</type></link> type.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-new" role="function"/>e_cal_new ()</title>
<indexterm><primary>e_cal_new</primary></indexterm><programlisting><link linkend="ECal">ECal</link>*       e_cal_new                       (<link linkend="ESource">ESource</link> *source,
                                             <link linkend="ECalSourceType">ECalSourceType</link> type);</programlisting>
<para>
Creates a new calendar client. This does not open the calendar itself,
for that, <link linkend="e-cal-open"><type>e_cal_open</type></link> or <link linkend="e-cal-open-async"><type>e_cal_open_async</type></link> needs to be called.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>source</parameter>&nbsp;:</term>
<listitem><simpara> An <link linkend="ESource"><type>ESource</type></link> to be used for the client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>type</parameter>&nbsp;:</term>
<listitem><simpara> Type of the client.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> A newly-created calendar client, or NULL if the client could
not be constructed because it could not contact the calendar server.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-set-auth-func" role="function"/>e_cal_set_auth_func ()</title>
<indexterm><primary>e_cal_set_auth_func</primary></indexterm><programlisting><link linkend="void">void</link>        e_cal_set_auth_func             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="ECalAuthFunc">ECalAuthFunc</link> func,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>
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.
</para>
<para>
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.
</para>
<para>
The authentication function has the following signature
(ECalAuthFunc):
char * auth_func (ECal *ecal,
		  const gchar *prompt,
		  const gchar *key,
		  gpointer user_data)</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>func</parameter>&nbsp;:</term>
<listitem><simpara> The authentication function
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> User data to be used when calling the authentication function
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-open" role="function"/>e_cal_open ()</title>
<indexterm><primary>e_cal_open</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_open                      (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="gboolean">gboolean</link> only_if_exists,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
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.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>only_if_exists</parameter>&nbsp;:</term>
<listitem><simpara> 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.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE on success, FALSE on failure to issue the open request.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-open-async" role="function"/>e_cal_open_async ()</title>
<indexterm><primary>e_cal_open_async</primary></indexterm><programlisting><link linkend="void">void</link>        e_cal_open_async                (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="gboolean">gboolean</link> only_if_exists);</programlisting>
<para>
Open the calendar asynchronously.  The calendar will emit the
"cal_opened" signal when the operation has completed.
</para>
<para>
Because this operation runs in another thread, any authentication
callback set on the calendar will be called from this other thread.
See #<link linkend="e-cal-set-auth-func"><function>e_cal_set_auth_func()</function></link> for details.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>only_if_exists</parameter>&nbsp;:</term>
<listitem><simpara> If TRUE, then only open the calendar if it already
exists.  If FALSE, then create a new calendar if it doesn't already
exist.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-uri-list" role="function"/>e_cal_uri_list ()</title>
<indexterm><primary>e_cal_uri_list</primary></indexterm><programlisting><link linkend="GList">GList</link>*      e_cal_uri_list                  (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="CalMode">CalMode</link> mode);</programlisting>
<para>
Retrieves a list of all calendar clients for the given mode.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>mode</parameter>&nbsp;:</term>
<listitem><simpara> Mode of the URIs to get.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> list of uris.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-load-state" role="function"/>e_cal_get_load_state ()</title>
<indexterm><primary>e_cal_get_load_state</primary></indexterm><programlisting><link linkend="ECalLoadState">ECalLoadState</link> e_cal_get_load_state          (<link linkend="ECal">ECal</link> *ecal);</programlisting>
<para>
Queries the state of loading of a calendar client.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> A <link linkend="ECalLoadState"><type>ECalLoadState</type></link> value indicating whether the client has
not been loaded with <link linkend="e-cal-open"><type>e_cal_open</type></link> yet, whether it is being
loaded, or whether it is already loaded.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-uri" role="function"/>e_cal_get_uri ()</title>
<indexterm><primary>e_cal_get_uri</primary></indexterm><programlisting>const <link linkend="char">char</link>* e_cal_get_uri                   (<link linkend="ECal">ECal</link> *ecal);</programlisting>
<para>
Queries the URI that is open in a calendar client.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> The URI of the calendar that is already loaded or is being
loaded, or NULL if the client has not started a load request yet.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-is-read-only" role="function"/>e_cal_is_read_only ()</title>
<indexterm><primary>e_cal_is_read_only</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_is_read_only              (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="gboolean">gboolean</link> *read_only,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
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 <parameter>read_only</parameter> argument.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>read_only</parameter>&nbsp;:</term>
<listitem><simpara> Return value for read only status.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the call was successful, FALSE if there was an error.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-cal-address" role="function"/>e_cal_get_cal_address ()</title>
<indexterm><primary>e_cal_get_cal_address</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_cal_address           (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="char">char</link> **cal_address,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Queries the calendar address associated with a calendar client.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cal_address</parameter>&nbsp;:</term>
<listitem><simpara> Return value for address information.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE if there
was an error.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-alarm-email-address" role="function"/>e_cal_get_alarm_email_address ()</title>
<indexterm><primary>e_cal_get_alarm_email_address</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_alarm_email_address   (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="char">char</link> **alarm_address,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Queries the address to be used for alarms in a calendar client.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>alarm_address</parameter>&nbsp;:</term>
<listitem><simpara> Return value for alarm address.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE if there was
an error while contacting the backend.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-ldap-attribute" role="function"/>e_cal_get_ldap_attribute ()</title>
<indexterm><primary>e_cal_get_ldap_attribute</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_ldap_attribute        (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="char">char</link> **ldap_attribute,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Queries the LDAP attribute for a calendar client.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ldap_attribute</parameter>&nbsp;:</term>
<listitem><simpara> Return value for the LDAP attribute.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the call was successful, FALSE if there was an
error contacting the backend.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-one-alarm-only" role="function"/>e_cal_get_one_alarm_only ()</title>
<indexterm><primary>e_cal_get_one_alarm_only</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_one_alarm_only        (<link linkend="ECal">ECal</link> *ecal);</programlisting>
<para>
Checks if a calendar supports only one alarm per component.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the calendar allows only one alarm, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-organizer-must-attend" role="function"/>e_cal_get_organizer_must_attend ()</title>
<indexterm><primary>e_cal_get_organizer_must_attend</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_organizer_must_attend (<link linkend="ECal">ECal</link> *ecal);</programlisting>
<para>
Checks if a calendar forces organizers of meetings to be also attendees.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the calendar forces organizers to attend meetings,
FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-save-schedules" role="function"/>e_cal_get_save_schedules ()</title>
<indexterm><primary>e_cal_get_save_schedules</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_save_schedules        (<link linkend="ECal">ECal</link> *ecal);</programlisting>
<para>
Checks whether the calendar saves schedules.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if it saves schedules, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-static-capability" role="function"/>e_cal_get_static_capability ()</title>
<indexterm><primary>e_cal_get_static_capability</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_static_capability     (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *cap);</programlisting>
<para>
Queries the calendar for static capabilities.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cap</parameter>&nbsp;:</term>
<listitem><simpara> Name of the static capability to check.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the capability is supported, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-set-mode" role="function"/>e_cal_set_mode ()</title>
<indexterm><primary>e_cal_set_mode</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_set_mode                  (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="CalMode">CalMode</link> mode);</programlisting>
<para>
Switches online/offline mode on the calendar.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>mode</parameter>&nbsp;:</term>
<listitem><simpara> Mode to switch to.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the switch was successful, FALSE if there was an error.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-default-object" role="function"/>e_cal_get_default_object ()</title>
<indexterm><primary>e_cal_get_default_object</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_default_object        (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> **icalcomp,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Retrives an <link linkend="icalcomponent"><type>icalcomponent</type></link> from the backend that contains the default
values for properties needed.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>icalcomp</parameter>&nbsp;:</term>
<listitem><simpara> Return value for the default object.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the call was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-object" role="function"/>e_cal_get_object ()</title>
<indexterm><primary>e_cal_get_object</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_object                (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *uid,
                                             const <link linkend="char">char</link> *rid,
                                             <link linkend="icalcomponent">icalcomponent</link> **icalcomp,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Queries a calendar for a calendar component object based on its unique
identifier.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uid</parameter>&nbsp;:</term>
<listitem><simpara> Unique identifier for a calendar component.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>rid</parameter>&nbsp;:</term>
<listitem><simpara> Recurrence identifier.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>icalcomp</parameter>&nbsp;:</term>
<listitem><simpara> Return value for the calendar component object.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the call was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-changes" role="function"/>e_cal_get_changes ()</title>
<indexterm><primary>e_cal_get_changes</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_changes               (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *change_id,
                                             <link linkend="GList">GList</link> **changes,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns a list of changes made to the calendar since a specific time. That time
is identified by the <parameter>change_id</parameter> argument, which is used by the backend to
compute the changes done.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>change_id</parameter>&nbsp;:</term>
<listitem><simpara> ID to use for comparing changes.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>changes</parameter>&nbsp;:</term>
<listitem><simpara> Return value for the list of changes.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the call was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-free-change-list" role="function"/>e_cal_free_change_list ()</title>
<indexterm><primary>e_cal_free_change_list</primary></indexterm><programlisting><link linkend="void">void</link>        e_cal_free_change_list          (<link linkend="GList">GList</link> *list);</programlisting>
<para>
Free a list of changes as returned by <link linkend="e-cal-get-changes"><type>e_cal_get_changes</type></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>list</parameter>&nbsp;:</term>
<listitem><simpara> List of changes to be freed.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-object-list" role="function"/>e_cal_get_object_list ()</title>
<indexterm><primary>e_cal_get_object_list</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_object_list           (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *query,
                                             <link linkend="GList">GList</link> **objects,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Gets a list of objects from the calendar that match the query specified
by the <parameter>query</parameter> argument. The objects will be returned in the <parameter>objects</parameter>
argument, which is a list of <link linkend="icalcomponent"><type>icalcomponent</type></link>. When done, this list
should be freed by using the <link linkend="e-cal-free-object-list"><type>e_cal_free_object_list</type></link> function.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>query</parameter>&nbsp;:</term>
<listitem><simpara> Query string.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>objects</parameter>&nbsp;:</term>
<listitem><simpara> Return value for list of objects.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-object-list-as-comp" role="function"/>e_cal_get_object_list_as_comp ()</title>
<indexterm><primary>e_cal_get_object_list_as_comp</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_object_list_as_comp   (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *query,
                                             <link linkend="GList">GList</link> **objects,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Gets a list of objects from the calendar that match the query specified
by the <parameter>query</parameter> argument. The objects will be returned in the <parameter>objects</parameter>
argument, which is a list of <link linkend="ECalComponent"><type>ECalComponent</type></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>query</parameter>&nbsp;:</term>
<listitem><simpara> Query string.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>objects</parameter>&nbsp;:</term>
<listitem><simpara> Return value for list of objects.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-free-object-list" role="function"/>e_cal_free_object_list ()</title>
<indexterm><primary>e_cal_free_object_list</primary></indexterm><programlisting><link linkend="void">void</link>        e_cal_free_object_list          (<link linkend="GList">GList</link> *objects);</programlisting>
<para>
Frees a list of objects as returned by <link linkend="e-cal-get-object-list"><type>e_cal_get_object_list</type></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>objects</parameter>&nbsp;:</term>
<listitem><simpara> List of objects to be freed.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-free-busy" role="function"/>e_cal_get_free_busy ()</title>
<indexterm><primary>e_cal_get_free_busy</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_free_busy             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="GList">GList</link> *users,
                                             <link linkend="time-t">time_t</link> start,
                                             <link linkend="time-t">time_t</link> end,
                                             <link linkend="GList">GList</link> **freebusy,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Gets free/busy information from the calendar server.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>users</parameter>&nbsp;:</term>
<listitem><simpara> List of users to retrieve free/busy information for.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>start</parameter>&nbsp;:</term>
<listitem><simpara> Start time for query.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>end</parameter>&nbsp;:</term>
<listitem><simpara> End time for query.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>freebusy</parameter>&nbsp;:</term>
<listitem><simpara> Return value for VFREEBUSY objects.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> 
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-generate-instances" role="function"/>e_cal_generate_instances ()</title>
<indexterm><primary>e_cal_generate_instances</primary></indexterm><programlisting><link linkend="void">void</link>        e_cal_generate_instances        (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="time-t">time_t</link> start,
                                             <link linkend="time-t">time_t</link> end,
                                             <link linkend="ECalRecurInstanceFn">ECalRecurInstanceFn</link> cb,
                                             <link linkend="gpointer">gpointer</link> cb_data);</programlisting>
<para>
Does a combination of #<link linkend="e-cal-get-object-list"><function>e_cal_get_object_list()</function></link> and
#<link linkend="e-cal-recur-generate-instances"><function>e_cal_recur_generate_instances()</function></link>.  
</para>
<para>
The callback function should do a <link linkend="g-object-ref"><function>g_object_ref()</function></link> 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.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>start</parameter>&nbsp;:</term>
<listitem><simpara> Start time for query.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>end</parameter>&nbsp;:</term>
<listitem><simpara> End time for query.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> Callback for each generated instance.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb_data</parameter>&nbsp;:</term>
<listitem><simpara> Closure data for the callback.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-alarms-in-range" role="function"/>e_cal_get_alarms_in_range ()</title>
<indexterm><primary>e_cal_get_alarms_in_range</primary></indexterm><programlisting><link linkend="GSList">GSList</link>*     e_cal_get_alarms_in_range       (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="time-t">time_t</link> start,
                                             <link linkend="time-t">time_t</link> end);</programlisting>
<para>
Queries a calendar for the alarms that trigger in the specified range of
time.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>start</parameter>&nbsp;:</term>
<listitem><simpara> Start time for query.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>end</parameter>&nbsp;:</term>
<listitem><simpara> End time for query.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> A list of <link linkend="ECalComponentAlarms"><type>ECalComponentAlarms</type></link> structures.  This should be freed
using the #<link linkend="e-cal-free-alarms"><function>e_cal_free_alarms()</function></link> function, or by freeing each element
separately with #<link linkend="e-cal-component-alarms-free"><function>e_cal_component_alarms_free()</function></link> and then freeing the list with
#<link linkend="g-slist-free"><function>g_slist_free()</function></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-free-alarms" role="function"/>e_cal_free_alarms ()</title>
<indexterm><primary>e_cal_free_alarms</primary></indexterm><programlisting><link linkend="void">void</link>        e_cal_free_alarms               (<link linkend="GSList">GSList</link> *comp_alarms);</programlisting>
<para>
Frees a list of <link linkend="ECalComponentAlarms"><type>ECalComponentAlarms</type></link> structures as returned by
<link linkend="e-cal-get-alarms-in-range"><function>e_cal_get_alarms_in_range()</function></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>comp_alarms</parameter>&nbsp;:</term>
<listitem><simpara> A list of <link linkend="ECalComponentAlarms"><type>ECalComponentAlarms</type></link> structures.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-alarms-for-object" role="function"/>e_cal_get_alarms_for_object ()</title>
<indexterm><primary>e_cal_get_alarms_for_object</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_alarms_for_object     (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="ECalComponentId">ECalComponentId</link> *id,
                                             <link linkend="time-t">time_t</link> start,
                                             <link linkend="time-t">time_t</link> end,
                                             <link linkend="ECalComponentAlarms">ECalComponentAlarms</link> **alarms);</programlisting>
<para>
Queries a calendar for the alarms of a particular object that trigger in the
specified range of time.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>start</parameter>&nbsp;:</term>
<listitem><simpara> Start time for query.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>end</parameter>&nbsp;:</term>
<listitem><simpara> End time for query.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>alarms</parameter>&nbsp;:</term>
<listitem><simpara> 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 <link linkend="e-cal-component-alarms-free"><function>e_cal_component_alarms_free()</function></link> function.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE on success, FALSE if the object was not found.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-create-object" role="function"/>e_cal_create_object ()</title>
<indexterm><primary>e_cal_create_object</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_create_object             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp,
                                             <link linkend="char">char</link> **uid,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Requests the calendar backend to create the object specified by the <parameter>icalcomp</parameter>
argument. Some backends would assign a specific UID to the newly created object,
in those cases that UID would be returned in the <parameter>uid</parameter> argument.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>icalcomp</parameter>&nbsp;:</term>
<listitem><simpara> The component to create.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uid</parameter>&nbsp;:</term>
<listitem><simpara> Return value for the UID assigned to the new component by the calendar backend.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-modify-object" role="function"/>e_cal_modify_object ()</title>
<indexterm><primary>e_cal_modify_object</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_modify_object             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp,
                                             <link linkend="CalObjModType">CalObjModType</link> mod,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Requests the calendar backend to modify an existing object. If the object
does not exist on the calendar, an error will be returned.
</para>
<para>
For recurrent appointments, the <parameter>mod</parameter> 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).</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>icalcomp</parameter>&nbsp;:</term>
<listitem><simpara> Component to modify.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>mod</parameter>&nbsp;:</term>
<listitem><simpara> Type of modification.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-remove-object" role="function"/>e_cal_remove_object ()</title>
<indexterm><primary>e_cal_remove_object</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_remove_object             (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *uid,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Asks a calendar to remove a component.  If the server is able to remove the
component, all clients will be notified and they will emit the "obj_removed"
signal.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara>  A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uid</parameter>&nbsp;:</term>
<listitem><simpara> Unique identifier of the calendar component to remove.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-remove-object-with-mod" role="function"/>e_cal_remove_object_with_mod ()</title>
<indexterm><primary>e_cal_remove_object_with_mod</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_remove_object_with_mod    (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *uid,
                                             const <link linkend="char">char</link> *rid,
                                             <link linkend="CalObjModType">CalObjModType</link> mod,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
This function allows the removal of instances of a recurrent
appointment. By using a combination of the <parameter>uid</parameter>, <parameter>rid</parameter> and <parameter>mod</parameter>
arguments, you can remove specific instances. If what you want
is to remove all instances, use e_cal_remove_object instead.
</para>
<para>
If not all instances are removed, the client will get a "obj_modified"
signal, while it will get a "obj_removed" signal when all instances
are removed.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uid</parameter>&nbsp;:</term>
<listitem><simpara> UID og the object to remove.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>rid</parameter>&nbsp;:</term>
<listitem><simpara> Recurrence ID of the specific recurrence to remove.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>mod</parameter>&nbsp;:</term>
<listitem><simpara> Type of removal.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-discard-alarm" role="function"/>e_cal_discard_alarm ()</title>
<indexterm><primary>e_cal_discard_alarm</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_discard_alarm             (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="ECalComponent">ECalComponent</link> *comp,
                                             const <link linkend="char">char</link> *auid,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Tells the calendar backend to get rid of the alarm identified by the
<parameter>auid</parameter> argument in <parameter>comp</parameter>. Some backends might remove the alarm or
update internal information about the alarm be discarded, or, like
the file backend does, ignore the operation.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar ecal.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>comp</parameter>&nbsp;:</term>
<listitem><simpara> The component to discard the alarm from.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>auid</parameter>&nbsp;:</term>
<listitem><simpara> Unique identifier of the alarm to be discarded.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-receive-objects" role="function"/>e_cal_receive_objects ()</title>
<indexterm><primary>e_cal_receive_objects</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_receive_objects           (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Makes the backend receive the set of iCalendar objects specified in the
<parameter>icalcomp</parameter> argument. This is used for iTIP confirmation/cancellation
messages for scheduled meetings.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara>  A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>icalcomp</parameter>&nbsp;:</term>
<listitem><simpara> An icalcomponent.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-send-objects" role="function"/>e_cal_send_objects ()</title>
<indexterm><primary>e_cal_send_objects</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_send_objects              (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp,
                                             <link linkend="GList">GList</link> **users,
                                             <link linkend="icalcomponent">icalcomponent</link> **modified_icalcomp,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Requests a calendar backend to send meeting information to the specified list
of users.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>icalcomp</parameter>&nbsp;:</term>
<listitem><simpara> An icalcomponent.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>users</parameter>&nbsp;:</term>
<listitem><simpara> List of users to send the objects to.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>modified_icalcomp</parameter>&nbsp;:</term>
<listitem><simpara> Return value for the icalcomponent after all the operations
performed.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-timezone" role="function"/>e_cal_get_timezone ()</title>
<indexterm><primary>e_cal_get_timezone</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_timezone              (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *tzid,
                                             <link linkend="icaltimezone">icaltimezone</link> **zone,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Retrieves a timezone object from the calendar backend.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>tzid</parameter>&nbsp;:</term>
<listitem><simpara> ID of the timezone to retrieve.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>zone</parameter>&nbsp;:</term>
<listitem><simpara> Return value for the timezone.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-add-timezone" role="function"/>e_cal_add_timezone ()</title>
<indexterm><primary>e_cal_add_timezone</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_add_timezone              (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icaltimezone">icaltimezone</link> *izone,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Add a VTIMEZONE object to the given calendar.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>izone</parameter>&nbsp;:</term>
<listitem><simpara> The timezone to add.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-set-default-timezone" role="function"/>e_cal_set_default_timezone ()</title>
<indexterm><primary>e_cal_set_default_timezone</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_set_default_timezone      (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icaltimezone">icaltimezone</link> *zone,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Sets the default timezone on the calendar. This should be called before opening
the calendar.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>zone</parameter>&nbsp;:</term>
<listitem><simpara> A timezone object.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE if the operation was successful, FALSE otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-query" role="function"/>e_cal_get_query ()</title>
<indexterm><primary>e_cal_get_query</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_cal_get_query                 (<link linkend="ECal">ECal</link> *ecal,
                                             const <link linkend="char">char</link> *sexp,
                                             <link linkend="ECalView">ECalView</link> **query,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Creates a live query object from a loaded calendar.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sexp</parameter>&nbsp;:</term>
<listitem><simpara> S-expression representing the query.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>query</parameter>&nbsp;:</term>
<listitem><simpara> Return value for the new query.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> Placeholder for error information.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> A query object that will emit notification signals as calendar
components are added and removed from the query in the server.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-resolve-tzid-cb" role="function"/>e_cal_resolve_tzid_cb ()</title>
<indexterm><primary>e_cal_resolve_tzid_cb</primary></indexterm><programlisting><link linkend="icaltimezone">icaltimezone</link>* e_cal_resolve_tzid_cb         (const <link linkend="char">char</link> *tzid,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>
Resolves TZIDs for the recurrence generator.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>tzid</parameter>&nbsp;:</term>
<listitem><simpara> ID of the timezone to resolve.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> Closure data for the callback.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> The timezone identified by the <parameter>tzid</parameter> argument, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if
it could not be found.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-component-as-string" role="function"/>e_cal_get_component_as_string ()</title>
<indexterm><primary>e_cal_get_component_as_string</primary></indexterm><programlisting><link linkend="char">char</link>*       e_cal_get_component_as_string   (<link linkend="ECal">ECal</link> *ecal,
                                             <link linkend="icalcomponent">icalcomponent</link> *icalcomp);</programlisting>
<para>
Gets a calendar component as an iCalendar string, with a toplevel
VCALENDAR component and all VTIMEZONEs needed for the component.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara> A calendar client.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>icalcomp</parameter>&nbsp;:</term>
<listitem><simpara> A calendar component object.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the component as a complete iCalendar string, or NULL on
failure. The string should be freed after use.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-cal-get-error-message" role="function"/>e_cal_get_error_message ()</title>
<indexterm><primary>e_cal_get_error_message</primary></indexterm><programlisting>const <link linkend="char">char</link>* e_cal_get_error_message         (<link linkend="ECalendarStatus">ECalendarStatus</link> status);</programlisting>
<para>
Gets an error message for the given status code.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>status</parameter>&nbsp;:</term>
<listitem><simpara> A status code.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the error message.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>

<refsect1 role="signals">
<title role="signals.title">Signal Details</title>
<refsect2><title><anchor id="ECal-backend-died"/>The &quot;backend-died&quot; signal</title>
<indexterm><primary>ECal::backend-died</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="ECal">ECal</link>    *ecal,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run first</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2><refsect2><title><anchor id="ECal-backend-error"/>The &quot;backend-error&quot; signal</title>
<indexterm><primary>ECal::backend-error</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="ECal">ECal</link>    *ecal,
                                            <link linkend="gchar">gchar</link>   *arg1,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run first</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>arg1</parameter>&nbsp;:</term>
<listitem><simpara>

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2><refsect2><title><anchor id="ECal-cal-opened"/>The &quot;cal-opened&quot; signal</title>
<indexterm><primary>ECal::cal-opened</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="ECal">ECal</link>    *ecal,
                                            <link linkend="gint">gint</link>     arg1,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run first</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>arg1</parameter>&nbsp;:</term>
<listitem><simpara>

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2><refsect2><title><anchor id="ECal-cal-set-mode"/>The &quot;cal-set-mode&quot; signal</title>
<indexterm><primary>ECal::cal-set-mode</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="ECal">ECal</link>                  *ecal,
                                            <link linkend="ECalSetModeStatusEnum">ECalSetModeStatusEnum</link> *arg1,
                                            <link linkend="CalModeEnum">CalModeEnum</link>           *arg2,
                                            <link linkend="gpointer">gpointer</link>               user_data)      : Run first</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecal</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>arg1</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>arg2</parameter>&nbsp;:</term>
<listitem><simpara>

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>


<refsect1>
<title>See Also</title>
<para>
<link linkend="e-cal-listener"><type>e-cal-listener</type></link>, <link linkend="e-cal-view"><type>e-cal-view</type></link>
</para>
</refsect1>

</refentry>
