CSA_ADD_ENTRY(3)

๐Ÿ“ฆ
version 2.5.3 ยท 2 versions
, in nixos 26.05

๐Ÿ’– csa_add_entry โ€” library call, section 3 ๐Ÿ’–

okay so real talk, bestie: this is the csa_add_entry(library call) page, aka the one where you literally make a new calendar entry appear out of thin air โœจ (well, out of a service, but still).


๐ŸŒธ NAME ๐ŸŒธ

csa_add_entry โ€” add an entry to the specified calendar ๐Ÿ—“๏ธ๐Ÿ’…


โœจ SYNOPSIS โœจ

#include &<xcsa.h>
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);

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

So the csa_add_entry function adds a new entry to a calendar. Iconic. The handle for the new entry gets returned to you, which is giving "here's your receipt, bestie" ๐Ÿงพ.

Now, who's actually allowed to do this? Not just anyone, ngl. Only these people can add entries to the calendar:

  • the owner of the calendar ๐Ÿ‘‘
  • users with CSA_OWNER_RIGHTS
  • users with CSA_INSERT_PUBLIC_ENTRIES
  • user with CSA_INSERT_CONFIDENTIAL_ENTRIES
  • users with CSA_INSERT_PRIVATE_ENTRIES access rights

(iykyk โ€” those are the access rights, and if you don't have them, you don't have them ๐Ÿ’€)


๐ŸŽ€ ARGUMENTS ๐ŸŽ€

๐Ÿ’œ Session (Session Handle)

An opaque session handle that represents a session with the calendaring service. Very "you don't need to know what's inside the box" energy.

Session handles are created by a logon function call and invalidated with a logoff function call. And listen โ€” if the session handle is invalid, then the error CSA_E_INVALID_SESSION_HANDLE is returned. No cap, that's just how it is.

๐Ÿ’œ Number Attributes (Uint32)

Specifies the number of attributes in the entry_attributes argument. That's it, that's the whole job โ€” it's the count ๐Ÿงฎ.

๐Ÿ’œ Entry Attributes (Attribute)

A pointer to an array of entry attributes that will be used to define the new entry. This is where you tell the new entry what it actually is ๐Ÿ’ซ.

๐Ÿ’œ Add Entry Extensions (Extension)

A pointer to an array of CSA_extension structures for this function. Fun fact: that array may contain both input extensions (for providing additional information to the function) and output extensions (for receiving information from the function) ๐Ÿซถ.

A value of NULL indicates that the caller is not using any extensions. See the extensions structure for more information.


๐ŸŒˆ RETURN VALUE ๐ŸŒˆ

โญ Entry (Entry Handle)

A pointer to the handle for the new entry. This handle is allocated by the service, and should be freed with a single call to csa_free(3). Single! One call! Don't spam it ๐Ÿ˜ญ

โญ Add Entry Extensions (Extension)

If output extensions were passed to the function in the extensions list, the results from the service will be available in the extension. See the extensions structure for more information.

Whether the function succeeded or not, and, if not, why. It may be success or one of the values listed under ERRORS below. (Yes, that sentence is doing a lot โ€” it's the vibe check of the whole return value situation ๐Ÿ‘€)


๐Ÿ’€ ERRORS ๐Ÿ’€

The csa_add_entry function returns the following error values โ€” buckle up buttercup, there's a whole list:

  • CSA_E_DISK_FULL โ€” Insufficient disk space was available to complete the requested operation (this may refer to local or shared disk space). The disk said "no <3" ๐Ÿ’พ๐Ÿ˜ญ
  • CSA_E_FAILURE โ€” There was a general failure that does not fit the description of any other error code. The catch-all, the "it's giving unexplained" one.
  • CSA_E_INSUFFICIENT_MEMORY โ€” Insufficient memory was available to complete the requested operation.
  • CSA_E_INVALID_ATTRIBUTE โ€” An attribute was specified that was not defined by this specification and the implementation does not support the attribute as an application specific attribute.
  • CSA_E_INVALID_ATTRIBUTE_VALUE โ€” An invalid attribute value was specified for an attribute.
  • CSA_E_INVALID_DATA_EXT โ€” The data extension requested is invalid.
  • CSA_E_INVALID_FLAG โ€” A flag value in the flags argument was invalid.
  • CSA_E_INVALID_FUNCTION_EXT โ€” The function extension requested is invalid.
  • CSA_E_INVALID_PARAMETER โ€” A function parameter was invalid.
  • CSA_E_INVALID_RULE โ€” The implementation does not understand the exception or recurrence rule. It literally cannot comprehend it, bestie ๐Ÿ™ˆ
  • CSA_E_INVALID_SESSION_HANDLE โ€” The specified Session Handle is invalid or no longer valid (e.g., after logging off).
  • CSA_E_NO_AUTHORITY โ€” The user has insufficient authority for this function. You shall not pass ๐Ÿšซ
  • CSA_E_READ_ONLY โ€” An attempt was made to update a readonly attribute.
  • CSA_E_SERVICE_UNAVAILABLE โ€” The requested calendar service is unavailable.
  • CSA_E_TEXT_TOO_LARGE โ€” The size of the text string passed to the implementation is too large.
  • CSA_E_UNSUPPORTED_ATTRIBUTE โ€” An attribute was encountered that is unsupported by the calendar service.
  • CSA_E_UNSUPPORTED_DATA_EXT โ€” The data extension requested is not supported.
  • CSA_E_UNSUPPORTED_FLAG โ€” The flag requested is not supported.
  • CSA_E_UNSUPPORTED_FUNCTION_EXT โ€” The specified function extension is not supported or CSA_EXT_REQUIRED is set.
heads up bestie: that last one has an "or" in it โ€” not supported or CSA_EXT_REQUIRED is set. Both roads lead to the same error, so don't come for me ๐Ÿ’…

๐Ÿงš SEE ALSO ๐Ÿงš

csa/csa.h - csacsa(5), csa_add_calendar(3), csa_call_callbacks(3), csa_delete_calendar(3), csa_delete_entry(3), csa_free(3), csa_free_time_search(3), csa_list_calendar_attributes(3), csa_list_calendars(3), csa_list_entries(3), csa_list_entry_attributes(3), csa_list_entry_sequence(3), csa_logoff(3), csa_logon(3), csa_look_up(3), csa_query_configuration(3), csa_read_calendar_attributes(3), csa_read_entry_attributes(3), csa_read_next_reminder(3), csa_register_callback(3), csa_unregister_callback(3), csa_update_calendar_attributes(3), csa_update_entry_attributes(3).


and that's the whole page, bestie ๐Ÿซถ This was the csa_add_entry(library call) page โ€” library call, section 3, your fave little corner of the manual โ€” signed off with love and absolutely zero date stamps because that's what the footer gave us ๐ŸŽ€ go forth and add entries responsibly โœจ

๐Ÿ“ฆ where this page comes from