I just want to make sure that the iCalendar component is thread safe.
Yes, it is thread safe for all rational purposes.
Multiple threads can work on different patterns completely independently at the same time.
Multiple threads can read properties of a single pattern at the same time.
Multiple threads can request calculation of occurrences from a single pattern at the same time (although I cannot image why this would be needed by multiple threads at a time).
One thread at a time should only be modifying a pattern.