csa/csa.h(file formats)

NAME
csa/csa.h — calendar and appointment services definitions

SYNOPSIS

#include &<csa/csa.h>

DESCRIPTION

The csa/csa.h header defines the following data types through typedef:

typedef short int               CSA_sint16;
typedef long int                CSA_sint32;
typedef unsigned char           CSA_uint8;
typedef unsigned short int      CSA_uint16;
typedef unsigned long int       CSA_uint32;
typedef void *                  CSA_buffer;
typedef CSA_uint32              CSA_entry_handle;
typedef CSA_uint32              CSA_session_handle;
typedef char *                  CSA_string;
typedef CSA_string      CSA_attribute_reference;
typedef CSA_uint32      CSA_boolean;
typedef CSA_string      CSA_date_time;
typedef CSA_string      CSA_date_time_range;
typedef CSA_sint32      CSA_enum;
typedef CSA_uint32      CSA_flags;
typedef CSA_uint32      CSA_return_code;
typedef CSA_string      CSA_service_reference;
typedef CSA_string      CSA_time_duration;
#define CSA_FALSE               ((CSA_boolean)0)
#define CSA_TRUE                ((CSA_boolean)1)
/* EXTENSION FLAGS */
#define CSA_EXT_REQUIRED        ((CSA_flags)0x10000)
#define CSA_EXT_OUTPUT          ((CSA_flags)0x20000)
#define CSA_EXT_LAST_ELEMENT    ((CSA_flags)0x40000)
/* CALENDAR USER TYPE */
#define CSA_USER_TYPE_INDIVIDUAL        ((CSA_enum)0)
#define CSA_USER_TYPE_GROUP             ((CSA_enum)1)
#define CSA_USER_TYPE_RESOURCE          ((CSA_enum)2)
/* CLASSIFICATION
#define CSA_CLASS_PUBLIC                ((CSA_enum)0)
#define CSA_CLASS_PRIVATE               ((CSA_enum)1)
#define CSA_CLASS_CONFIDENTIAL          ((CSA_enum)2)
/* ACCESS RIGHTS FLAGS */
#define CSA_FREE_TIME_SEARCH                    ((CSA_flags)0x1)
#define CSA_VIEW_PUBLIC_ENTRIES                 ((CSA_flags)0x2)
#define CSA_VIEW_CONFIDENTIAL_ENTRIES           ((CSA_flags)0x4)
#define CSA_VIEW_PRIVATE_ENTRIES                ((CSA_flags)0x8)
#define CSA_INSERT_PUBLIC_ENTRIES               ((CSA_flags)0x10)
#define CSA_INSERT_CONFIDENTIAL_ENTRIES         ((CSA_flags)0x20)
#define CSA_INSERT_PRIVATE_ENTRIES              ((CSA_flags)0x40)
#define CSA_CHANGE_PUBLIC_ENTRIES               ((CSA_flags)0x80)
#define CSA_CHANGE_CONFIDENTIAL_ENTRIES         ((CSA_flags)0x100)
#define CSA_CHANGE_PRIVATE_ENTRIES              ((CSA_flags)0x200)
#define CSA_VIEW_CALENDAR_ATTRIBUTES            ((CSA_flags)0x400)
#define CSA_INSERT_CALENDAR_ATTRIBUTES          ((CSA_flags)0x800)
#define CSA_CHANGE_CALENDAR_ATTRIBUTES          ((CSA_flags)0x1000)
#define CSA_ORGANIZER_RIGHTS                    ((CSA_flags)0x2000)
#define CSA_SPONSOR_RIGHTS                      ((CSA_flags)0x4000)
#define CSA_OWNER_RIGHTS                        ((CSA_flags)0x8000)
/* ATTENDEE PRIORITIES */
#define CSA_FOR_YOUR_INFORMATION        ((CSA_enum)0)
#define CSA_ATTENDANCE_REQUESTED        ((CSA_enum)1)
#define CSA_ATTENDANCE_REQUIRED         ((CSA_enum)2)
#define CSA_IMMEDIATE_RESPONSE          ((CSA_enum)3)
/* ATTENDEE STATUS */
#define CSA_STATUS_ACCEPTED             ((CSA_enum)0)
#define CSA_STATUS_NEEDS_ACTION         ((CSA_enum)1)
#define CSA_STATUS_SENT                 ((CSA_enum)2)
#define CSA_STATUS_TENTATIVE            ((CSA_enum)3)
#define CSA_STATUS_CONFIRMED            ((CSA_enum)4)
#define CSA_STATUS_REJECTED             ((CSA_enum)5)
#define CSA_STATUS_COMPLETED            ((CSA_enum)6)
#define CSA_STATUS_DELEGATED            ((CSA_enum)7)
/* ATTRIBUTE VALUE TYPE */
#define CSA_VALUE_BOOLEAN                       ((CSA_enum) 0)
#define CSA_VALUE_ENUMERATED                    ((CSA_enum) 1)
#define CSA_VALUE_FLAGS                         ((CSA_enum) 2)
#define CSA_VALUE_SINT32                        ((CSA_enum) 3)
#define CSA_VALUE_UINT32                        ((CSA_enum) 4)
#define CSA_VALUE_STRING                        ((CSA_enum) 5)
#define CSA_VALUE_CALENDAR_USER                 ((CSA_enum) 6)
#define CSA_VALUE_DATE_TIME                     ((CSA_enum) 7)
#define CSA_VALUE_DATE_TIME_RANGE               ((CSA_enum) 8)
#define CSA_VALUE_TIME_DURATION                 ((CSA_enum) 9)
#define CSA_VALUE_ACCESS_LIST                   ((CSA_enum) 10)
#define CSA_VALUE_ATTENDEE_LIST                 ((CSA_enum) 11)
#define CSA_VALUE_DATE_TIME_LIST                ((CSA_enum) 12)
#define CSA_VALUE_REMINDER                      ((CSA_enum) 13)
#define CSA_VALUE_OPAQUE_DATA                   ((CSA_enum) 14)
/* CROSS FUNCTION FLAGS */
/* SCOPE */
#define CSA_SCOPE_ALL                           ((CSA_enum)0)
#define CSA_SCOPE_ONE                           ((CSA_enum)1)
#define CSA_SCOPE_FORWARD                       ((CSA_enum)2)
/* OPERATORS */
#define CSA_MATCH_ANY                           ((CSA_enum)0)
#define CSA_MATCH_EQUAL_TO                      ((CSA_enum)1)
#define CSA_MATCH_NOT_EQUAL_TO                  ((CSA_enum)2)
#define CSA_MATCH_GREATER_THAN                  ((CSA_enum)3)
#define CSA_MATCH_LESS_THAN                     ((CSA_enum)4)
#define CSA_MATCH_GREATER_THAN_OR_EQUAL_TO      ((CSA_enum)5)
#define CSA_MATCH_LESS_THAN_OR_EQUAL_TO         ((CSA_enum)6)
#define CSA_MATCH_CONTAIN                       ((CSA_enum)7)
#define CSA_LOOKUP_RESOLVE_PREFIX_SEARCH        ((CSA_flags)0x1)
#define CSA_LOOKUP_RESOLVE_IDENTITY             ((CSA_flags)0x2)
#define CSA_CONFIG_CHARACTER_SET                ((CSA_enum)0)
#define CSA_CONFIG_LINE_TERM                    ((CSA_enum)1)
#define CSA_CONFIG_DEFAULT_SERVICE              ((CSA_enum)2)
#define CSA_CONFIG_DEFAULT_USER                 ((CSA_enum)3)
#define CSA_CONFIG_REQ_PASSWORD                 ((CSA_enum)4)
#define CSA_CONFIG_REQ_SERVICE                  ((CSA_enum)5)
#define CSA_CONFIG_REQ_USER                     ((CSA_enum)6)
#define CSA_CONFIG_UI_AVALI                     ((CSA_enum)7)
#define CSA_CONFIG_VER_IMPLEM                   ((CSA_enum)8)
#define CSA_CONFIG_VER_SPEC                     ((CSA_enum)9)
/* CHARACTER SET IDENTIFIERS */
#define CSA_CHARSET_437         "-//XAPIA//CHARSET IBM 437//EN"
#define CSA_CHARSET_850         "-//XAPIA//CHARSET IBM 850//EN"
#define CSA_CHARSET_1252        "-//XAPIA//CHARSET Microsoft 1252//EN"
#define CSA_CHARSET_ISTRING     "-//XAPIA//CHARSET Apple ISTRING//EN"
#define CSA_CHARSET_UNICODE     "-//XAPIA//CHARSET UNICODE//EN"
#define CSA_CHARSET_T61         "-//XAPIA//CHARSET TSS T61//EN"
#define CSA_CHARSET_IA5         "-//XAPIA//CHARSET TSS IA5//EN"
#define CSA_CHARSET_ISO_10646   "-//XAPIA//CHARSET ISO 10646//EN"
#define CSA_CHARSET_ISO_646     "-//XAPIA//CHARSET ISO 646//EN"
#define CSA_CHARSET_ISO_8859_1  "-//XAPIA//CHARSET ISO 8859-1//EN"
#define CSA_CB_CALENDAR_LOGON                   ((CSA_flags)0x0
#define CSA_CB_CALENDAR_DELETED                 ((CSA_flags)0x1)
#define CSA_CB_CALENDAR_ATTRIBUTE_UPDATED       ((CSA_flags)0x2)
#define CSA_CB_ENTRY_ADDED                      ((CSA_flags)0x4)
#define CSA_CB_ENTRY_DELETED                    ((CSA_flags)0x8)
#define CSA_CB_ENTRY_UPDATED                    ((CSA_flags)0x10)
/* Entry Types */
#define CSA_TYPE_EVENT          ((CSA_enum)0)
#define CSA_TYPE_TODO           ((CSA_enum)1)
#define CSA_TYPE_MEMO           ((CSA_enum)2)
/* RETURN ERROR FLAGS */
#define CSA_ERROR_RSV_MASK      ((CSA_return_code)0x0000FFFF)
#define CSA_ERROR_IMPL_MASK     ((CSA_return_code)0xFFFF0000)
/* RETURN CODES */
#define CSA_SUCCESS                             ((CSA_return_code)0)
#define CSA_E_AMBIGUOUS_USER                    ((CSA_return_code)1)
#define CSA_E_CALENDAR_EXISTS                   ((CSA_return_code)2)
#define CSA_E_CALENDAR_NOT_EXIST                ((CSA_return_code)3)
#define CSA_E_CALLBACK_NOT_REGISTERED           ((CSA_return_code)4)
#define CSA_E_DISK_FULL                         ((CSA_return_code)5)
#define CSA_E_FAILURE                           ((CSA_return_code)6)
#define CSA_E_FILE_EXIST                        ((CSA_return_code)7)
#define CSA_E_FILE_NOT_EXIST                    ((CSA_return_code)8)
#define CSA_E_INSUFFICIENT_MEMORY               ((CSA_return_code)9)
#define CSA_E_INVALID_ATTRIBUTE                 ((CSA_return_code)10)
#define CSA_E_INVALID_ATTRIBUTE_VALUE           ((CSA_return_code)11)
#define CSA_E_INVALID_CALENDAR_SERVICE          ((CSA_return_code)12)
#define CSA_E_INVALID_CONFIGURATION             ((CSA_return_code)13)
#define CSA_E_INVALID_DATA_EXT                  ((CSA_return_code)14)
#define CSA_E_INVALID_DATE_TIME                 ((CSA_return_code)15)
#define CSA_E_INVALID_ENTRY_HANDLE              ((CSA_return_code)16)
#define CSA_E_INVALID_ENUM                      ((CSA_return_code)17)
#define CSA_E_INVALID_FILE_NAME                 ((CSA_return_code)18)
#define CSA_E_INVALID_FLAG                      ((CSA_return_code)19)
#define CSA_E_INVALID_FUNCTION_EXT              ((CSA_return_code)20)
#define CSA_E_INVALID_MEMORY                    ((CSA_return_code)21)
#define CSA_E_INVALID_PARAMETER                 ((CSA_return_code)22)
#define CSA_E_INVALID_PASSWORD                  ((CSA_return_code)23)
#define CSA_E_INVALID_RETURN_CODE               ((CSA_return_code)24)
#define CSA_E_INVALID_SESSION_HANDLE            ((CSA_return_code)25)
#define CSA_E_INVALID_USER                      ((CSA_return_code)26)
#define CSA_E_LOCALE_MISMATCH                   ((CSA_return_code)27)
#define CSA_E_LOGON_FAILURE                     ((CSA_return_code)28)
#define CSA_E_NO_AUTHORITY                      ((CSA_return_code)29)
#define CSA_E_NOT_SUPPORTED                     ((CSA_return_code)30)
#define CSA_E_PASSWORD_REQUIRED                 ((CSA_return_code)31)
#define CSA_E_READONLY                          ((CSA_return_code)32)
#define CSA_E_SERVICE_UNAVAILABLE               ((CSA_return_code)33)
#define CSA_E_TEXT_TOO_LARGE                    ((CSA_return_code)34)
#define CSA_E_TOO_MANY_USERS                    ((CSA_return_code)35)
#define CSA_E_UNABLE_TO_OPEN_FILE               ((CSA_return_code)36)
#define CSA_E_UNSUPPORTED_ATTRIBUTE             ((CSA_return_code)37)
#define CSA_E_UNSUPPORTED_CHARACTER_SET         ((CSA_return_code)38)
#define CSA_E_UNSUPPORTED_DATA_EXT              ((CSA_return_code)39)
#define CSA_E_UNSUPPORTED_FLAG                  ((CSA_return_code)40)
#define CSA_E_UNSUPPORTED_FUNCTION_EXT          ((CSA_return_code)41)
#define CSA_E_UNSUPPORTED_PARAMETER             ((CSA_return_code)42)
#define CSA_E_UNSUPPORTED_VERSION               ((CSA_return_code)43)
#define CSA_E_USER_NOT_FOUND                    ((CSA_return_code)44)
/* CALENDAR ATTRIBUTES */
/* CALENDAR ATTRIBUTE NAMES */
#define CSA_CAL_ATTR_ACCESS_LIST                                      "-//XAPIA/CSA/CALATTR//NONSGML Access List//EN"
#define CSA_CAL_ATTR_CALENDAR_NAME                                    "-//XAPIA/CSA/CALATTR//NONSGML Calendar Name//EN"
#define CSA_CAL_ATTR_CALENDAR_OWNER                                   "-//XAPIA/CSA/CALATTR//NONSGML Calendar Owner//EN"
#define CSA_CAL_ATTR_CALENDAR_SIZE                                    "-//XAPIA/CSA/CALATTR//NONSGML Calendar Size//EN"
#define CSA_CAL_ATTR_CODE_PAGE                                        "-//XAPIA/CSA/CALATTR//NONSGML Character Set//EN"
#define CSA_CAL_ATTR_COUNTRY                                          "-//XAPIA/CSA/CALATTR//NONSGML Country//EN"
#define CSA_CAL_ATTR_DATE_CREATED                                     "-//XAPIA/CSA/CALATTR//NONSGML Date Created//EN"
#define CSA_CAL_ATTR_LANGUAGE                                         "-//XAPIA/CSA/CALATTR//NONSGML Language//EN"
#define CSA_CAL_ATTR_NUMBER_ENTRIES                                   "-//XAPIA/CSA/CALATTR//NONSGML Number Entries//EN"
#define CSA_CAL_ATTR_PRODUCT_IDENTIFIER                               "-//XAPIA/CSA/CALATTR//NONSGML Product Identifier//EN"
#define CSA_CAL_ATTR_TIME_ZONE                                        "-//XAPIA/CSA/CALATTR//NONSGML Time Zone//EN"
#define CSA_CAL_ATTR_VERSION                                          "-//XAPIA/CSA/CALATTR//NONSGML Version//EN"
#define CSA_CAL_ATTR_WORK_SCHEDULE                                    "-//XAPIA/CSA/CALATTR//NONSGML Work Schedule//EN"
/* ENTRY ATTRIBUTES */
/* ENTRY ATTRIBUTES NAMES */
#define CSA_ENTRY_ATTR_ATTENDEE_LIST                                  "-//XAPIA/CSA/ENTRYATTR//NONSGML Attendee List//EN"
#define CSA_ENTRY_ATTR_AUDIO_REMINDER                                 "-//XAPIA/CSA/ENTRYATTR//NONSGML Audio Reminder//EN"
#define CSA_ENTRY_ATTR_CLASSIFICATION                                 "-//XAPIA/CSA/ENTRYATTR//NONSGML Classification//EN"
#define CSA_ENTRY_ATTR_DATE_COMPLETED                                 "-//XAPIA/CSA/ENTRYATTR//NONSGML Date Complated//EN"
#define CSA_ENTRY_ATTR_DATE_CREATED                                   "-//XAPIA/CSA/ENTRYATTR//NONSGML Date Created//EN"
#define CSA_ENTRY_ATTR_DESCRIPTION                                    "-//XAPIA/CSA/ENTRYATTR//NONSGML Description//EN"
#define CSA_ENTRY_ATTR_DUE_DATE                                       "-//XAPIA/CSA/ENTRYATTR//NONSGML Due Date//EN"
#define CSA_ENTRY_ATTR_END_DATE                                       "-//XAPIA/CSA/ENTRYATTR//NONSGML End Date//EN"
#define CSA_ENTRY_ATTR_EXCEPTION_DATES                                "-//XAPIA/CSA/ENTRYATTR//NONSGML Exception Dates//EN"
#define CSA_ENTRY_ATTR_EXCEPTION_RULE                                 "-//XAPIA/CSA/ENTRYATTR//NONSGML Exception Rule//EN"
#define CSA_ENTRY_ATTR_FLASHING_REMINDER                              "-//XAPIA/CSA/ENTRYATTR//NONSGML Flashing Reminder//EN"
#define CSA_ENTRY_ATTR_LAST_UPDATE                                    "-//XAPIA/CSA/ENTRYATTR//NONSGML Last Update//EN"
#define CSA_ENTRY_ATTR_MAIL_REMINDER                                  "-//XAPIA/CSA/ENTRYATTR//NONSGML Mail Reminder//EN"
#define CSA_ENTRY_ATTR_NUMBER_RECURRENCES                             "-//XAPIA/CSA/ENTRYATTR//NONSGML Number Recurrences//EN"
#define CSA_ENTRY_ATTR_ORGANIZER                                      "-//XAPIA/CSA/ENTRYATTR//NONSGML Organizer//EN"
#define CSA_ENTRY_ATTR_POPUP_REMINDER                                 "-//XAPIA/CSA/ENTRYATTR//NONSGML Popup Reminder//EN"
#define CSA_ENTRY_ATTR_PRIORITY                                       "-//XAPIA/CSA/ENTRYATTR//NONSGML Priority//EN"
#define CSA_ENTRY_ATTR_RECURRENCE_RULE                                "-//XAPIA/CSA/ENTRYATTR//NONSGML Recurrence Rule//EN"
#define CSA_ENTRY_ATTR_RECURREING_DATES                               "-//XAPIA/CSA/ENTRYATTR//NONSGML Recurring Dates//EN"
#define CSA_ENTRY_ATTR_REFERENCE_IDENTIFIER                           "-//XAPIA/CSA/ENTRYATTR//NONSGML Reference_identifier//EN"
#define CSA_ENTRY_ATTR_SEQUENCE_NUMBER                                "-//XAPIA/CSA/ENTRYATTR//NONSGML Sequence Number//EN"
#define CSA_ENTRY_ATTR_SPONSOR                                        "-//XAPIA/CSA/ENTRYATTR//NONSGML Sponsor//EN"
#define CSA_ENTRY_ATTR_START_DATE                                     "-//XAPIA/CSA/ENTRYATTR//NONSGML Start Date//EN"
#define CSA_ENTRY_ATTR_STATUS                                         "-//XAPIA/CSA/ENTRYATTR//NONSGML Status//EN"
#define CSA_ENTRY_ATTR_SUBTYPE                                        "-//XAPIA/CSA/ENTRYATTR//NONSGML Subtype//EN"
#define CSA_ENTRY_ATTR_SUMMARY                                        "-//XAPIA/CSA/ENTRYATTR//NONSGML Summary//EN"
#define CSA_ENTRY_ATTR_TIME_TRANSPARENCY                              "-//XAPIA/CSA/ENTRYATTR//NONSGML Transparency//EN"
#define CSA_ENTRY_ATTR_TYPE                                           "-//XAPIA/CSA/ENTRYATTR//NONSGML Type//EN"
/* COMMON EXTENSIONS DECLARATIONS */
/* EXTENSION SET ID */
/* Common Extension Set */
#define CSA_XS_COM                      ((CSA_uint32) 0)
/* Bilateral Extension Set */
#define CSA_XS_BLT                      ((CSA_uint32) 256)
/* FUNCTION EXTENSIONS */
/* Query for extension support in implementation */
#define CSA_X_COM_SUPPORT_EXT           ((CSA_uint32) 1)
#define CSA_X_COM_SUPPORTED             ((CSA_flags) 1)
#define CSA_X_COM_NOT_SUPPORTED         ((CSA_flags) 2)
#define CSA_X_COM_DATA_EXT_SUPPORTED    ((CSA_flags) 4)
#define CSA_X_COM_FUNC_EXT_SUPPORTED    ((CSA_flags) 8)
#define CSA_X_COM_SUP_EXCLUDE           ((CSA_flags) 16)
#define CSA_X_UI_ID_EXT                 ((CSA_uint32)2)
/* EXTENSION FLAGS */
#define CSA_X_LOGON_UI_ALLOWED          ((CSA_flags)0x1)
#define CSA_X_ERROR_UI_ALLOWED          ((CSA_flags)0x2)
#define CSA_X_LOOKUP_RESOLVE_UI         ((CSA_flags)0x4)
#define CSA_X_LOOKUP_DETAILS_UI         ((CSA_flags)0x8)
#define CSA_X_LOOKUP_ADDRESSING_UI      ((CSA_flags)0x10)
#define CSA_X_ADD_DEFINE_ENTRY_UI       ((CSA_flags)0x20)
/* EXTENSION RETURN CODES */
#define CSA_X_E_INVALID_UI_ID           ((CSA_return_code)1025)
#define CSA_X_E_LOGON_FAILURE           ((CSA_return_code)1026)
#define CSA_X_E_USER_CANCEL             ((CSA_return_code)1027)
#define CSA_X_XT_APP_CONTEXT_EXT        ((CSA_uint32)3)

