Monument

Time Entries

Time entry recording, editing, approval, and reporting queries.

externalpermissionstable10 procedures
querytimeEntries.listInferred output

List time entries for the organization with optional filters.

Input
{
  resourceId?: string | undefined;
  taskId?: string | undefined;
  isBillable?: boolean | undefined;
  limit?: number | undefined;
  offset?: number | undefined;
  isInvoiced?: boolean | undefined;
  projectId?: string | undefined;
  dateFrom?: string | undefined;
  dateTo?: string | undefined;
  includeChildTasks?: boolean | undefined;
}
Output
PaginatedResult<{
  id: string;
  resourceId: string;
  organizationId: string;
  taskId: string;
  rootTaskId: string | null;
  date: string;
  createdAt: Date;
  updatedAt: Date | null;
  deletedAt: Date | null;
  description: string | null;
  tags: Array<string> | null;
  trackId: string | null;
  hours: string;
  isBillable: boolean | null;
  startTime: string | null;
  entrySource: string | null;
  billableRate: string | null;
  isInvoiced: boolean | null;
  invoiceLineId: string | null;
  allocationId: string | null;
} & {
  resourceName: string | null;
}>
querytimeEntries.getByIdInferred output

Get a single time entry by ID.

Input
{
  id: string;
}
Output
{
  id: string;
  resourceId: string;
  organizationId: string;
  taskId: string;
  rootTaskId: string | null;
  date: string;
  createdAt: Date;
  updatedAt: Date | null;
  deletedAt: Date | null;
  description: string | null;
  tags: Array<string> | null;
  trackId: string | null;
  hours: string;
  isBillable: boolean | null;
  startTime: string | null;
  entrySource: string | null;
  billableRate: string | null;
  isInvoiced: boolean | null;
  invoiceLineId: string | null;
  allocationId: string | null;
} | null
querytimeEntries.getSummaryByResourceInferred output

Get summary of time entries grouped by date for a resource.

Input
{
  resourceId: string;
  dateFrom: string;
  dateTo: string;
}
Output
Array<TimeEntrySummaryByDate>
querytimeEntries.getSummaryByTaskInferred output

Get summary of time entries grouped by task for a date range.

Input
{
  dateFrom: string;
  dateTo: string;
  projectId?: string | undefined;
}
Output
Array<TimeEntrySummaryByTask>
mutationtimeEntries.createInferred output

Create a new time entry.

Input
{
  resourceId: string;
  taskId: string;
  date: string;
  hours: number;
  description?: string | null | undefined;
  tags?: Array<string> | undefined;
  isBillable?: boolean | undefined;
  startTime?: string | undefined;
  entrySource?: "manual" | "timer" | "copied" | "suggested" | undefined;
  billableRate?: number | undefined;
  allocationId?: string | undefined;
}
Output
{
  id: string;
  resourceId: string;
  organizationId: string;
  taskId: string;
  rootTaskId: string | null;
  date: string;
  createdAt: Date;
  updatedAt: Date | null;
  deletedAt: Date | null;
  description: string | null;
  tags: Array<string> | null;
  trackId: string | null;
  hours: string;
  isBillable: boolean | null;
  startTime: string | null;
  entrySource: string | null;
  billableRate: string | null;
  isInvoiced: boolean | null;
  invoiceLineId: string | null;
  allocationId: string | null;
}
mutationtimeEntries.bulkCreateInferred output

Bulk create time entries.

Input
{
  entries: Array<{
    resourceId: string;
    taskId: string;
    date: string;
    hours: number;
    description?: string | undefined;
    tags?: Array<string> | undefined;
    isBillable?: boolean | undefined;
    startTime?: string | undefined;
    entrySource?: "manual" | "timer" | "copied" | "suggested" | undefined;
    billableRate?: number | undefined;
    allocationId?: string | undefined;
  }>;
}
Output
Array<{
  id: string;
  resourceId: string;
  organizationId: string;
  taskId: string;
  rootTaskId: string | null;
  date: string;
  createdAt: Date;
  updatedAt: Date | null;
  deletedAt: Date | null;
  description: string | null;
  tags: Array<string> | null;
  trackId: string | null;
  hours: string;
  isBillable: boolean | null;
  startTime: string | null;
  entrySource: string | null;
  billableRate: string | null;
  isInvoiced: boolean | null;
  invoiceLineId: string | null;
  allocationId: string | null;
}>
mutationtimeEntries.updateInferred output

Update a time entry.

Input
{
  id: string;
  resourceId?: string | undefined;
  taskId?: string | undefined;
  date?: string | undefined;
  description?: string | null | undefined;
  tags?: Array<string> | undefined;
  hours?: number | undefined;
  isBillable?: boolean | undefined;
  startTime?: string | null | undefined;
  billableRate?: number | null | undefined;
}
Output
{
  id: string;
  resourceId: string;
  organizationId: string;
  taskId: string;
  rootTaskId: string | null;
  date: string;
  createdAt: Date;
  updatedAt: Date | null;
  deletedAt: Date | null;
  description: string | null;
  tags: Array<string> | null;
  trackId: string | null;
  hours: string;
  isBillable: boolean | null;
  startTime: string | null;
  entrySource: string | null;
  billableRate: string | null;
  isInvoiced: boolean | null;
  invoiceLineId: string | null;
  allocationId: string | null;
} | null
mutationtimeEntries.deleteInferred output

Soft delete a time entry.

Input
{
  id: string;
}
Output
{
  success: boolean;
  error: string;
} | {
  success: boolean;
  error?: undefined;
}
mutationtimeEntries.markAsInvoicedInferred output

Mark time entries as invoiced.

Input
{
  invoiceLineId: string;
  ids: Array<string>;
}
Output
{
  updatedCount: number;
}
mutationtimeEntries.copyFromDayInferred output

Copy time entries from one day to another. Useful for repeating daily schedules.

Input
{
  resourceId: string;
  targetDate: string;
  sourceDate: string;
  includeDescriptions?: boolean | undefined;
}
Output
{
  copied: number;
  entries: Array<{
    id: string;
    resourceId: string;
    organizationId: string;
    taskId: string;
    rootTaskId: string | null;
    date: string;
    createdAt: Date;
    updatedAt: Date | null;
    deletedAt: Date | null;
    description: string | null;
    tags: Array<string> | null;
    trackId: string | null;
    hours: string;
    isBillable: boolean | null;
    startTime: string | null;
    entrySource: string | null;
    billableRate: string | null;
    isInvoiced: boolean | null;
    invoiceLineId: string | null;
    allocationId: string | null;
  }>;
}