# Internal Limits In order to keep processing times from getting out of hand for huge (or bad) input data libical enforces these internal limits. However, these limits can be changed at runtime using the `icallimit_set()` function. Similarly, the limits can be queried using `icallimit_get()`. The internal limits and their default values are shown here: * Maximum number of parse failures allowed in a calendar file before processing halts Kind = ICAL_LIMIT_PARSE_FAILURES Default = 1000 (one thousand) * Maximum number of parse characters to search in a calendar component for the next parameter or property Kind = ICAL_LIMIT_PARSE_SEARCH Default = 100000 (one hundred thousand) * Maximum number of parse failure messages inserted into the output (by `insert_error()`) Kind = ICAL_LIMIT_PARSE_FAILURE_ERROR_MESSAGES Default = 100 (one hundred) * Maximum number of properties allowed in a calendar component Kind = ICAL_LIMIT_PROPERTIES Default = 10000 (ten thousand) * Maximum number of parameters allowed for a property Kind = ICAL_LIMIT_PARAMETERS Default = 100 (one hundred) * Maximum number of characters for a value Kind = ICAL_LIMIT_VALUE_CHARS Default = 10485760 (10 * 1024 * 1024 ie. 10 mega chars) * Maximum number of values allowed for multi-valued properties Kind = ICAL_LIMIT_PROPERTY_VALUES Default = 500 * Maximum number of times to search for the next recurrence before giving up Kind = ICAL_LIMIT_RECURRENCE_SEARCH Default = 100000 (one hundred thousand) * Maximum number of times to search for the next recurrence before time is considered standing still Kind = ICAL_LIMIT_RECURRENCE_TIME_STANDING_STILL Default = 50 (fifty) * Maximum number of times to search vtimezone rrules for an occurrence before the specified end year Kind = ICAL_LIMIT_RRULE_SEARCH Default = 500 (five hundred)