The header declares the following structures:

typedef struct CSA_TAG_EXTENSION {
        CSA_uint32 item_code;
        CSA_uint32 item_data;
        CSA_buffer item_reference;
        CSA_flags extension_flags;
} CSA_extension;
typedef struct CSA_TAG_CALENDAR_USER {
        CSA_string user_name;
        CSA_enum user_type;
        CSA_string calendar_address;
        CSA_extension *calendar_user_extensions;
} CSA_calendar_user;
typedef struct CSA_TAG_ACCESS_RIGHTS {
        CSA_calendar_user *user;
        CSA_flags rights;
        struct CSA_TAG_ACCESS_RIGHTS *next;
} CSA_access_rights, *CSA_access_list;
typedef struct CSA_TAG_ATTENDEE {
        CSA_calendar_user attendee;
        CSA_enum priority;
        CSA_enum status;
        CSA_boolean rsvp_requested;
        struct CSA_TAG_ATTENDEE *next;
} CSA_attendee, *CSA_attendee_list;
typedef struct CSA_TAG_OPAQUE_DATA {
        CSA_uint32 size;
        CSA_uint8 *data;
} CSA_opaque_data;
typedef void (*CSA_callback)(
        CSA_session_handle session,
        CSA_flags reason,
        CSA_buffer call_data,
        CSA_buffer client_data,
        CSA_extension *callback_extensions
);
typedef struct CSA_TAG_LOGON_CB_DATA {
        CSA_calendar_user *user;
} CSA_logon_callback_data;
typedef struct CSA_TAG_CALENDAR_DELETED_CB_DATA {
        CSA_calendar_user *user;
} CSA_calendar_deleted_callback_data;
typedef struct CSA_TAG_CALENDAR_ATTR_UPDATE_CB_DATA {
        CSA_calendar_user *user;
        CSA_uint32 number_attributes;
        CSA_attribute_reference *attribute_names;
} CSA_calendar_attr_update_callback_data;
typedef struct CSA_TAG_ADD_ENTRY_CB_DATA {
        CSA_calendar_user *user;
        CSA_opaque_data added_entry_id;
} CSA_add_entry_callback_data;
typedef struct CSA_TAG_DELETE_ENTRY_CB_DATA {
        CSA_calendar_user *user;
        CSA_opaque_data deleted_entry_id;
        CSA_enum scope;
        CSA_date_time date_and_time;
} CSA_delete_entry_callback_data;
typedef struct CSA_TAG_UPDATE_ENTRY_CB_DATA {
        CSA_calendar_user *user;
        CSA_opaque_data old_entry_id;
        CSA_opaque_data new_entry_id;
        CSA_enum scope;
        CSA_date_time date_and_time;
} CSA_update_entry_callback_data;
typedef struct CSA_TAG_DATE_TIME_ITEM {
        CSA_date_time date_time;
        struct CSA_TAG_DATE_TIME_ITEM *next;
} CSA_date_time_entry, *CSA_date_time_list;
typedef struct CSA_TAG_FREE_TIME {
        CSA_uint32 number_free_time_data;
        CSA_date_time_range *free_time_data;
} CSA_free_time;
typedef struct CSA_TAG_REMINDER {
        CSA_time_duration lead_time;
        CSA_time_duration snooze_time;
        CSA_uint32 repeat_count;
        CSA_opaque_data reminder_data;
} CSA_reminder;
typedef struct CSA_TAG_REMINDER_REFERENCE {
        CSA_entry_handle entry;
        CSA_date_time run_time;
        CSA_time_duration snooze_time;
        CSA_uint32 repeat_count;
        CSA_attribute_reference attribute_name;
} CSA_reminder_reference;
typedef struct CSA_TAG_ATTRIBUTE_ITEM {
        CSA_enum type;
        union {
                CSA_boolean boolean_value;
                CSA_enum enumerated_value;
                CSA_flags flags_value;
                CSA_sint32 sint32_value;
                CSA_uint32 uint32_value;
                CSA_calendar_user calendar_user_value;
                CSA_date_time date_time_value;
                CSA_date_time_range date_time_range_value;
                CSA_time_duration time_duration_value;
                CSA_string string_value;
                CSA_attendee_list attendee_list_value;
                CSA_date_time_list date_time_list_value;
                CSA_access_list access_list_value;
                CSA_reminder *reminder_value;
                CSA_opaque_data *opaque_data_value;
        } item;
} CSA_attribute_value;
typedef struct CSA_TAG_ATTRIBUTE {
        CSA_string name;
        CSA_attribute_value *value;
        CSA_extension *attribute_extensions;
} CSA_attribute;
typedef struct CSA_TAG_WORK_SCHEDULE {
        CSA_date_time schedule_begin_time;
        CSA_boolean cyclic_definition_flag;
        CSA_date_time cycle_end_time;
        CSA_date_time_list *work_cycle;
} CSA_work_schedule;
typedef struct CSA_TAG_XCOM {
        CSA_uint32 item_code;
        CSA_flags flags;
} CSA_X_COM_support;

