Calendar database

The Maemo 5 calendar database can be found in /home/user/.calendar/calendardb. The goal of this article is to provide enough information on the calendar database in order to implement mass modifying/adding/deleting events verifying some criterias (string match in title, locations, comments for example). It could be easy then to write a small shell script using zenity and sqlite3 to perform this tasks.

If you want to help editing this article and writing useful informations on fields or new scripts, feel free to copy your own database on your computer and analyze it with some tools like "SQLite Database Browser" (Linux/Debian). The datatypes are those listed in the SQLite documentation.

Contents

[edit] Structure

[edit] Tables & fields

[edit] ALARM

[edit] Id
[edit] Trigger
[edit] Repeat
[edit] Duration
[edit] Action
[edit] CookieId
[edit] Attach

[edit] Birthdays

Birthdays table
Field Type Description
Id integer primary key
DayMonth integer Day and month as a combined integer. Calculated as: month*100+day (day with a leading zero). 1102 means November 2
Year integer Year as a number.

[edit] Calendars

Calendars table
Field Type Description
CalendarId integer primary key
Name text name of the calendar
Colour integer 0 = dark blue, 1 = green, 2 = dark pink, 3 = orange, 4 = purple, 5 = yellow, 6 = white, 7 = light blue, 8 = light pink, 9 = yellow-green
isVisible integer 0 = not visible, 1 = visible
isReadonly integer 0 = writeable, 1 = not writeable
CalendarType integer 0 = local, 1 = intelligent, 2 = ?, 3 = private, 4 = synchronized
CalendarTune text Path to the calendar alarm sound. Default path: /usr/share/sounds/ui-calendar_alarm_default.aac
CalendarVersion
CalendarProfile

[edit] ComponentDetails

[edit] Id
[edit] ComponentType
[edit] Class
[edit] Geo
[edit] Priority
[edit] DateStamp
[edit] Sequence
[edit] Transparency
[edit] Uid
[edit] Url
[edit] Attach
[edit] Category
[edit] Comment
[edit] Contact
[edit] Related
[edit] Resources
[edit] Percent
[edit] Completed

[edit] Components

Components table
Field Type Description
Id integer primary key
CalendarId integer association with the corresponding calender
ComponentType integer 1 = event, 2 = task, 3 = note, 4 = birthday
Flags
DateStart integer UTC start date in Unix Time Format (number of seconds since 01/01/1970)
DateEnd integer -1 = undefined, otherwise UTC end date in Unix Time Format (number of seconds since 01/01/1970)
Summary text title [event, task, note, birthday]
Location text location [event]
Description text comments [event, task, note]
Status integer -1 = undefined [event, note]. 0 = incomplete [task], 1 = complete [task], yyyy = year [birthday]
Uid
Until integer -1 = none [event, tastk, note], 2145913199 = end of calendar / limit of the Unix Time Format, other integer = end date of a recurrence [event, birthday]
AllDay integer 0 = in limited time [event, task, note], 1 = all day [event, birthday]
CreatedTime integer date of creation
ModifiedTime integer last date of modification
Tzid text time zone identifier, for example "Europe/Paris"
TzOffset text time zone offset in seconds compared to UTC, for example "7200" (2 hours)

[edit] IDMAP

[edit] LocalId
[edit] ExternalId

[edit] Instances

[edit] Id
[edit] DateStart
[edit] DateEnd

[edit] Parameters

[edit] ComponentId
[edit] PropertyType
[edit] PropertyValue
[edit] ParamName
[edit] ParamValue

[edit] RECURSIVE

[edit] Id
[edit] Rrule
[edit] Rdates
[edit] Exdates
[edit] Exrule
[edit] RecurrenceId
[edit] Rtype

[edit] TIMEZONE

[edit] Location
[edit] Tzid
[edit] DtStartStd
[edit] DtStartDst
[edit] TzOffsetStd
[edit] TzOffsetDst
[edit] RRuleStd
[edit] RRuleDst
[edit] TzName
[edit] DSTFlag

[edit] Trash

[edit] ComponentId
[edit] CalendarId
[edit] ComponentType
[edit] DeletedTime
[edit] CreatedTime

[edit] XProperties

[edit] ComponentId
[edit] XPropertyName
[edit] XPropertyValue

[edit] sqlite_sequence

[edit] name
[edit] seq

[edit] Indices

[edit] IDX_ALARM

[edit] IDX_BIRTHDAYS_DATE

[edit] IDX_BIRTHDAYS_IDS

[edit] IDX_CALENDAR

[edit] IDX_COMPONENT

[edit] IDX_DETAILS

[edit] IDX_INST

[edit] IDX_RECURSIVE

[edit] IDX_TIMEZONE

[edit] IDX_TRASH