Psion Agenda File Format

Series 3t Agenda files are normal database files (see Psionics file DBF.FMT).

Each record holds five fields: four words followed by one qstr.

The descriptive record contains one subrecord of type 15. This subrecord always contains exactly 12 bytes:

Offset Length Description
0 2 Time of first appointment slot shown on a day, in minutes past midnight
2 2 Default length of an appointment, in minutes
4 2 0 = alarms off by default, else alarms on by default
6 2 Default advance time for alarms, in minutes
8 2 Default alarm time for untimed appointments, in minutes past midnight
10 1 Time separator character
11 1 Unused

Each data record holds one calendar event (possibly repeating), one day-note event (possibly repeating), or one to-do item. The record contents for each of these are described here.

Calendar events have the format:

Field Type Description
1 16-bit int day number of the event
2 16-bit int duration of the event in minutes, times 2, plus 1 if there is not an alarm attached
3 16-bit int time of the event, in minutes past midnight
4 16-bit int
time of the alarm in minutes before 23:59 of the day the event occurs on, or 0xFFFF if there is no alarm
5 qstr item text

Repeating calendar events have the format:

Field Type Description
1 16-bit int 0xFFFE
2 16-bit int duration of the event in minutes, times 2, plus 1 if there is not an alarm attached
3 16-bit int
time of the event, in minutes past midnight
4 16-bit int time of the alarm in minutes before 23:59 of the day the event occurs on, or 0xFFFF if there is no alarm
5 qstr item text followed by repeat information

Day note events have the format:

Field Type Description
1 16-bit int day number of the event
2 16-bit int 0 if an alarm is attached, or 1 if not
3 16-bit int

position of item in list:

0x8000 = first day item on that date, 0x8001 = second day item on that date, etc

4 16-bit int time of the alarm in minutes before 23:59 of the day the event occurs on, or 0xFFFF if there is no alarm
5 qstr item text

Repeating day note events have the format:

Field Type Description
1 16-bit int 0xFFFE
2 16-bit int 0 if an alarm is attached, or 1 if not
3 16-bit int position of item in list:
0x8000 = first day item on that date, 0x8001 = second day item on that date, etc.
4 16-bit int
time of the alarm in minutes before 23:59 of the day
5 qstr item text followed by repeat information

To-do items have the format:

Field 1 (word): 0xFFFF
Field 2 (word): position of item among those with this priority:
0 = first item
2 = second item
4 = third item
6 = fourth item
etc.
Field 3 (word): item priority (1 to 9 inclusive)
Field 4 (word): unused
Field 5 (qstr): item text

For repeating items, the item text is always followed by a 6 byte block giving the repeat information (this block is included in the qstr as far as the database format is concerned). This block has the form:

Offset 0 (byte): repeat type:

0 = yearly
1 = monthly by date
2 = monthly by day
3 = weekly
4 = daily
5 = workdays

Offset 1 (byte): repeat interval
Offset 2 (word): day number of the first occurence
Offset 4 (word): day number of the last occurence, or 0 if repeats forever

Day numbers must lie between 29219 and 54786 (years 1980 and 2049) inclusive. The end of a calendar event must lie in the same day as its start.