The header declares the following as functions:

CSA_return_code csa_add_calendar(CSA_session_handle session,
        CSA_calendar_user *user,
        CSA_uint32 number_attributes,
        CSA_attribute *calendar_attributes,
        CSA_extension *add_calendar_extensions);

CSA_return_code csa_add_entry(CSA_session_handle session,
        CSA_uint32 number_attributes,
        CSA_attribute *entry_attributes,
        CSA_entry_handle *entry,
        CSA_extension *add_entry_extensions);

CSA_return_code csa_call_callbacks(CSA_session_handle session,
        CSA_flags reason,
        CSA_extension *call_callbacks_extensions);

CSA_return_code csa_delete_calendar(CSA_session_handle session,
        CSA_extension *delete_calendar_extensions);

CSA_return_code csa_delete_entry(CSA_session_handle session,
        CSA_entry_handle entry,
        CSA_enum delete_scope,
        CSA_extension *delete_entry_extensions);

CSA_return_code csa_free(CSA_buffer memory);

CSA_return_code csa_free_time_search(CSA_session_handle session,
        CSA_date_time_range date_time_range,
        CSA_time_duration time_duration,
        CSA_uint32 number_users,
        CSA_calendar_user *calendar_users,
        CSA_free_time **free_time,
        CSA_extension *free_time_search_extensions);

