Overview
Day Copilot’s data model revolves around three primary entities: Tasks, Events, and Contexts. Understanding how these work together is essential for building effective integrations.Tasks
Tasks represent actionable items that need to be completed.Core Properties
| Property | Type | Description |
|---|---|---|
id | UUID | Unique identifier |
title | string | Task name (required) |
description | string | Detailed description |
status | enum | pending, in_progress, completed, canceled |
priority | enum | low, medium, high, urgent |
due_date | timestamp | When the task is due |
created_at | timestamp | Creation time |
updated_at | timestamp | Last modification time |
user_id | UUID | Owner of the task |
context_id | UUID | Parent context (optional) |
Versioning Properties
Tasks support draft/publish workflows:| Property | Type | Description |
|---|---|---|
version_major | integer | Published version number |
version_minor | integer | Draft version number |
is_published | boolean | Whether current version is published |
last_live | jsonb | Snapshot of last published state |
Status Lifecycle
Assignees
Tasks can have multiple assignees:Example Task Object
Events
Events represent calendar appointments and scheduled activities.Core Properties
| Property | Type | Description |
|---|---|---|
id | UUID | Unique identifier |
title | string | Event name (required) |
description | string | Event details |
start_time | timestamp | Event start (required) |
end_time | timestamp | Event end (required) |
location | string | Physical or virtual location |
all_day | boolean | Whether event is all-day |
created_at | timestamp | Creation time |
updated_at | timestamp | Last modification time |
user_id | UUID | Event organizer |
context_id | UUID | Parent context (optional) |
Attendees
Events can have multiple attendees with RSVP status:pending- Invitation sent, no responseaccepted- Confirmed attendancedeclined- Will not attendtentative- Maybe attending
Example Event Object
Contexts
Contexts organize related tasks and events into logical groups (projects, goals, categories).Core Properties
| Property | Type | Description |
|---|---|---|
id | UUID | Unique identifier |
name | string | Context name (required) |
description | string | Purpose or details |
color | string | Visual identifier (hex color) |
created_at | timestamp | Creation time |
updated_at | timestamp | Last modification time |
user_id | UUID | Context owner |
parent_context_id | UUID | Parent context for nesting |
Sharing & Collaboration
Contexts can be shared with other users:read- View tasks and eventswrite- Create and modify itemsadmin- Full control including sharing
Example Context Object
Relationships
Context Hierarchy
Contexts can be nested to create organizational structures:Tasks & Events in Contexts
Tasks and events can belong to a context:Querying by Context
Fetch all items in a context:Comments
Both tasks and events support threaded comments.Comment Structure
Adding Comments
Email-Generated Content
Tasks and events can be automatically created from forwarded emails.Email Metadata
Items created from emails include metadata:Querying Email-Generated Items
Best Practices
Use Contexts for Organization
Use Contexts for Organization
Group related tasks and events into contexts for better organization and team collaboration.
Leverage Priority & Status
Leverage Priority & Status
Use priority to indicate urgency and status to track progress. This enables filtering and smart notifications.
Set Due Dates
Set Due Dates
Always set due dates on tasks to enable timeline views and deadline reminders.
Use Comments for Collaboration
Use Comments for Collaboration
Add comments instead of modifying descriptions to preserve history and enable discussion.
Nest Contexts Carefully
Nest Contexts Carefully
Avoid deep nesting (max 2-3 levels) to keep organization simple and performant.