aboutsummaryrefslogblamecommitdiffstats
path: root/doc/devel/calendar/cal-util/evolution-cal-util-decl.txt
blob: 631a3ca2671f9db66e44689dd667310ccb0bd297 (plain) (tree)





















































                                                                                                 
                                                                      










































                                                 















                                       


















                                          



























































                                           
























































































































































































































































                                                       









                                                    



















                                       









                                                

























































































                                                    









                                            




                                            




                                                 





















































                                               




                                             












                                                                       

                           










































                                                     









                                                        

























                                            









                                       




                                       




                                     














                                                





























                                                        








                                                  







                                                                      





                                                                           


                                         
                                                                                                                                                                                                                     




























                                                                    
























                                  





                                
                                  


               
                         
                                  



                          
                                  



                           
                                  


                       


                                  

           


                                  

           


                                  

           

                                  


           

                                  


           


                                         

           


                                          

           


                                           

           


                                      

           


                                       

           


                                                  

           







                                     
           
<MACRO>
<NAME>CAL_COMPONENT_TYPE</NAME>
#define CAL_COMPONENT_TYPE            (cal_component_get_type ())
</MACRO>
<MACRO>
<NAME>CAL_COMPONENT</NAME>
#define CAL_COMPONENT(obj)            (GTK_CHECK_CAST ((obj), CAL_COMPONENT_TYPE, CalComponent))
</MACRO>
<MACRO>
<NAME>CAL_COMPONENT_CLASS</NAME>
#define CAL_COMPONENT_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), CAL_COMPONENT_TYPE,   \
                       CalComponentClass))