CSA_return_code csa_list_calendar_attributes(CSA_session_handle session,
        CSA_uint32 *number_names,
        CSA_attribute_reference **calendar_attributes_names,
        CSA_extension *list_calendar_attributes_extensions);

CSA_return_code csa_list_calendars(CSA_service_reference calendar_service,
        CSA_uint32 *number_names,
        CSA_calendar_user **calendar_names,
        CSA_extension *list_calendars_extensions);

CSA_return_code csa_list_entries(CSA_session_handle session,
        CSA_uint32 number_attributes,
        CSA_attribute *entry_attributes
        CSA_enum *list_operators,
        CSA_uint32 *number_entries,
        CSA_entry_handle **entries,
        CSA_extension *list_entries_extensions);

CSA_return_code csa_list_entry_attributes(CSA_session_handle session,
        CSA_entry_handle entry,
        CSA_uint32 *number_names,
        CSA_attribute_reference **entry_attributes_names
        CSA_extension *list_entry_attributes_extensions);

CSA_return_code csa_list_entry_sequence(CSA_session_handle session,
        CSA_entry_handle entry,
        CSA_date_time_range time_range,
        CSA_uint32 *number_entries,
        CSA_entry_handle **entry_list,
        CSA_extension *list_entry_sequence_extensions);

