BlackBerry Task Database Record format. This information is result of many btool -d Tasks dumps from a single BB 8700R. firmware v4.1.0.351 (platform 2.0.0.143) It would be interesting to receive btool -d Tasks dumps from other blackberries to see if strings which appear constant, really are. Task Header, fixed length, 0xe bytes long. 00000000: 09 00 43 00 40 03 44 02 01 00 53 32 2f 0a 01 01 ..C.@.D...S2/... _____ _____ ??????????? _____ ??????????? __ __ rec rec task type len index# u1 UniqueID? u2 00000010: 00 01 74 ???????? rec type - always 09 00 I guess this is a 'Task' Record type? rec len - length of this record in bytes, including header. u1 - always 40 03 44 02 unknown... task index - the record number within the data base. determines posting order in the device (That is, if you change sort order, the indices of tasks will be modified. Similarly, if you change the priority or due date of a task the ordinal might change as well. UniqueID - 32byte Integer, unique for each task. u2 - boolean 00 or 01 , unknown. end of header 01 00 01 74 - see type 1 field description. Fields: rest of a record is a series of fields, each with a 3 byte header: Field Header 04 00 sz - size in bytes (2 bytes), excluding header. 09 field type (1 byte) <value> sz bytes, in the value format. field types: type value Meaning of field value format. ------ ---------- ---------------------- 11 string Categories, comma separated. 10 4tz timezone for deadlines, reminders etc... 0f min1900_t reminder by date (the minute when to remind.) 0e 4byte relative reminder flag 2 = true?, this field is absent if reminder is not relative. 0a 4byte priority (0-high,1-normal,2-low) 09 4byte status (0-not started, 1-in progress, 2-completed, 3-Waiting, 4-Defered) 08 4boolean 0-no due date, 1 there is a due date. 06 min1900_t ??? 05 min1900_t due date 03 string Note: (value of notes.) 02 string Title (the name of the task.) 01 byte always 0x74, unknown... (01 00 01 74) is always the first field of a task record. from http://off.net/cassis/protocol-description.html#h-1.3 it looks used in other DB's in the same way. no idea of it's purpose. formats: string -- null terminated string. 4tz: -- 32-bit LSB integer, values documented in doc/TimeZones.txt. ie. 0x23 is eastern time. min1900_t: -- signed 32-bit LSB integer offset in minutes. (before origin is -ve.) -- origin is 0000 hours january 1st, 1900 in the prime meridian time zone GMT/UTC -- Code to manipulate this type is present in the source code. Recurrence: -- Recurrence information does not appear to be stored in the Tasks DB. -- Recurrence is systematically mis-spelled in the protocol description document Order of fields... as observed in dump, do not know if it is significant, given fields are so self-descriptive. <header> <2-title> <9-status> <a-priority> <10-timezone> <6-??> <8-due_flag> [ <5-due_date> ] [ [ <e-relative_reminder_flag> ] <f-reminder_date> ] [ <11-categories> ] <3-Note>