Time Entries
Time entry recording, editing, approval, and reporting queries.
externalpermissionstable10 procedures
query
timeEntries.listInferred outputList 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;
}>query
timeEntries.getByIdInferred outputGet 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;
} | nullquery
timeEntries.getSummaryByResourceInferred outputGet summary of time entries grouped by date for a resource.
Input
{
resourceId: string;
dateFrom: string;
dateTo: string;
}Output
Array<TimeEntrySummaryByDate>query
timeEntries.getSummaryByTaskInferred outputGet summary of time entries grouped by task for a date range.
Input
{
dateFrom: string;
dateTo: string;
projectId?: string | undefined;
}Output
Array<TimeEntrySummaryByTask>mutation
timeEntries.createInferred outputCreate 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;
}mutation
timeEntries.bulkCreateInferred outputBulk 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;
}>mutation
timeEntries.updateInferred outputUpdate 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;
} | nullmutation
timeEntries.deleteInferred outputSoft delete a time entry.
Input
{
id: string;
}Output
{
success: boolean;
error: string;
} | {
success: boolean;
error?: undefined;
}mutation
timeEntries.markAsInvoicedInferred outputMark time entries as invoiced.
Input
{
invoiceLineId: string;
ids: Array<string>;
}Output
{
updatedCount: number;
}mutation
timeEntries.copyFromDayInferred outputCopy 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;
}>;
}