CSA_return_code csa_logoff(CSA_session_handle session,
        CSA_extension *logoff_extensions);

CSA_return_code csa_logon(CSA_service_reference calendar_service,
        CSA_calendar_user *user,
        CSA_string password,
        CSA_string character_set,
        CSA_string required_csa_version,
        CSA_session_handle *session,
        CSA_extension *logon_extensions);

CSA_return_code csa_look_up(CSA_session_handle session,
        CSA_calendar_user *users,
        CSA_flags look_up_flags,
        CSA_uint32 *number_users,
        CSA_calendar_user **user_list,
        CSA_extension *look_up_extensions);

CSA_return_code csa_query_configuration(CSA_session_handle session,
        CSA_enum item,
        CSA_buffer *reference,
        CSA_extension *query_configuration_extensions);

CSA_return_code csa_read_calendar_attributes(CSA_session_handle session,
        CSA_uint32 number_names,
        CSA_attribute_reference *attribute_names,
        CSA_uint32 *number_attributes,
        CSA_attribute **calendar_attributes
        CSA_extension *read_calendar_attributes_extensions);

CSA_return_code csa_read_entry_attributes(CSA_session_handle session,
        CSA_entry_handle entry,
        CSA_uint32 number_names,
        CSA_attribute_reference *attribute_names,
        CSA_uint32 *number_attributes,
        CSA_attribute **entry_attributes,
        CSA_extension *read_entry_attributes_extensions);