</MACRO>
<MACRO>
<NAME>IS_CAL_COMPONENT</NAME>
#define IS_CAL_COMPONENT(obj)         (GTK_CHECK_TYPE ((obj), CAL_COMPONENT_TYPE))
</MACRO>
<MACRO>
<NAME>IS_CAL_COMPONENT_CLASS</NAME>
#define IS_CAL_COMPONENT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), CAL_COMPONENT_TYPE))
</MACRO>
<ENUM>
<NAME>CalComponentVType</NAME>
typedef enum {
    CAL_COMPONENT_NO_TYPE,
    CAL_COMPONENT_EVENT,
    CAL_COMPONENT_TODO,
    CAL_COMPONENT_JOURNAL,
    CAL_COMPONENT_FREEBUSY,
    CAL_COMPONENT_TIMEZONE
} CalComponentVType;
</ENUM>
<ENUM>
<NAME>CalComponentField</NAME>
typedef enum {
    CAL_COMPONENT_FIELD_CATEGORIES,     /* concatenation of the categories list */
    CAL_COMPONENT_FIELD_CLASSIFICATION,
    CAL_COMPONENT_FIELD_COMPLETED,
    CAL_COMPONENT_FIELD_DTEND,
    CAL_COMPONENT_FIELD_DTSTART,
    CAL_COMPONENT_FIELD_DUE,
    CAL_COMPONENT_FIELD_GEO,
    CAL_COMPONENT_FIELD_PERCENT,
    CAL_COMPONENT_FIELD_PRIORITY,
    CAL_COMPONENT_FIELD_SUMMARY,
    CAL_COMPONENT_FIELD_TRANSPARENCY,
    CAL_COMPONENT_FIELD_URL,
    CAL_COMPONENT_FIELD_HAS_ALARMS,     /* not a real field */
    CAL_COMPONENT_FIELD_ICON,       /* not a real field */
    CAL_COMPONENT_FIELD_COMPLETE,       /* not a real field */
    CAL_COMPONENT_FIELD_RECURRING,      /* not a real field */
    CAL_COMPONENT_FIELD_OVERDUE,        /* not a real field */
    CAL_COMPONENT_FIELD_COLOR,      /* not a real field */
    CAL_COMPONENT_FIELD_STATUS,
    CAL_COMPONENT_FIELD_COMPONENT,      /* not a real field */
    CAL_COMPONENT_FIELD_NUM_FIELDS
} CalComponentField;
</ENUM>
<ENUM>
<NAME>CalComponentClassification</NAME>
typedef enum {
    CAL_COMPONENT_CLASS_NONE,
    CAL_COMPONENT_CLASS_PUBLIC,
    CAL_COMPONENT_CLASS_PRIVATE,
    CAL_COMPONENT_CLASS_CONFIDENTIAL,
    CAL_COMPONENT_CLASS_UNKNOWN
} CalComponentClassification;
</ENUM>
<TYPEDEF>
<NAME>CalComponentDateTime</NAME>
typedef struct {
    /* Actual date/time value */
    struct icaltimetype *value;

    /* Timezone ID */
    const char *tzid;
} CalComponentDateTime;
</TYPEDEF>
<ENUM>
<NAME>CalComponentPeriodType</NAME>
typedef enum {
    CAL_COMPONENT_PERIOD_DATETIME,
    CAL_COMPONENT_PERIOD_DURATION
} CalComponentPeriodType;
</ENUM>
<TYPEDEF>
<NAME>CalComponentPeriod</NAME>
typedef struct {
    CalComponentPeriodType type;

    struct icaltimetype start;

    union {
        struct icaltimetype end;
        struct icaldurationtype duration;
    } u;
} CalComponentPeriod;
</TYPEDEF>
<ENUM>
<NAME>CalComponentRangeType</NAME>
typedef enum {
    CAL_COMPONENT_RANGE_SINGLE,
    CAL_COMPONENT_RANGE_THISPRIOR,
    CAL_COMPONENT_RANGE_THISFUTURE,
} CalComponentRangeType;
</ENUM>
<TYPEDEF>
<NAME>CalComponentRange</NAME>
typedef struct {
    CalComponentRangeType type;
    
    CalComponentDateTime *datetime;
} CalComponentRange;
</TYPEDEF>
<TYPEDEF>
<NAME>CalComponentText</NAME>
typedef struct {
    /* Description string */
    const char *value;

    /* Alternate representation URI */
    const char *altrep;
} CalComponentText;
</TYPEDEF>
<ENUM>
<NAME>CalComponentTransparency</NAME>
typedef enum {
    CAL_COMPONENT_TRANSP_NONE,
    CAL_COMPONENT_TRANSP_TRANSPARENT,
    CAL_COMPONENT_TRANSP_OPAQUE,
    CAL_COMPONENT_TRANSP_UNKNOWN
} CalComponentTransparency;
</ENUM>
<ENUM>
<NAME>CalComponentCUType</NAME>
typedef enum {
    CAL_COMPONENT_CUTYPE_INDIVIDUAL,
    CAL_COMPONENT_CUTYPE_GROUP,
    CAL_COMPONENT_CUTYPE_RESOURCE,
    CAL_COMPONENT_CUTYPE_ROOM,
    CAL_COMPONENT_CUTYPE_UNKNOWN
} CalComponentCUType;
</ENUM>
<ENUM>
<NAME>CalComponentRole</NAME>
typedef enum {
    CAL_COMPONENT_ROLE_CHAIR,
    CAL_COMPONENT_ROLE_REQUIRED,
    CAL_COMPONENT_ROLE_OPTIONAL,
    CAL_COMPONENT_ROLE_NON,
    CAL_COMPONENT_ROLE_UNKNOWN
} CalComponentRole;
</ENUM>
<ENUM>
<NAME>CalComponentPartStat</NAME>
typedef enum {
    CAL_COMPONENT_PARTSTAT_NEEDSACTION,
    CAL_COMPONENT_PARTSTAT_ACCEPTED,
    CAL_COMPONENT_PARTSTAT_DECLINED,
    CAL_COMPONENT_PARTSTAT_TENTATIVE,
    CAL_COMPONENT_PARTSTAT_DELEGATED,
    CAL_COMPONENT_PARTSTAT_COMPLETED,
    CAL_COMPONENT_PARTSTAT_INPROCESS,
    CAL_COMPONENT_PARTSTAT_UNKNOWN
} CalComponentPartStat;
</ENUM>
<TYPEDEF>
<NAME>CalComponentAttendee</NAME>
typedef struct {
    const char *value;
    
    const char *member;
    CalComponentCUType cutype;
    CalComponentRole role;
    CalComponentPartStat status;
    gboolean rsvp;
    
    const char *delto;
    const char *delfrom;
    const char *sentby;
    const char *cn;
    const char *language;
} CalComponentAttendee;
</TYPEDEF>
<TYPEDEF>
<NAME>CalComponentOrganizer</NAME>
typedef struct {
    const char *value;
    const char *sentby;
    const char *cn;
    const char *language;
} CalComponentOrganizer;
</TYPEDEF>
<STRUCT>
<NAME>CalComponent</NAME>
</STRUCT>
<STRUCT>
<NAME>CalComponentClass</NAME>
</STRUCT>
<STRUCT>
<NAME>CalComponentPrivate</NAME>
</STRUCT>
<STRUCT>
<NAME>CalComponent</NAME>
struct CalComponent {
    GtkObject object;

