Examples
Concrete .ot examples to help you understand and adopt the format in your own tools.
How to Use These Examples
This page shows practical OpenTime snippets you can copy, adapt, and experiment with. They're intentionally small, human-readable YAML fragments that exercise the core ideas of the format:
- One file, many item types
- Human-readable first, machine-parseable second
- Plain text you own
- Easy to version, diff, sync, and share
At the bottom of the page you'll find a link to a more complete sample.ot file that demonstrates every OpenTime item type.
Example 1: Minimal Task List
This is a minimal OpenTime file that only uses task items. It's a good starting point if you're building a simple task manager or a CLI tool.
# minimal-tasks.ot
opentime_version: "0.2"
default_timezone: "Asia/Tokyo"
items:
- type: task
id: task_inbox_1
title: "Brain dump ideas for Elysium"
status: todo
tags: ["inbox", "elysium"]
- type: task
id: task_inbox_2
title: "Book dentist appointment"
status: todo
tags: ["life-admin"]
- type: task
id: task_inbox_3
title: "Refactor OpenTime parser"
status: in_progress
estimate_minutes: 90
tags: ["dev", "opentime"]Even in this simple example, you get the core OpenTime advantages: everything is in one place, human-readable, and trivially parseable as YAML into your language of choice.
Example 2: A Simple Daily Schedule
This example mixes a task, a focus event, and a small recurring reminder to represent a basic day plan.
# daily-plan.ot
opentime_version: "0.2"
default_timezone: "Asia/Tokyo"
generated_by: "Elysium 0.3"
items:
- type: task
id: task_write
title: "Write 500 words"
status: todo
due: "2025-12-04"
estimate_minutes: 45
tags: ["writing", "daily"]
- type: event
id: ev_deepwork
title: "Deep Work – Novel"
start: "2025-12-04T09:00:00+09:00"
end: "2025-12-04T11:00:00+09:00"
location: "Home Office"
tags: ["focus", "no-meetings"]
- type: reminder
id: rem_water
title: "Drink water"
time: "2025-12-04T14:00:00+09:00"
repeat: "FREQ=HOURLY;COUNT=4"
tags: ["health"]A client can render this as a calendar, a list, or both. The format does not dictate the UI; it just provides a portable representation of the underlying intent.
Example 3: A Project with Goals, Tasks, and Events
This example shows how project items can act as containers linking together related goals, tasks, and events.
# novel-project.ot
opentime_version: "0.2"
default_timezone: "Asia/Tokyo"
items:
- type: goal
id: goal_novel
title: "Finish Novel Draft"
kind: goal
target_date: "2026-03-31"
progress: 0.33
tags: ["writing", "major"]
- type: task
id: task_outline
title: "Outline main story beats"
status: done
project_id: proj_novel
goal_id: goal_novel
tags: ["writing"]
- type: task
id: task_chapter_1
title: "Draft Chapter 1"
status: in_progress
project_id: proj_novel
goal_id: goal_novel
tags: ["writing"]
- type: event
id: ev_deepwork_novel
title: "Deep work – worldbuilding"
start: "2025-12-05T09:00:00+09:00"
end: "2025-12-05T11:00:00+09:00"
project_id: proj_novel
goal_id: goal_novel
tags: ["focus", "writing"]
- type: project
id: proj_novel
title: "Write My First Novel"
kind: project
children:
- goal_novel
- task_outline
- task_chapter_1
- ev_deepwork_novel
target_date: "2026-03-31"
progress: 0.33
tags: ["long-term", "creative"]OpenTime doesn't enforce how you interpret project_id and children, but it provides a consistent way to represent these relationships across tools.
Example 4: Extensions with x_* Fields
This example shows how app-specific fields can be stored inside an OpenTime file without breaking interoperability. Other apps can ignore these fields while still preserving them on round-trip.
# extensions-example.ot
opentime_version: "0.2"
default_timezone: "Asia/Tokyo"
items:
- type: event
id: ev_example
title: "Event with extensions"
start: "2025-12-20T10:00:00+09:00"
end: "2025-12-20T11:00:00+09:00"
x_elysium:
focus_mode: "deep"
color: "#3B82F6"
auto_schedule: true
x_custom_app:
custom_field: "preserved on round-trip"The OpenTime specification requires that implementations must not discard unknown fields, including x_* namespaces. This is what makes OpenTime round-trip safe across apps.
Download the Full Sample File
The Elysium project includes a more comprehensive sample.ot file that exercises all seven item types: goals, tasks, habits, reminders, events, appointments, and projects, plus extensions.
Tip: store this file in version control, open it in your editor, and experiment with your OpenTime parser. It's a great way to verify that your implementation supports the full range of item types.