CSA_return_code csa_read_next_reminder(CSA_session_handle session,
        CSA_uint32 number_names,
        CSA_attribute_reference *reminder_names,
        CSA_date_time given_time,
        CSA_uint32 *number_reminders
        CSA_reminder_reference **reminder_references,
        CSA_extension *read_next_reminder_extensions);

CSA_return_code csa_register_callback(CSA_session_handle session,
        CSA_flags reason,
        CSA_callback callback,
        CSA_buffer client_data,
        CSA_extension *register_callback_extensions);

CSA_return_code csa_restore(CSA_session_handle session,
        CSA_string archive_name,
        CSA_uint32 number_attributes,
        CSA_attribute *attributes,
        CSA_enum *operators,
        CSA_extension *restore_extensions);

CSA_return_code csa_save(CSA_session_handle session,
        CSA_string archive_name,
        CSA_uint32 number_attributes
        CSA_attribute *attributes,
        CSA_enum *operators,
        CSA_boolean delete_entry,
        CSA_extension *save_extensions);

CSA_return_code csa_unregister_callback(CSA_session_handle session,
        CSA_flags reason,
        CSA_callback callback,
        CSA_buffer client_data,
        CSA_extension *unregister_callback_extensions);

CSA_return_code csa_update_calendar_attributes(CSA_session_handle session,
        CSA_uint32 number_attributes,
        CSA_attribute *calendar_attributes,
        CSA_extension *update_calendar_attributes_extensions);

CSA_return_code csa_update_entry_attributes(CSA_session_handle session,
        CSA_entry_handle entry,
        CSA_enum update_scope,
        CSA_boolean update_propagation,
        CSA_uint32 number_attributes,
        CSA_attribute *entry_attributes,
        CSA_entry_handle *new_entry,
        CSA_extension *update_entry_attributes_extensions);