Markwhen Requirements Specification
Intended Use
- Create timelines with markwhen
- Manage events in text-based format
- Structure multiple timeline pages
- Utilize reminder functionality
Requirements Specification
1. Overview
markwhen is a text-based timeline creation tool. You can write events in a simple markdown-like syntax and display them as visual timelines or other formats.
2. Basic Structure
- Documents are created as
text/markwhenformat text files - Multiple timeline pages can be separated by
_-_-_break_-_-_ - Each page consists of:
- Header (optional)
- Events (one or more)
Example:
markwhen
---
title: My Timeline
---
2023-01-01: New Year's Day
2023-02-14: Valentine's Day
_-_-_break_-_-_
---
title: Another Timeline
---
2023-07-04: Independence Day3. Header
- Written in YAML format
- Main setting items:
- Title (
title:) - Description (
description:) - View restrictions (
view:) - Edit restrictions (
edit:) - Tag color settings (
#TagName: color) - Date format (
dateFormat:) - Timezone (
timezone:) - Import other markwhen files (
import:)
- Title (
Example:
markwhen
---
title: Welcome to Markwhen!
description: This is an example timeline.
edit:
- user@example.com
view: *
#Project1: #d336b1
dateFormat: d/M/y
timezone: America/New_York
import:
- other/timeline
---4. Events
- Basic format:
date range: event content - Date range specification methods:
- ISO8601 format
- Human-readable format
- EDTF format
- Relative dates
Example:
markwhen
2023-01-01/2023-12-31: Year 2023
Dec 25 2023: Christmas Day
1961/2023: Historical period
after !PreviousEvent 2 weeks: Follow-up meetingElements that can be included in event content:
markwhen
2023-06-01: Company Picnic #work
[More info](https://example.com/picnic)
[Central Park](location)

@team-calendar
- [ ] Prepare food
- [x] Send invitations
75% Complete5. Groups and Sections
- Group with
group groupNameandendGroup - Section with
section sectionNameandendSection - Nesting is also possible
Example:
markwhen
section Projects
group Project A #ProjectA
2023-01-01/2023-03-31: Phase 1
2023-04-01/2023-06-30: Phase 2
group Subproject
2023-05-01/2023-05-15: Subtask 1
2023-05-16/2023-05-31: Subtask 2
endGroup
endGroup
endSection6. Reminder Functionality (Beta)
- Set with
reminders:in header or tag - Can set reminders before start, after start, before end, after end
Example:
markwhen
---
#meeting:
reminders:
beforeBegin:
durations: [1 day, 1 hour]
afterEnd:
durations: [1 day]
---
2023-07-01 10:00: Team Meeting #meeting7. Timezones
- Set default timezone in header
- Can set different timezones per tag
Example:
markwhen
---
timezone: America/New_York
#tokyo:
timezone: Asia/Tokyo
---
2023-07-01 09:00: New York Meeting
2023-07-01 10:00: Tokyo Meeting #tokyo8. Other Notes
- Comments are written with
// comment content - Date format defaults to US format. Can be changed to European format
- Be careful with behavior of events with multiple tags (color priority, etc.)
- Can set recurring events
Example:
markwhen
// This is a comment
2023-07-01 every week for 10 weeks: Weekly Team Standup
2023-08-01: Multi-tagged event #tag1 #tag2Usage
- Design timeline referring to this requirements specification
- Create text file in markwhen format
- Visualize with markwhen tool
Input Example
text
Please create a project schedule for 2024.Output Example
markwhen
---
title: 2024 Project Timeline
---
2024-01-15/2024-03-31: Phase 1: Planning #planning
2024-04-01/2024-06-30: Phase 2: Development #development
2024-07-01/2024-09-30: Phase 3: Testing #testing
2024-10-01/2024-12-31: Phase 4: Deployment #deploymentNotes
- Maintain consistency in date formats
- Decide on tag naming conventions
- Clearly separate pages when using multiple pages