Calendars
Calendars implement calICalendar. They are managed by CalCalendarManager (cal.manager), which
implements calICalendarManager. Calendar configuration is stored in preferences named
calendar.registry. plus the ID of the calendar.
Useful properties
name- The human-readable name of the calendar.id- Unique identifier for the calendar.type- What sort of calendar this is, see below.
Useful methods
getProperty/setProperty/deleteProperty- Arbitrary name and value properties.addItem/modifyItem/deleteItem- Modify the collection of items in the calendar.getItem/getItems/getItemsAsArray- Fetch one or a group of items from the calendar.
Calendar Types
Calendars are either local or network (online) calendars, and add-ons exist that provide calendar data. Network calendar types handle only the communication with servers, actual item storage is automatically performed by a separate local calendar.
Memory
This is the most basic type and only stores items in memory. They are lost when Thunderbird closes. As such, it’s not very useful for much except tests or as item storage for network calendars without offline support.
Storage
This type stores items in SQLite databases. It is used as the calendar type of local (non-network) calendars and as item storage of network calendars with offline support.
iCalendar/Webcal
This is a network calendar accessed by a single request from an HTTP server. Users with
authorisation can update also push updates to the server. In Thunderbird code this is usually
called an iCalendar or ICS calendar, referring to the usual file extension for iCalendar files.
Sometimes the URL for a calendar of this type has a webcal: or webcals: scheme, though they are
actually http: or https: URLs. See RFC5545.
CalDAV
CalDAV is an extension of the HTTP protocol for managing items on a server. See RFC4791.
GData
Provider for Google Calendar is the most popular calendar add-on for Thunderbird and it has more users than the iCalendar type, so it is worth mentioning here. The add-on talks to Google Calendar using Google’s proprietary APIs and supports some features that are unavailable using CalDAV.