---
title: "Configure the daily sync time and/or timezone for all accounts in the selected Workspace."
method: PATCH
path: "/api/v2/sync/schedule"
---

# Configure the daily sync time and/or timezone for all accounts in the selected Workspace.

`PATCH /api/v2/sync/schedule`

## Request

- Base URL: `https://fintable.io`
- URL: `https://fintable.io/api/v2/sync/schedule`
- Auth: HTTP bearer

Requires write or mcp:use scope. Available on every plan. Omitted fields stay unchanged; identical values or an empty patch are a true no-op, preserving an overdue run. Extra fields are ignored. This never starts a sync or changes additional custom schedules.

## Query parameters

- `workspace_id` string

## Request body

- object
  - `daily_sync_time` string: Local daily time, HH:mm. Cannot be null.
  - `timezone` string: IANA timezone, such as America/New_York or UTC. Cannot be null.

## Response `200`

Updated schedule; no sync is started.

- object
  - `data` object
    - `schedule` SyncSchedule
      - `type` 'default' | 'custom'
      - `daily_sync_time` string
      - `timezone` string
      - `next_run_at` string, date-time, nullable: Next scheduled daily occurrence. May be overdue until queued; not a guaranteed actual start or completion.
      - `last_daily_sync` DailySyncRun: The latest recorded daily occurrence; timestamps are UTC. Queueing is not starting, and only full successful completion sets finished_at.
        - `state` 'queued' | 'running' | 'finished' | 'failed' | 'skipped', required
        - `scheduled_at` string, date-time, required: Scheduled occurrence, which can precede actual start.
        - `started_at` string, date-time, nullable, required: Actual first bank-worker start, or null if not recorded.
        - `finished_at` string, date-time, nullable, required: Successful completion of all tracked bank sync chains, including exports. Null while incomplete or failed.
        - `failed_at` string, date-time, nullable, required: When failure was recorded.
        - `skipped_at` string, date-time, nullable, required: When a run without eligible accounts was skipped.
      - `last_completed_daily_sync_at` string, date-time, nullable: Most recent successful daily completion, retained while a newer run is queued, running, failed or skipped.
      - `last_sync_at` string, date-time, nullable: Legacy Workspace-job dispatch timestamp, not actual daily start or completion.
      - `next_sync_window` object, nullable
        - `earliest` string, date-time, nullable: Same as next_run_at.
        - `latest` string, date-time, nullable: Same as next_run_at.
      - `custom_schedules` object[]
      - `default_sweep_applies` boolean

## Other responses

- `401`: The standard error envelope.
- `403`: The standard error envelope.
- `404`: The standard error envelope.
- `422`: The standard error envelope.
- `429`: The standard error envelope.

---

[API](https://skmtc.dev/fintable/apis/fintable-api.md) · [All operations](https://skmtc.dev/fintable/apis/fintable-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fintable/apis/fintable-api/revisions/b5ed1cf8f417?raw)