    /* Private data */
    CalComponentPrivate *priv;
};
</STRUCT>
<FUNCTION>
<NAME>cal_component_get_type</NAME>
<RETURNS>GtkType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>cal_component_gen_uid</NAME>
<RETURNS>char  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>cal_component_new</NAME>
<RETURNS>CalComponent  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>cal_component_clone</NAME>
<RETURNS>CalComponent  *</RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_new_vtype</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentVType type
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_icalcomponent</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp, icalcomponent *icalcomp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_icalcomponent</NAME>
<RETURNS>icalcomponent  *</RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_vtype</NAME>
<RETURNS>CalComponentVType  </RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_as_string</NAME>
<RETURNS>char  *</RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_commit_sequence</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_uid</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, const char **uid
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_uid</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, const char *uid
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_categories</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, const char **categories
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_categories</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, const char *categories
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_categories_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **categ_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_categories_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList *categ_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_classification</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentClassification *classif
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_classification</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentClassification classif
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_comment_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **text_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_comment_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList *text_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_completed</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icaltimetype **t
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_completed</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icaltimetype *t
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_created</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icaltimetype **t
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_created</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icaltimetype *t
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_description_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **text_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_description_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList *text_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_dtend</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentDateTime *dt
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_dtend</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentDateTime *dt
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_dtstamp</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icaltimetype *t
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_dtstamp</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icaltimetype *t
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_dtstart</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentDateTime *dt
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_dtstart</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentDateTime *dt
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_due</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentDateTime *dt
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_due</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentDateTime *dt
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_exdate_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **exdate_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_exdate_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList *exdate_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_has_exdates</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_exrule_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **recur_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_exrule_property_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **recur_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_exrule_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList *recur_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_has_exrules</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_has_exceptions</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_geo</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icalgeotype **geo
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_geo</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icalgeotype *geo
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_last_modified</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icaltimetype **t
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_last_modified</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, struct icaltimetype *t
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_organizer</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentOrganizer *organizer
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_organizer</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentOrganizer *organizer
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_percent</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, int **percent
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_percent</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, int *percent
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_priority</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, int **priority
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_priority</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, int *priority
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_recurid</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentRange **recur_id
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_recurid</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentRange *recur_id
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_rdate_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **period_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_rdate_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList *period_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_has_rdates</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_rrule_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **recur_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_rrule_property_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **recur_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_rrule_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList *recur_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_has_rrules</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_has_recurrences</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_sequence</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, int **sequence
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_sequence</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, int *sequence
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_status</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, icalproperty_status *status
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_status</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, icalproperty_status status
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_summary</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentText *summary
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_summary</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentText *summary
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_transparency</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentTransparency *transp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_transparency</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentTransparency transp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_url</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, const char **url
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_url</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, const char *url
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_attendee_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList **attendee_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_set_attendee_list</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, GSList *attendee_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_event_dates_match</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp1, CalComponent *comp2
</FUNCTION>
<FUNCTION>
<NAME>cal_component_compare_event_timezone</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp, icaltimezone *zone
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_categories_list</NAME>
<RETURNS>void  </RETURNS>
GSList *categ_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_datetime</NAME>
<RETURNS>void  </RETURNS>
CalComponentDateTime *dt
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_exdate_list</NAME>
<RETURNS>void  </RETURNS>
GSList *exdate_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_geo</NAME>
<RETURNS>void  </RETURNS>
struct icalgeotype *geo
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_icaltimetype</NAME>
<RETURNS>void  </RETURNS>
struct icaltimetype *t
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_percent</NAME>
<RETURNS>void  </RETURNS>
int *percent
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_priority</NAME>
<RETURNS>void  </RETURNS>
int *priority
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_period_list</NAME>
<RETURNS>void  </RETURNS>
GSList *period_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_recur_list</NAME>
<RETURNS>void  </RETURNS>
GSList *recur_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_sequence</NAME>
<RETURNS>void  </RETURNS>
int *sequence
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_text_list</NAME>
<RETURNS>void  </RETURNS>
GSList *text_list
</FUNCTION>
<FUNCTION>
<NAME>cal_component_free_attendee_list</NAME>
<RETURNS>void  </RETURNS>
GSList *attendee_list
</FUNCTION>
<STRUCT>
<NAME>CalComponentAlarm</NAME>
</STRUCT>
<TYPEDEF>
<NAME>CalAlarmInstance</NAME>
typedef struct {
    /* UID of the alarm that triggered */
    const char *auid;

    /* Trigger time, i.e. "5 minutes before the appointment" */
    time_t trigger;

    /* Actual event occurrence to which this trigger corresponds */
    time_t occur_start;
    time_t occur_end;
} CalAlarmInstance;
</TYPEDEF>
<TYPEDEF>
<NAME>CalComponentAlarms</NAME>
typedef struct {
    /* The actual component */
    CalComponent *comp;

    /* List of CalAlarmInstance structures */
    GSList *alarms;
} CalComponentAlarms;
</TYPEDEF>
<ENUM>
<NAME>CalAlarmAction</NAME>
typedef enum {
    CAL_ALARM_NONE,
    CAL_ALARM_AUDIO,
    CAL_ALARM_DISPLAY,
    CAL_ALARM_EMAIL,
    CAL_ALARM_PROCEDURE,
    CAL_ALARM_UNKNOWN
} CalAlarmAction;
</ENUM>
<ENUM>
<NAME>CalAlarmTriggerType</NAME>
typedef enum {
    CAL_ALARM_TRIGGER_NONE,
    CAL_ALARM_TRIGGER_RELATIVE_START,
    CAL_ALARM_TRIGGER_RELATIVE_END,
    CAL_ALARM_TRIGGER_ABSOLUTE
} CalAlarmTriggerType;
</ENUM>
<TYPEDEF>
<NAME>CalAlarmTrigger</NAME>
typedef struct {
    CalAlarmTriggerType type;

    union {
        struct icaldurationtype rel_duration;
        struct icaltimetype abs_time;
    } u;
} CalAlarmTrigger;
</TYPEDEF>
<TYPEDEF>
<NAME>CalAlarmRepeat</NAME>
typedef struct {
    /* Number of extra repetitions, zero for none */
    int repetitions;

    /* Interval between repetitions */
    struct icaldurationtype duration;
} CalAlarmRepeat;
</TYPEDEF>
<FUNCTION>
<NAME>cal_component_has_alarms</NAME>
<RETURNS>gboolean  </RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_add_alarm</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, CalComponentAlarm *alarm
</FUNCTION>
<FUNCTION>
<NAME>cal_component_remove_alarm</NAME>
<RETURNS>void  </RETURNS>
CalComponent *comp, const char *auid
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_alarm_uids</NAME>
<RETURNS>GList  *</RETURNS>
CalComponent *comp
</FUNCTION>
<FUNCTION>
<NAME>cal_component_get_alarm</NAME>
<RETURNS>CalComponentAlarm  *</RETURNS>
CalComponent *comp, const char *auid
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarms_free</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarms *alarms
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_new</NAME>
<RETURNS>CalComponentAlarm  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_clone</NAME>
<RETURNS>CalComponentAlarm  *</RETURNS>
CalComponentAlarm *alarm
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_free</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_get_uid</NAME>
<RETURNS>const char  *</RETURNS>
CalComponentAlarm *alarm
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_get_action</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, CalAlarmAction *action
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_set_action</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, CalAlarmAction action
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_get_attach</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, struct icalattachtype **attach
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_set_attach</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, struct icalattachtype *attach
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_get_description</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, CalComponentText *description
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_set_description</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, CalComponentText *description
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_get_repeat</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, CalAlarmRepeat *repeat
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_set_repeat</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, CalAlarmRepeat repeat
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_get_trigger</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, CalAlarmTrigger *trigger
</FUNCTION>
<FUNCTION>
<NAME>cal_component_alarm_set_trigger</NAME>
<RETURNS>void  </RETURNS>
CalComponentAlarm *alarm, CalAlarmTrigger trigger
</FUNCTION>
<USER_FUNCTION>
<NAME>CalRecurInstanceFn</NAME>
<RETURNS>gboolean </RETURNS>
CalComponent *comp,
                     time_t        instance_start,
                     time_t        instance_end,
                     gpointer      data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>CalRecurResolveTimezoneFn</NAME>
