How to export Clockify reports longer than 31 days
If Clockify's report date picker refused a twelve-month range, you are not doing it wrong. The Free-plan limit is real. Here are four ways to get a full year of time entries, including a Google Sheets option that avoids repeated manual exports.
No credit card. Your trial starts on the first import.
Where the 31-day cap actually appears
Clockify's help centre lists it among the Free plan restrictions as “Report and dashboard date range filter: 1 month (31 days) at a time”. Note what that covers: the filter, not one report type. Detailed, Summary and Weekly are not carved out separately, and the dashboard sits under the same cap.
Clockify's own pages word it differently, which is why search results contradict each other: the export help page says “a maximum of 31 days or 1 month per report”, while the Free plan features overview says “a maximum date range of 1 month” and never mentions 31 days.
The export is capped twice over
Even inside a legal window, Free exports PDF only: “PDF (Free plan) or CSV/Excel (Basic plan or higher)”, and “A PDF file can contain up to 3000 rows.” You get a document, not data — and the document has its own ceiling.
The API is a separate question
Clockify's article on exporting via the API points at POST /v1/workspaces/{workspaceId}/reports/detailed and the matching /reports/summary, and its example request uses a full calendar year. That page documents no 31-day restriction there.
Do not plan a quarterly close around that. “Not documented” is not “not enforced”. I have not verified it on a live Free workspace — test one long-range request on yours first.
Why it exists: the April 2026 Free plan change
CAKE.com, Clockify's parent company, announced the Free plan changes on 21 April 2026. It did not arrive alone: Free was capped at 5 users, API access cut to 30 requests per hour and webhooks to 3, while billable hours, shared reports and CSV/Excel export moved behind paid plans.
It adds that “The existing paid plan users will not be affected by this change.” So the cap is a Free-plan restriction and paying removes it — Clockify documents no date-range limit for paid plans. If the picker worked last year, nothing broke on your machine.
The billable trap, since you are probably closing a quarter: billable rates moved to paid plans in the same change. On Free every entry comes back non-billable, so a “billable hours for the year” figure from a Free workspace is not a billable total. It is just your hours.
The manual method: twelve monthly PDF exports
Clockify's own suggestion is to run and export month by month: calendar months are all 31 days or fewer, so twelve of them clear the filter.
Set the range, run the Detailed report, export, rename the download, repeat eleven times — at three optimistic minutes a slice, most of an hour. Then it stops being useful, because you cannot sum a PDF or point an invoice formula at it — you retype or convert and clean the columns twelve times, against a 3,000-row ceiling per file.
The API method: loop month by month, append into one sheet
The Clockify API works on Free: access was rate-limited in April 2026, not removed.
-
Loop the reports endpoint
Twelve
POSTcalls to/v1/workspaces/{workspaceId}/reports/detailed, each withdateRangeStartanddateRangeEndone month apart, appending as you go. Clockify documentsJSON,CSV,XLSXandPDFas export values there, but repeats that CSV/Excel is Basic or higher — on Free, take JSON. -
Or page the time-entries endpoint
GET /v1/workspaces/{workspaceId}/user/{userId}/time-entriesreturns your own entries page by page — a different endpoint from the reports one. -
Set page-size, or pay for it later
Clockify returns 50 results per page by default; the documented maximum is “max 5000 for base and 1000 for report endpoints”. Leaving the default is the commonest way to turn a backfill into a rate-limit failure.
Why 30 requests per hour bites hardest on a backfill
This limit decides whether a year-long export finishes. Clockify's Free plan page gives “30 API requests per hour and up to 3 active webhooks per workspace”; its API limitations page says “Newly created workspaces on the Free plan are restricted to 30 API requests per hour”, against “50 requests per second” on any paid plan. One page says Free workspaces, the other newly created ones — if yours predates April 2026, measure before assuming.
Then the arithmetic. Twelve monthly report calls is twelve requests: comfortable. But a backfill is rarely twelve calls — each month may paginate, and at 50 rows a page a busy month is several pages. Add workspace, user and project lookups and a year crosses thirty around month seven. Against a per-hour budget that is not a pause: it is up to an hour, with a half-built sheet.
Three things help: raise page-size to the documented maximum, cache the project list, and write each month into the sheet as it arrives — so failing at month seven does not cost you months one to six.
Keeping the sheet current instead of re-exporting every quarter
The backfill is a one-off; the recurring cost is next quarter. The cheaper shape is a sheet that is the record, refreshed in place: a top-up needs only the days since the last run — inside 31 days, so the cap stops applying and the request count drops to a handful.
How HourSync handles a multi-month backfill
HourSync is a Google Sheets add-on that imports Clockify time entries into your spreadsheet. On a long backfill, read off its source:
- The sidebar asks “Import the last N days”: a number field, minimum 1, maximum 3,650. A year is
365. - It does not call the reports endpoints. It calls
GET /workspaces/{id}/user/{userId}/time-entrieswithpage-size=200, page by page, and sends no date parameters. The cutoff — now minus N days — is applied in Apps Script as rows are read. - Every import rewrites the Hours sheet in place, so re-running a backfill cannot leave duplicate rows behind.
The honest consequence: since no date filter reaches Clockify, the number of API calls scales with the size of your history, not with the window you asked for. On a Free workspace with a long history and 30 requests an hour, a large backfill can hit the limit. HourSync retries with exponential backoff over four attempts — enough for a momentary throttle, not a per-hour quota — then stops and says so rather than leaving a truncated sheet. Wait out the hour and re-run.
How to get it: HourSync is available now in Google Workspace Marketplace.
Try HourSync free for 14 daysNo credit card. Your trial starts on the first import. Need help? Write to danibarbers13@gmail.com.
When paying for Basic is simply cheaper than the workaround
Clockify lists Basic at $3.99 per seat per month billed annually, or $4.99 billed monthly (USD; Clockify localises the currency by region). One month, taken and cancelled, is under five dollars.
| Free | Basic | |
|---|---|---|
| Report date range filter | 1 month (31 days) at a time | No documented limit |
| Export formats | PDF only, up to 3,000 rows | PDF, CSV and Excel |
| API requests | 30 per hour per workspace | 50 per second |
| Billable rates | Paid feature — not available | Available |
Pay if you need CSV or Excel rather than PDF, genuine billable totals rather than raw hours, or a migration you never think about again: a month of Basic beats an afternoon of scripting on cost, and decisively on risk. Stay on Free if you are one person invoicing from a spreadsheet.
To be explicit: HourSync does not remove any Clockify limit — no add-on can. It reads through the API, which is available on Free, and that is the only reason it works there. The €19/month subscription adds project filters, a Summary sheet and a daily refresh. See what it writes into the sheet.