Omniscio documentation
Browse all documentation
  1. Getting Started13
  2. Sessions & Agents115
  3. Inbox & Notifications59
  4. Projects & Tasks95
  5. Automation & Scheduling75
  6. Knowledge & Memory26
  7. AI Features60
  8. Integrations100
  9. Plugins & Marketplace33
  10. Cloud & Teams56
  11. Settings & Customization58
  12. Account & Billing28
  13. Troubleshooting84
  14. CLI & API Reference22
  15. Legal & Policies4
  16. Uncategorised22

Team Time — World Clock Dashboard

Team Time is a built-in world clock for a team spread across timezones: live clocks with working-hours status dots, a meeting planner that shows a proposed slot in everyone's local time with overlap detection, and a reverse converter for scheduling emails into someone else's workday. It is off by default, behind a Settings toggle, a toolbar Globe icon and a Quick Launch tab.

What it is

Team Time is a built-in Omniscio feature for managing team members across timezones. It provides live clocks with working-hours status indicators, a meeting planner with overlap detection, and a reverse time converter for scheduling emails at specific times in someone else's timezone.

Where to find it

Settings > Features > Enable Team Time (toggle, default off). When enabled, a Globe icon appears in the toolbar. The Quick Launch (Ctrl+Space) also gains a Team Time tab for fast timezone lookups.

How it behaves

Three Tabs

Dashboard

Live clocks for every saved team member, organized by group. Each card shows:

  • Current local time (updates every 30 seconds)
  • Working status dot: green (working hours), amber (within 1 hour of start/end), red (off hours)
  • Timezone name with UTC offset
  • Working hours range

A "Your time" reference clock at the top updates in sync.

Planner

Two modes:

Schedule a meeting — Enter an optional meeting title, pick a date, start time, and duration (15 min to 4 hours, default 1 hour), then select people. Shows what that time would be in each person's timezone with status indicators. An overlap bar visualizes working-hours overlap when 2+ people are selected. Three actions on results:

  • Copy summary — generates a formatted text block for calendar invites
  • Create Meeting — creates a Google Calendar event with the chosen title (or auto-generated "Meeting - Names"), duration, and timezone breakdown in the description. Requires calendarEnabled + Calendar channel connected (checked via useChannelsStore). Shows a success toast on creation. Disabled (grayed out) otherwise.
  • Draft Email — creates a Gmail draft with a formatted meeting invite body. The draft is created without a recipient (to is optional via gmailDraftSchema) so the user can add addresses manually in Gmail. Requires gmailEnabled + Gmail authenticated (checked via useGmailStore, NOT the channels store — Gmail is not a channel adapter). Shows a success toast on creation. Uses the GMAIL_CREATE_DRAFT IPC channel.
  • Send Booking Link — creates a Gmail draft containing a Calendar Scheduler booking link so recipients can self-schedule. Only visible when the Calendar Scheduler marketplace plugin is installed, enabled, and running. Five states: hidden (plugin absent), connect prompt (plugin not connected), disabled (no booking pages), direct send (one link), or picker dropdown (multiple links). Requires Gmail connected (same as Draft Email). Uses TEAM_TIME_BOOKING_LINKS to fetch links from the plugin, then GMAIL_CREATE_DRAFT to compose the draft.

Convert a time — Pick a person and a time in their timezone. Shows what that time would be in your local timezone. Useful for scheduling emails to arrive at a specific time in someone else's workday.

Manage

Add, edit, and delete team members and groups. Each person has:

  • Name
  • IANA timezone (searchable picker with ~400 zones)
  • Working hours (start/end times, default 09:00–17:00)
  • Color (8 presets, optional)
  • Group assignment (optional)

Groups have a name and optional color. People within a group are displayed together on the Dashboard.

Bulk Add (UI)

The Manage tab has an "Add Multiple" button that opens a paste-friendly dialog. Users type one person per line as Name, Timezone (e.g. Holly Ocaya, CST). Abbreviations like CST, IST, JST, EST are auto-resolved to IANA zones. A preview step shows which entries are valid before committing.

Future: Contact Info for Meeting Notifications

Currently Team Time tracks names and timezones but not contact information (email addresses, etc.). The Planner creates calendar events and email drafts for the user's own benefit — the listed people are never notified directly. To scale this into a proper meeting-invitation flow, each person would need at least an email field so that:

  • Calendar events can add attendees (Google Calendar sends invites automatically when attendees are present)
  • The Draft Email button can pre-fill the "To" field with selected people's addresses

This would require adding an email column to team_time_people, updating the Manage tab's add/edit forms, the bulk-add parser, the CLI POST /team-time/people body schema, and the Planner's handleCreateEvent/handleDraftEmail functions.

For agents

Data Model

Three SQLite tables (migration v236):

  • team_time_groups — id, name, color, sortOrder
  • team_time_people — id, name, timezone, workStart, workEnd, color, groupId (FK), sortOrder
  • team_time_project_links — projectId (FK), personId (FK), composite PK

Soft-delete via is_deleted on people and groups.

CLI Endpoints

The CLI control server exposes Team Time management so agents can add people programmatically. All endpoints require bearer-token auth.

Method Path Purpose
GET /team-time/people List all people
POST /team-time/people Create one person
POST /team-time/people/bulk Create up to 50 people at once
DELETE /team-time/people/:id Soft-delete a person

POST body (single): { "name": "Holly", "timezone": "America/Chicago", "workStart": "09:00", "workEnd": "17:00" }. workStart/workEnd default to 09:00/17:00 if omitted.

POST body (bulk): { "people": [{ "name": "...", "timezone": "..." }, ...] }. Max 50 per call.

Common timezone abbreviations (IST, CST, EST, etc.) are NOT resolved by the CLI — callers must pass IANA zone names (e.g. Asia/Kolkata, America/Chicago). The UI bulk-add dialog handles abbreviation resolution.

IPC Channels

14 request channels (team-time:people:*, team-time:groups:*, team-time:project-links:*, team-time:booking-links) + 1 push channel (team-time:changed). All follow the standard wrapHandler + Zod validation pattern. The booking-links channel is a read-only proxy to the Calendar Scheduler plugin's CLI endpoint; it returns one of four states (hidden/connect/disabled/ready) and is blocked on the mobile WS bridge.

Key Files

  • Store: src/renderer/src/stores/team-time-store.ts
  • Utilities: src/renderer/src/lib/team-time-utils.ts (timezone math via native Intl APIs)
  • Components: src/renderer/src/features/team-time/
  • CLI routes: src/main/services/cli/cli-server-team-time-routes.ts
  • Queries: src/main/db/queries-team-time.ts
  • Handlers: src/main/ipc/team-time-handlers.ts, src/main/ipc/team-time-booking-handlers.ts
  • Feature flag: teamTimeEnabled in AppSettings

Related

The Planner hands off to two other surfaces: Meetings collects the calls the app knows about, and Calendar Quick Add is the fast path for putting one on your calendar. Google Integrations covers the Calendar and Gmail connections its Create Meeting and Draft Email actions depend on, and Google Meet is the separate in-app meeting surface.

Last verified 2026-09-23