A journal management function.
A calendar journal is useful for recording outcomes of past events and keeping records of achievements. A journal consists of a series of entries that record descriptive information and any related participants, attachments, comments, etc.
A journal might be used to record meeting minutes (absentees, discussion points, actions, etc.), track activities and outcomes of actions, or as a personal diary or microblogging platform.
A journal entry may consist of multiple revisions representing changes to the recorded details. Each revision is stored as a separate record in the database. The unique identifiers making up the composite key include:
- UID - Unique identifier for the journal entry (shared by all revisions of an entry)
- Sequence Number - Incremental revision identifier (indicates new revision of an entry)
- Recurrence ID - A timestamp identifier for specific instances of a recurring journal entry
A journal entry may refer to one or more attachments via an external link (URL) or an inline base64 encoded binary.
One or more comments can be associated with a journal entry, which are defined via inline text or an external reference (URL).
Multiple contacts may also be associated with a journal entry. Contact information may be define as inline text and/or an external reference (URI).
Text-based labels or categories may be associated with a journal entry.
Related calendar entries, journals or tasks may also be recorded against a journal entry. An example of this may be when a journal entry represents recorded minutes for a meeting.
Journal entries may be classified as public, private or confidential, and may be used to control access and controls applied to a journal entry.
The following JSON structure is used to create, update and retrieve journal entries.
{
"action": "compose",
"summary": "A new entry",
"description": "A longer text description",
"organizer": "John Doe"
}
{
"action": "compose",
"summary": "Monthly Retrospective",
"description": "Record actions from retro",
"organizer": "John Doe",
"rrule": "FREQ=MONTHLY;BYDAY=MO"
}
{
"action": "revision",
"uid": "1234",
"summary": "An entry update",
"description": "A longer text description",
"organizer": "John Doe"
}
{
"action": "revision",
"uid": "1234",
"recurrence-id": "20210214",
"summary": "February Retrospective",
"description": "Actions from Feb retro: ..",
"organizer": "John Doe"
}
{
"action": "list",
"uid": "1234",
"depth": "-1"
}
{
"action": "search",
"from": "2020-01-01",
"organizer": "[email protected]"
}
PK | SK | Name | Date | Organizer | Summary | Description | Categories | Classification | URL |
---|---|---|---|---|---|---|---|---|---|
ENTRY#<uid>:<sequenceno>:<recurid> |
#METADATA#<uid>#.. |
Jan 01 2021 | 2020-01-01 | [email protected] | First day of 2021 | Relaxing start to the year | my-journal | PUBLIC | - |
CATEGORY#my-journal | #METADATA#my-journal | My Journal | |||||||
ENTRY#<uid>:<sequenceno>:<recurid> |
ATTACH#1 | - | - | - | - | https://photos.example.com/relax.png | |||
ENTRY#<uid>:<sequenceno>:<recurid> |
CONTACT#1 | John Doe | - | - | - | [email protected] | |||
ORGANIZER#[email protected] | #METADATA#[email protected] | John Doe |