<RETURNS>icaltimezone *</RETURNS>
const char   *tzid,
                             gpointer      data
</USER_FUNCTION>
<FUNCTION>
<NAME>cal_recur_generate_instances</NAME>
<RETURNS>void   </RETURNS>
CalComponent        *comp,time_t             start,time_t            end,CalRecurInstanceFn  cb,gpointer                cb_data,CalRecurResolveTimezoneFn tz_cb,gpointer           tz_cb_data
</FUNCTION>
<TYPEDEF>
<NAME>CalObjInstance</NAME>
typedef struct {
    char *uid;          /* UID of the object */
    time_t start;           /* Start time of instance */
    time_t end;         /* End time of instance */
} CalObjInstance;
</TYPEDEF>
<FUNCTION>
<NAME>cal_obj_instance_list_free</NAME>
<RETURNS>void  </RETURNS>
GList *list
</FUNCTION>
<ENUM>
<NAME>CalObjType</NAME>
typedef enum {
    CALOBJ_TYPE_EVENT   = 1 << 0,
    CALOBJ_TYPE_TODO    = 1 << 1,
    CALOBJ_TYPE_JOURNAL = 1 << 2,
    CALOBJ_TYPE_ANY     = 0x07
} CalObjType;
</ENUM>
<FUNCTION>
<NAME>cal_obj_uid_list_free</NAME>
<RETURNS>void  </RETURNS>
GList *list
</FUNCTION>
<FUNCTION>
<NAME>time_days_in_month</NAME>
<RETURNS>int    </RETURNS>
int year, int month
</FUNCTION>
<FUNCTION>
<NAME>time_day_of_year</NAME>
<RETURNS>int    </RETURNS>
int day, int month, int year
</FUNCTION>
<FUNCTION>
<NAME>time_day_of_week</NAME>
<RETURNS>int    </RETURNS>
int day, int month, int year
</FUNCTION>
<FUNCTION>
<NAME>time_is_leap_year</NAME>
<RETURNS>gboolean  </RETURNS>
int year
</FUNCTION>
<FUNCTION>
<NAME>time_leap_years_up_to</NAME>
<RETURNS>int    </RETURNS>
int year
</FUNCTION>
<FUNCTION>
<NAME>isodate_from_time_t</NAME>
<RETURNS>char    *</RETURNS>
time_t t
</FUNCTION>
<FUNCTION>
<NAME>time_from_isodate</NAME>
<RETURNS>time_t     </RETURNS>
const char *str
</FUNCTION>
<FUNCTION>
<NAME>time_add_day</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, int days
</FUNCTION>
<FUNCTION>
<NAME>time_add_week</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, int weeks
</FUNCTION>
<FUNCTION>
<NAME>time_add_month</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, int months
</FUNCTION>
<FUNCTION>
<NAME>time_year_begin</NAME>
<RETURNS>time_t     </RETURNS>
time_t t
</FUNCTION>
<FUNCTION>
<NAME>time_month_begin</NAME>
<RETURNS>time_t     </RETURNS>
time_t t
</FUNCTION>
<FUNCTION>
<NAME>time_week_begin</NAME>
<RETURNS>time_t     </RETURNS>
time_t t, int week_start_day
</FUNCTION>
<FUNCTION>
<NAME>time_day_begin</NAME>
<RETURNS>time_t     </RETURNS>
time_t t
</FUNCTION>
<FUNCTION>
<NAME>time_day_end</NAME>
<RETURNS>time_t     </RETURNS>
time_t t
</FUNCTION>
<FUNCTION>
<NAME>time_add_day_with_zone</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, int days, icaltimezone *zone
</FUNCTION>
<FUNCTION>
<NAME>time_add_week_with_zone</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, int weeks, icaltimezone *zone
</FUNCTION>
<FUNCTION>
<NAME>time_add_month_with_zone</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, int months, icaltimezone *zone
</FUNCTION>
<FUNCTION>
<NAME>time_year_begin_with_zone</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, icaltimezone *zone
</FUNCTION>
<FUNCTION>
<NAME>time_month_begin_with_zone</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, icaltimezone *zone
</FUNCTION>
<FUNCTION>
<NAME>time_week_begin_with_zone</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, int week_start_day,icaltimezone *zone
</FUNCTION>
<FUNCTION>
<NAME>time_day_begin_with_zone</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, icaltimezone *zone
</FUNCTION>
<FUNCTION>
<NAME>time_day_end_with_zone</NAME>
<RETURNS>time_t     </RETURNS>
time_t time, icaltimezone *zone
</FUNCTION>