> ## Documentation Index
> Fetch the complete documentation index at: https://docs.charle.agency/llms.txt
> Use this file to discover all available pages before exploring further.

# Logging Time

> Step-by-step guide to logging time entries in CharleOS

CharleOS offers multiple ways to log time depending on your workflow. This guide covers all the methods and best practices for accurate time tracking.

## Methods for logging time

CharleOS provides three ways to log time:

<CardGroup cols={3}>
  <Card title="Log Time Wizard" icon="wand-magic-sparkles">
    General-purpose time logging from anywhere in the app
  </Card>

  <Card title="Context Dialogs" icon="window">
    Log time directly from tasks, tickets, or projects you're viewing
  </Card>

  <Card title="Task Completion" icon="check">
    Automatically log time when marking subtasks complete
  </Card>
</CardGroup>

## Using the Log Time Wizard

The wizard is the most flexible way to log time. Access it from:

* User menu (top-right) → **Log Time**
* My Time Tracking page → **Log Time** button
* Keyboard shortcut (if configured)

### Step 1: Choose work type and client

**Internal or Client work?**

<Tabs>
  <Tab title="Client Work">
    1. Select **Client**
    2. Choose the client from the dropdown
    3. Select an activity type (Task, Client Call, Help Desk, Support, Admin)
  </Tab>

  <Tab title="Internal Work">
    1. Select **Internal**
    2. Choose activity type (typically Internal Meeting or Admin)
    3. No client selection needed
  </Tab>
</Tabs>

<Note>
  If you're logging time for a specific task or ticket, choose **Client** and select the appropriate client.
</Note>

### Step 2: Add details (conditional)

This step appears based on your activity type:

**If you selected "Task":**

* Optionally link to a task and subtask
* Use the search to find the relevant task
* Linking ensures the entry is billable

**If you selected "Help Desk":**

* **Required**: Select the help desk ticket
* Search by ticket number or title
* Cannot proceed without selecting a ticket

**Other activity types:**

* Skip to Step 3

<Warning>
  Task entries without a linked task/subtask will be marked as non-billable, even though the activity type is "Task."
</Warning>

### Step 3: Enter time details

**Date:**

* Click the calendar to select a date
* Cannot select future dates
* Can select any past date
* Defaults to today

**Duration:**

* Enter duration in **minutes**
* Minimum: 1 minute
* Maximum: 720 minutes (12 hours)
* Examples: 30 (30 min), 120 (2 hours), 480 (8 hours)

**Notes (optional):**

* Explain what you worked on
* Helpful for billing disputes or retrospectives
* Include ticket numbers, feature names, or context

<Tip>
  Round your time to the nearest 15 or 30 minutes for cleaner reporting: 15, 30, 45, 60, 90, 120, etc.
</Tip>

### Review and submit

* Check all details are correct
* Click **Log Time** to submit
* The entry appears in your My Time Tracking table
* Success notification confirms it was saved

## Logging time from context

### From a subtask

When viewing a task with subtasks:

1. Click the **Log Time** button on the subtask row
2. The dialog pre-fills:
   * Client (from task)
   * Task and subtask
   * Activity type: "Task"
   * Work type (from subtask type)
3. Enter date, duration, and notes
4. Submit

<Info>
  This is the fastest way to log billable time since everything is pre-filled correctly.
</Info>

### From a help desk ticket

When viewing a help desk ticket:

1. Click **Log Time** on the ticket detail page
2. The dialog pre-fills:
   * Client (from ticket)
   * Help desk ticket
   * Activity type: "Help Desk"
3. Enter date, duration, and notes
4. Submit

### From a project task

When viewing project tasks:

1. Click **Log Time** on the project task
2. The dialog pre-fills:
   * Project and project task
   * Activity type: "Task"
3. Enter date, duration, and notes
4. Submit

## Logging time when completing work

### Complete subtask with time logging

When you mark a subtask complete:

1. Click **Complete** on the subtask
2. A dialog appears with fields for:
   * Duration (minutes)
   * Notes
   * Late reason (if past due date)
3. Enter your time
4. Click **Complete Subtask**

The system:

* Marks the subtask complete
* Logs your time entry automatically
* Updates task progress

<Tip>
  This workflow encourages logging time immediately after finishing work while details are fresh.
</Tip>

### Active Tasks button

Delivery Team members have quick access to active work:

1. Click **Active Tasks** in the header
2. See all subtasks you're currently working on (status: "In Progress")
3. Click **Complete** to finish and log time
4. Enter duration and complete in one step

## Editing time entries

### Edit your own entries

1. Go to **My Time Tracking**
2. Find the entry in the table
3. Click the **Edit** button (pencil icon)
4. Modify any field:
   * Date
   * Duration
   * Activity type
   * Client
   * Task/subtask link
   * Notes
5. Click **Save Changes**

