Connections - Journaling

As the user connects with themselves or other contacts, they will journal those connections. This is located in ./work/[id]/journal where [id] is the identifier of the user or contact.

File Format

The file is saved as [YYYY-mm-dd]_[event_name_identifier].wrk where the first part is the date of the connection and the second part is the event name where spaces and other odd characters are converted into underscores.

Fields

  • event - (Required) A block which includes details of the event, detailed below.
  • observations - (Optional, unless sentiment and comments are present) The factual elements of the connection. This should be descriptive of just the facts. - String
  • sentiment - (Optional) How the user felt about the event. Choices include negative, neutral, or positive - Identifier
  • comments - (Optional) the textual reaction of the user, their feelings about the situation - String

event

  • name - (Required) The name of the event
  • date- (Required) The date the connection occurred - String in YYYY-MM-DD format
  • recurrence- (Optional) when this event repeats, detailed below

recurrence

  • starting - (Required) the date that the recurrence starts repeating - String in YYYY-MM-DD format
  • repeats- (Required) a recurrence string describing the schedule during which the event repeats.

repeats has two main sections:

  1. Frequency and Interval. When interval is 1, the number can be omitted. Examples: daily, weekly, monthly, yearly, every 2 weeks, every 3 days
  2. Predicate, which is specific to the type of frequency:

daily

For daily there is no predicate.

Examples:

  • daily
  • every 3 days

weekly

For weekly the predicate is the day of the week: on Friday, on Saturday and Sunday, on Monday, Wednesday and Friday. If this is missing, the system will assume that the schedule will repeat on the day of the week that the starting date falls on.

Examples:

  • weekly
  • every 2 weeks
  • every 2 weeks on Friday
  • every 4 weeks on Monday, Wednesday and Friday

monthly

For monthly the predicate can either list out the day of month or specify the position within the month that repeats.

For repeating on specific days of the month, list them out: 1st, 1st and 15th, 1st, 3rd and 10th. This is optional and if it's omitted the day of month is assumed to be the same day of month that the starting date falls on.

For repeating on the position within the month, use an ordinal expression, which has two parts: (1) The ordinal: first, second, third, fourth, fifth, next to last, last and the day specification, which is a day of the week (Sunday, Monday) or one of day, weekday, or weekend day.

Examples:

Specific days of the month:

  • monthly on the 1st and 15th
  • every 2 months on the 1st

Position within the month:

  • monthly on the first Sunday
  • monthly on the last day
  • every 3 months on the first Friday

yearly

For yearly the predicate lists out the months as above, with in as a preposition: in January, in January and February, in January, February and March. Just as above, if the month is not there the system assumes that the month is the same month the starting date falls within.

The yearly also can have the ordinal predicate, as specified above.

Examples:

  • yearly
  • yearly in January
  • yearly in May and November
  • yearly on the last Sunday
  • yearly in May on the last day
  • every 3 years
  • every 4 years on the first Tuesday

Examples

Upcoming

// located in ./work/tara_johnson/journal/2025-01-23_lunch.wrk
// Alex (the user) will have lunch with Tara on January 23, 2025.
// After the lunch he'll come back and write his observations and reactions
// about the upcoming connection.
event: {
  name: "Lunch"
  date: "2025-01-23"
}

Recurring

event: {
  name: "Lunch"
  date: "2025-01-23"
  recurring: {
    starting: "2025-01-23"
    repeats: "every 2 weeks"
  }
}

Journaled

// located in ./work/tara_johnson/journal/2025-01-23_lunch.wrk
// Alex (the user) had lunch with Tara on January 23, 2025.
// He wrote down the important facts of their interaction
// He also wrote down his feelings about the ineraction
event: {
  name: "Lunch"
  date: "2025-01-23"
}
observations: """
Talked about Project Gravy which is late
Tara has helped Kevin deliver on the containers feature.
"""
sentiment: positive
comments: """
Tara does struggle with some things but I'm impressed by her being
a team player, especially with Kevin.
"""