Libical API Documentation 4.0 UNRELEASED Go to the stable 3.0 documentation
Loading...
Searching...
No Matches
icalcomponent.h
Go to the documentation of this file.
1/*======================================================================
2 FILE: icalcomponent.h
3 CREATOR: eric 20 March 1999
4
5 SPDX-FileCopyrightText: 2000, Eric Busboom <eric@civicknowledge.com>
6 SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
7======================================================================*/
8
13
14#ifndef ICALCOMPONENT_H
15#define ICALCOMPONENT_H
16
17#include "libical_sentinel.h"
18#include "libical_ical_export.h"
19#include "icalenums.h" /* Defines icalcomponent_kind */
20#include "icalproperty.h"
21
22typedef struct icalcomponent_impl icalcomponent;
23
24/* These are exposed so that callers will not have to allocate and
25 deallocate iterators. Pretend that you can't see them. */
27struct icalpvl_elem_t;
28typedef struct icalcompiter {
30 struct icalpvl_elem_t *iter;
31} icalcompiter;
32
33typedef struct icalpropiter {
34 icalproperty_kind kind;
35 struct icalpvl_elem_t *iter;
36} icalpropiter;
38
49LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new(icalcomponent_kind kind);
50
61LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_clone(const icalcomponent *old);
62
75LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_from_string(const char *str);
76
87LIBICAL_ICAL_EXPORT LIBICAL_SENTINEL icalcomponent *icalcomponent_vanew(icalcomponent_kind kind, ...);
88
98LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_x(const char *x_name);
99
108LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_iana(const char *iana_name);
109
117LIBICAL_ICAL_EXPORT void icalcomponent_free(icalcomponent *component);
118
129LIBICAL_ICAL_EXPORT char *icalcomponent_as_ical_string(const icalcomponent *component);
130
141LIBICAL_ICAL_EXPORT char *icalcomponent_as_ical_string_r(const icalcomponent *component);
142
150LIBICAL_ICAL_EXPORT bool icalcomponent_is_valid(const icalcomponent *component);
151
159LIBICAL_ICAL_EXPORT icalcomponent_kind icalcomponent_isa(const icalcomponent *component);
160
170LIBICAL_ICAL_EXPORT bool icalcomponent_isa_component(const void *component);
171
172/* Deal with X components */
173
180LIBICAL_ICAL_EXPORT void icalcomponent_set_x_name(icalcomponent *comp, const char *name);
181
189LIBICAL_ICAL_EXPORT const char *icalcomponent_get_x_name(const icalcomponent *comp);
190
191/* Deal with IANA components */
192
200LIBICAL_ICAL_EXPORT void icalcomponent_set_iana_name(icalcomponent *comp, const char *name);
201
211LIBICAL_ICAL_EXPORT const char *icalcomponent_get_iana_name(const icalcomponent *comp);
212
224LIBICAL_ICAL_EXPORT const char *icalcomponent_get_component_name(const icalcomponent *comp);
225
237LIBICAL_ICAL_EXPORT char *icalcomponent_get_component_name_r(const icalcomponent *comp);
238
239/***** Working with Properties *****/
240
250LIBICAL_ICAL_EXPORT void icalcomponent_add_property(icalcomponent *component,
251 icalproperty *property);
252
259LIBICAL_ICAL_EXPORT void icalcomponent_remove_property(icalcomponent *component,
260 icalproperty *property);
261
268LIBICAL_ICAL_EXPORT void icalcomponent_remove_property_by_kind(icalcomponent *component,
269 icalproperty_kind kind);
270
279LIBICAL_ICAL_EXPORT int icalcomponent_count_properties(icalcomponent *component,
280 icalproperty_kind kind);
281
290LIBICAL_ICAL_EXPORT void icalproperty_set_parent(icalproperty *property,
291 icalcomponent *component);
292
300LIBICAL_ICAL_EXPORT icalcomponent *icalproperty_get_parent(const icalproperty *property);
301
302/* Iterate through the properties */
303
313LIBICAL_ICAL_EXPORT icalproperty *icalcomponent_get_current_property(icalcomponent *component);
314
325LIBICAL_ICAL_EXPORT icalproperty *icalcomponent_get_first_property(icalcomponent *component,
326 icalproperty_kind kind);
327
338LIBICAL_ICAL_EXPORT icalproperty *icalcomponent_get_next_property(icalcomponent *component,
339 icalproperty_kind kind);
340
341/***** Working with Components *****/
342
353LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_inner(icalcomponent *comp);
354
361LIBICAL_ICAL_EXPORT void icalcomponent_add_component(icalcomponent *parent, icalcomponent *child);
362
369LIBICAL_ICAL_EXPORT void icalcomponent_remove_component(icalcomponent *parent,
370 icalcomponent *child);
371
380LIBICAL_ICAL_EXPORT int icalcomponent_count_components(icalcomponent *component,
381 icalcomponent_kind kind);
382
393LIBICAL_ICAL_EXPORT void icalcomponent_merge_component(icalcomponent *comp,
394 icalcomponent *comp_to_merge);
395
396/* Iteration Routines. There are two forms of iterators, internal and
397external. The internal ones came first, and are almost completely
398sufficient, but they fail badly when you want to construct a loop that
399removes components from the container.*/
400
401/* Iterate through components */
402
411LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_current_component(icalcomponent *component);
412
423LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_first_component(icalcomponent *component,
424 icalcomponent_kind kind);
425
436LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_next_component(icalcomponent *component,
437 icalcomponent_kind kind);
438
439/* Using external iterators */
440
451LIBICAL_ICAL_EXPORT icalcompiter icalcomponent_begin_component(icalcomponent *component,
452 icalcomponent_kind kind);
453
464LIBICAL_ICAL_EXPORT icalcompiter icalcomponent_end_component(icalcomponent *component,
465 icalcomponent_kind kind);
466
477LIBICAL_ICAL_EXPORT icalcomponent *icalcompiter_next(icalcompiter *i);
478
489LIBICAL_ICAL_EXPORT icalcomponent *icalcompiter_prior(icalcompiter *i);
490
499LIBICAL_ICAL_EXPORT icalcomponent *icalcompiter_deref(icalcompiter *i);
500
510LIBICAL_ICAL_EXPORT bool icalcompiter_is_valid(const icalcompiter *i);
511
522LIBICAL_ICAL_EXPORT icalpropiter icalcomponent_begin_property(icalcomponent *component,
523 icalproperty_kind kind);
524
535LIBICAL_ICAL_EXPORT icalproperty *icalpropiter_next(icalpropiter *i);
536
545LIBICAL_ICAL_EXPORT icalproperty *icalpropiter_deref(icalpropiter *i);
546
556LIBICAL_ICAL_EXPORT bool icalpropiter_is_valid(const icalpropiter *i);
557
558/***** Working with embedded error properties *****/
559
560/* Check the component against itip rules and insert error properties */
561/* Working with embedded error properties */
562
572LIBICAL_ICAL_EXPORT bool icalcomponent_check_restrictions(icalcomponent *comp);
573
581LIBICAL_ICAL_EXPORT int icalcomponent_count_errors(icalcomponent *component);
582
588LIBICAL_ICAL_EXPORT void icalcomponent_strip_errors(icalcomponent *component);
589
595LIBICAL_ICAL_EXPORT void icalcomponent_convert_errors(icalcomponent *component);
596
598/* Internal operations. They are private, and you should not be using them. */
599
607LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_parent(const icalcomponent *component);
608
615LIBICAL_ICAL_EXPORT void icalcomponent_set_parent(icalcomponent *component,
616 icalcomponent *parent);
617
619
620/* Kind conversion routines */
621
629LIBICAL_ICAL_EXPORT bool icalcomponent_kind_is_valid(const icalcomponent_kind kind);
630
640LIBICAL_ICAL_EXPORT icalcomponent_kind icalcomponent_string_to_kind(const char *string);
641
650LIBICAL_ICAL_EXPORT const char *icalcomponent_kind_to_string(icalcomponent_kind kind);
651
652/************* Derived class methods. ****************************
653
654If the code was in an OO language, the remaining routines would be
655members of classes derived from icalcomponent. Don't call them on the
656wrong component subtypes. */
657
667LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_first_real_component(const icalcomponent *c);
668
693LIBICAL_ICAL_EXPORT struct icaltime_span icalcomponent_get_span(icalcomponent *comp);
694
695/******************** Convenience routines **********************/
696
709LIBICAL_ICAL_EXPORT void icalcomponent_set_dtstart(icalcomponent *comp, struct icaltimetype v);
710
725LIBICAL_ICAL_EXPORT struct icaltimetype icalcomponent_get_dtstart(icalcomponent *comp);
726
727/* For the icalcomponent routines only, dtend and duration are tied
728 together. If you call the get routine for one and the other exists,
729 the routine will calculate the return value. That is, if there is a
730 DTEND and you call get_duration, the routine will return the difference
731 between DTEND and DTSTART. However, if you call a set routine for
732 one and the other exists, no action will be taken and icalerrno will
733 be set to ICAL_MALFORMEDDATA_ERROR. If you call a set routine and
734 neither exists, the routine will create the appropriate property. */
735
764LIBICAL_ICAL_EXPORT struct icaltimetype icalcomponent_get_dtend(icalcomponent *comp);
765
788LIBICAL_ICAL_EXPORT void icalcomponent_set_dtend(icalcomponent *comp, struct icaltimetype v);
789
800LIBICAL_ICAL_EXPORT struct icaltimetype icalcomponent_get_due(icalcomponent *comp);
801
817LIBICAL_ICAL_EXPORT void icalcomponent_set_due(icalcomponent *comp, struct icaltimetype v);
818
840LIBICAL_ICAL_EXPORT void icalcomponent_set_duration(icalcomponent *comp,
841 struct icaldurationtype v);
842
860LIBICAL_ICAL_EXPORT struct icaldurationtype icalcomponent_get_duration(icalcomponent *comp);
861
871LIBICAL_ICAL_EXPORT void icalcomponent_set_method(icalcomponent *comp, icalproperty_method method);
872
883LIBICAL_ICAL_EXPORT icalproperty_method icalcomponent_get_method(icalcomponent *comp);
884
896LIBICAL_ICAL_EXPORT struct icaltimetype icalcomponent_get_dtstamp(icalcomponent *comp);
897
907LIBICAL_ICAL_EXPORT void icalcomponent_set_dtstamp(icalcomponent *comp, struct icaltimetype v);
908
918LIBICAL_ICAL_EXPORT void icalcomponent_set_summary(icalcomponent *comp, const char *v);
919
930LIBICAL_ICAL_EXPORT const char *icalcomponent_get_summary(icalcomponent *comp);
931
941LIBICAL_ICAL_EXPORT void icalcomponent_set_comment(icalcomponent *comp, const char *v);
942
953LIBICAL_ICAL_EXPORT const char *icalcomponent_get_comment(icalcomponent *comp);
954
964LIBICAL_ICAL_EXPORT void icalcomponent_set_uid(icalcomponent *comp, const char *v);
965
976LIBICAL_ICAL_EXPORT const char *icalcomponent_get_uid(icalcomponent *comp);
977
987LIBICAL_ICAL_EXPORT void icalcomponent_set_relcalid(icalcomponent *comp, const char *v);
988
999LIBICAL_ICAL_EXPORT const char *icalcomponent_get_relcalid(icalcomponent *comp);
1000
1010LIBICAL_ICAL_EXPORT void icalcomponent_set_recurrenceid(icalcomponent *comp,
1011 struct icaltimetype v);
1012
1024LIBICAL_ICAL_EXPORT struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent *comp);
1025
1035LIBICAL_ICAL_EXPORT void icalcomponent_set_description(icalcomponent *comp, const char *v);
1036
1047LIBICAL_ICAL_EXPORT const char *icalcomponent_get_description(icalcomponent *comp);
1048
1058LIBICAL_ICAL_EXPORT void icalcomponent_set_location(icalcomponent *comp, const char *v);
1059
1070LIBICAL_ICAL_EXPORT const char *icalcomponent_get_location(icalcomponent *comp);
1071
1081LIBICAL_ICAL_EXPORT void icalcomponent_set_sequence(icalcomponent *comp, int v);
1082
1093LIBICAL_ICAL_EXPORT int icalcomponent_get_sequence(icalcomponent *comp);
1094
1104LIBICAL_ICAL_EXPORT void icalcomponent_set_status(icalcomponent *comp, enum icalproperty_status v);
1105
1115LIBICAL_ICAL_EXPORT enum icalproperty_status icalcomponent_get_status(icalcomponent *comp);
1116
1125LIBICAL_ICAL_EXPORT void icalcomponent_foreach_tzid(icalcomponent *comp,
1126 void (*callback)(icalparameter *param,
1127 void *data),
1128 void *callback_data);
1129
1140LIBICAL_ICAL_EXPORT icaltimezone *icalcomponent_get_timezone(icalcomponent *comp,
1141 const char *tzid);
1142
1165LIBICAL_ICAL_EXPORT bool icalproperty_recurrence_is_excluded(icalcomponent *comp,
1166 struct icaltimetype *dtstart,
1167 struct icaltimetype *recurtime);
1168
1184LIBICAL_ICAL_EXPORT void icalcomponent_foreach_recurrence(icalcomponent *comp,
1185 struct icaltimetype start,
1186 struct icaltimetype end,
1187 void (*callback)(icalcomponent *comp,
1188 const struct icaltime_span *span,
1189 void *data),
1190 void *callback_data);
1191
1199LIBICAL_ICAL_EXPORT void icalcomponent_normalize(icalcomponent *comp);
1200
1217 icalproperty *prop,
1218 icalcomponent *comp);
1219/*************** Type Specific routines ***************/
1220
1226LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vcalendar(void);
1227
1233LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vevent(void);
1234
1240LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vtodo(void);
1241
1247LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vjournal(void);
1248
1254LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_valarm(void);
1255
1261LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vfreebusy(void);
1262
1268LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vtimezone(void);
1269
1275LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xstandard(void);
1276
1282LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xdaylight(void);
1283
1289LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vagenda(void);
1290
1296LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vquery(void);
1297
1303LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vreply(void);
1304
1310LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vavailability(void);
1311
1317LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xavailable(void);
1318
1324LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vpoll(void);
1325
1331LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vvoter(void);
1332
1338LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xvote(void);
1339
1345LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vpatch(void);
1346
1352LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xpatch(void);
1353
1359LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_participant(void);
1360
1366LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vlocation(void);
1367
1373LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vresource(void);
1374
1375#endif /* !ICALCOMPONENT_H */
struct icaltimetype icalcomponent_get_dtend(icalcomponent *comp)
struct icaltimetype icalcomponent_get_dtstart(icalcomponent *comp)
struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent *comp)
icaltime_span icalcomponent_get_span(icalcomponent *comp)
struct icaltimetype icalcomponent_get_due(icalcomponent *comp)
struct icaldurationtype icalcomponent_get_duration(icalcomponent *comp)
struct icaltimetype icalcomponent_get_dtstamp(icalcomponent *comp)
void icalcomponent_remove_property_by_kind(icalcomponent *component, icalproperty_kind kind)
void icalcomponent_convert_errors(icalcomponent *component)
icalcomponent * icalcomponent_new_xstandard(void)
void icalcomponent_set_relcalid(icalcomponent *comp, const char *v)
bool icalcomponent_is_valid(const icalcomponent *component)
icalproperty * icalpropiter_deref(icalpropiter *i)
icalcomponent * icalcomponent_new_vagenda(void)
void icalcomponent_set_uid(icalcomponent *comp, const char *v)
icalcomponent_kind icalcomponent_string_to_kind(const char *string)
icalcomponent * icalcomponent_get_first_component(icalcomponent *component, icalcomponent_kind kind)
void icalcomponent_set_x_name(icalcomponent *comp, const char *name)
icalcomponent * icalcomponent_new_vlocation(void)
bool icalcomponent_check_restrictions(icalcomponent *comp)
icalproperty * icalcomponent_get_first_property(icalcomponent *component, icalproperty_kind kind)
icalcomponent * icalcomponent_new_vpoll(void)
int icalcomponent_count_properties(icalcomponent *component, icalproperty_kind kind)
icalcomponent * icalcomponent_new_vavailability(void)
icalcomponent * icalcomponent_new_xpatch(void)
icalproperty_method icalcomponent_get_method(icalcomponent *comp)
bool icalcompiter_is_valid(const icalcompiter *i)
icalcomponent * icalcomponent_new_vreply(void)
void icalcomponent_set_recurrenceid(icalcomponent *comp, struct icaltimetype v)
icalcomponent * icalcomponent_new_xvote(void)
icalcomponent * icalproperty_get_parent(const icalproperty *property)
icalcomponent * icalcompiter_next(icalcompiter *i)
void icalcomponent_set_location(icalcomponent *comp, const char *v)
const char * icalcomponent_get_description(icalcomponent *comp)
void icalcomponent_set_iana_name(icalcomponent *comp, const char *name)
void icalcomponent_set_dtstart(icalcomponent *comp, struct icaltimetype v)
void icalcomponent_set_dtstamp(icalcomponent *comp, struct icaltimetype v)
void icalcomponent_strip_errors(icalcomponent *component)
icalcomponent * icalcomponent_new_vcalendar(void)
void icalcomponent_normalize(icalcomponent *comp)
icalpropiter icalcomponent_begin_property(icalcomponent *component, icalproperty_kind kind)
icalcomponent * icalcomponent_get_current_component(icalcomponent *component)
void icalcomponent_remove_property(icalcomponent *component, icalproperty *property)
char * icalcomponent_as_ical_string(const icalcomponent *component)
const char * icalcomponent_kind_to_string(icalcomponent_kind kind)
enum icalproperty_status icalcomponent_get_status(icalcomponent *comp)
icalcomponent * icalcomponent_new_vjournal(void)
struct icaltimetype icalproperty_get_datetime_with_component(icalproperty *prop, icalcomponent *comp)
void icalcomponent_remove_component(icalcomponent *parent, icalcomponent *child)
icalcomponent * icalcomponent_new_vpatch(void)
icalcomponent * icalcomponent_new_vfreebusy(void)
icalproperty * icalpropiter_next(icalpropiter *i)
icalcomponent * icalcompiter_deref(icalcompiter *i)
icalcomponent * icalcomponent_vanew(icalcomponent_kind kind,...)
void icalcomponent_set_method(icalcomponent *comp, icalproperty_method method)
icalcomponent * icalcomponent_new(icalcomponent_kind kind)
void icalcomponent_set_summary(icalcomponent *comp, const char *v)
void icalcomponent_set_sequence(icalcomponent *comp, int v)
icalcomponent * icalcomponent_get_inner(icalcomponent *comp)
const char * icalcomponent_get_comment(icalcomponent *comp)
const char * icalcomponent_get_summary(icalcomponent *comp)
void icalproperty_set_parent(icalproperty *property, icalcomponent *component)
const char * icalcomponent_get_relcalid(icalcomponent *comp)
icalproperty * icalcomponent_get_next_property(icalcomponent *component, icalproperty_kind kind)
icalcomponent * icalcomponent_get_first_real_component(const icalcomponent *c)
icalcomponent * icalcomponent_new_vtimezone(void)
void icalcomponent_merge_component(icalcomponent *comp, icalcomponent *comp_to_merge)
bool icalpropiter_is_valid(const icalpropiter *i)
icalcomponent * icalcomponent_new_vresource(void)
bool icalproperty_recurrence_is_excluded(icalcomponent *comp, struct icaltimetype *dtstart, struct icaltimetype *recurtime)
Decides if a recurrence is acceptable.
const char * icalcomponent_get_x_name(const icalcomponent *comp)
int icalcomponent_count_errors(icalcomponent *component)
icalcomponent * icalcomponent_clone(const icalcomponent *old)
icalcomponent * icalcomponent_new_iana(const char *iana_name)
icalcomponent * icalcomponent_new_xavailable(void)
icalcomponent * icalcomponent_new_participant(void)
const char * icalcomponent_get_iana_name(const icalcomponent *comp)
icalproperty * icalcomponent_get_current_property(icalcomponent *component)
icaltimezone * icalcomponent_get_timezone(icalcomponent *comp, const char *tzid)
void icalcomponent_set_dtend(icalcomponent *comp, struct icaltimetype v)
const char * icalcomponent_get_uid(icalcomponent *comp)
int icalcomponent_get_sequence(icalcomponent *comp)
icalcompiter icalcomponent_end_component(icalcomponent *component, icalcomponent_kind kind)
const char * icalcomponent_get_component_name(const icalcomponent *comp)
icalcomponent * icalcomponent_new_xdaylight(void)
icalcomponent * icalcomponent_new_valarm(void)
icalcomponent * icalcomponent_new_x(const char *x_name)
void icalcomponent_add_property(icalcomponent *component, icalproperty *property)
void icalcomponent_set_duration(icalcomponent *comp, struct icaldurationtype v)
icalcompiter icalcomponent_begin_component(icalcomponent *component, icalcomponent_kind kind)
char * icalcomponent_as_ical_string_r(const icalcomponent *component)
icalcomponent_kind icalcomponent_isa(const icalcomponent *component)
icalcomponent * icalcomponent_get_next_component(icalcomponent *component, icalcomponent_kind kind)
icalcomponent * icalcompiter_prior(icalcompiter *i)
icalcomponent * icalcomponent_new_vtodo(void)
bool icalcomponent_kind_is_valid(const icalcomponent_kind kind)
char * icalcomponent_get_component_name_r(const icalcomponent *comp)
void icalcomponent_set_status(icalcomponent *comp, enum icalproperty_status v)
void icalcomponent_foreach_tzid(icalcomponent *comp, void(*callback)(icalparameter *param, void *data), void *callback_data)
const char * icalcomponent_get_location(icalcomponent *comp)
icalcomponent * icalcomponent_new_vevent(void)
void icalcomponent_free(icalcomponent *component)
void icalcomponent_set_due(icalcomponent *comp, struct icaltimetype v)
void icalcomponent_foreach_recurrence(icalcomponent *comp, struct icaltimetype start, struct icaltimetype end, void(*callback)(icalcomponent *comp, const struct icaltime_span *span, void *data), void *callback_data)
void icalcomponent_add_component(icalcomponent *parent, icalcomponent *child)
void icalcomponent_set_description(icalcomponent *comp, const char *v)
icalcomponent * icalcomponent_new_from_string(const char *str)
int icalcomponent_count_components(icalcomponent *component, icalcomponent_kind kind)
void icalcomponent_set_comment(icalcomponent *comp, const char *v)
icalcomponent * icalcomponent_new_vquery(void)
bool icalcomponent_isa_component(const void *component)
icalcomponent * icalcomponent_new_vvoter(void)
Defines enums not belonging to other data structures.
icalcomponent_kind
Definition icalenums.h:29
Defines the data structure representing iCalendar properties.
struct _icaltimezone icaltimezone