<Note>
  You can only edit entries you created. Managers can edit any team member's entries from the Management view.
</Note>

### Delete time entries

To delete an entry:

1. Find the entry in My Time Tracking
2. Click the **Delete** button (trash icon)
3. Confirm the deletion
4. Entry is permanently removed

<Warning>
  Deleted time entries cannot be recovered. Make sure you're deleting the correct entry.
</Warning>

## Management time tracking

Managers can oversee team time entries:

### View team time

1. Navigate to **Management → Time Tracking**
2. See all team members' time entries
3. Filter by:
   * Date range
   * Team member
   * Client
   * Activity type
   * Billable/non-billable

### Bulk operations

Managers can:

* Select multiple entries (checkboxes)
* **Bulk delete** for corrections
* Export data for analysis

### Make corrections

To correct someone's time entry:

1. Find the entry in the management table
2. Click **Edit**
3. Make the correction
4. Add a note explaining the change
5. Save

<Info>
  Time entry edits are tracked in the system history for audit purposes.
</Info>

## Time entry validation

CharleOS validates time entries to prevent errors:

### Date validation

* ❌ Future dates not allowed
* ✅ Any past date allowed
* ✅ Today and recent dates allowed

### Duration validation

* ❌ Less than 1 minute
* ❌ More than 720 minutes (12 hours)
* ✅ 1-720 minutes

### Client validation

* ❌ Deleted or inactive clients (unless admin)
* ✅ Active clients
* ✅ Internal work (no client)

### Activity type rules

* **Help Desk** with client selected requires a linked ticket
* **Task** entries should link to tasks/subtasks for billability

## Viewing your time

### My Time Tracking table

Features:

* **Search** - Find entries by notes or task name
* **Filters** - Filter by date range, client, activity type
* **Sorting** - Sort by date, duration, client, or activity type
* **Pagination** - Navigate through large datasets

### Quick filters

Common filters:

* **This week** - Monday to Sunday of current week
* **Last week** - Previous week
* **This month** - Current calendar month
* **Last month** - Previous month
* **Custom range** - Pick specific start and end dates

## Best practices

<CardGroup cols={2}>
  <Card title="Log daily" icon="calendar-day">
    Log time at the end of each day while work is fresh in your mind
  </Card>

  <Card title="Use context dialogs" icon="window">
    Log time directly from tasks/tickets to ensure correct linking
  </Card>

  <Card title="Be accurate" icon="bullseye">
    Round to realistic increments (15-30 min) but don't inflate time
  </Card>

  <Card title="Add notes" icon="pen">
    Brief notes help explain what you did and justify billable time
  </Card>

  <Card title="Link to work" icon="link">
    Always link Task entries to tasks/subtasks for accurate billing
  </Card>

  <Card title="Review weekly" icon="check">
    Check your time entries at week-end to catch mistakes before billing
  </Card>
</CardGroup>

## Common workflows

### End-of-day routine

1. Open **My Time Tracking**
2. Review tasks you worked on today
3. Click **Log Time** for each significant activity
4. Link to relevant tasks/tickets
5. Add notes for context
6. Submit all entries

### Completing a sprint of work

1. View your **Active Tasks**
2. For each completed subtask:
   * Click **Complete**
   * Enter actual duration
   * Add completion notes
3. System logs time and marks complete
4. Review entries in My Time Tracking

### Weekly review

1. Navigate to **My Time Tracking**
2. Filter to **This Week**
3. Check for:
   * Missing days (weekdays with no entries)
   * Unlinked Task entries (mark non-billable)
   * Duration accuracy
4. Edit any errors
5. Prepare for billing or payroll

## Troubleshooting

<AccordionGroup>
  <Accordion title="My Task entry shows as non-billable">
    Task entries are only billable when linked to a task, subtask, or help desk ticket. Edit the entry and link it to the relevant work.
  </Accordion>

  <Accordion title="The Help Desk activity type requires a ticket">
    When you select activity type "Help Desk" with a client, you must link to a specific help desk ticket. If there's no ticket, use "Support" activity type instead.
  </Accordion>

  <Accordion title="I logged time against the wrong client">
    Edit the time entry and change the client.
  </Accordion>

  <Accordion title="I can't edit or delete a time entry">
    You can only edit or delete your own time entries. If you need to edit someone else's entry, contact your manager - they can make corrections from the Management view.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Activity Types" icon="list" href="/user-guide/time-tracking/activity-types">
    Learn when to use each activity type
  </Card>

  <Card title="Tasks" icon="check-square" href="/user-guide/tasks">
    Understand task management and subtasks
  </Card>

  <Card title="Help Desk" icon="headset" href="/user-guide/help-desk">
    Learn about help desk tickets
  </Card>

  <Card title="Day Rates" icon="pound-sign" href="/concepts/financial/day-rates">
    How time entries affect day rate calculations
  </Card>
</CardGroup>
