Skip to main content

Calendar

GET List calendar integrations​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar

List calendar integrations, i.e. the email accounts connected. Each calendar includes default_action (do_nothing|log_time|plan_task|both).

curl  https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID

Response​

200​

List of integrations, aka connected emails

NameTypeDescription
itemsArray of object-
items​
NameTypeDescription
auto_trackboolean-
calendar_integration_idinteger-
calendarsArray of object-
created_atstring-
emailstring-
error_statusstring-
has_write_scopeboolean-
origin_product_idintegerThe product that initially integrated the calendar.
providerstring-
scopesArray of string-
calendars​
NameTypeDescription
auto_trackboolean-
background_colorstring-
calendar_idinteger-
calendar_integration_idinteger-
created_atstring-
default_actionstring-
default_planned_task_idinteger-
default_project_idinteger-
default_workspace_idinteger-
deleted_atstring-
external_idstring-
focus_auto_trackboolean-
foreground_colorstring-
namestring-
remind_trackingbooleanThe following fields are deprecated but we need to keep them for backward compatibility with previous versions of mobile apps
selectedboolean-
updated_atstring-

400​

Invalid request

500​

Internal Server Error

GET Setup calendar integration​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/setup

Connect a new calendar integration.

curl  https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/setup \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID

Query​

nametyperequireddescription
providerstringtrueCalendar service provider which the calendars will be retrieved
return_tostringfalsePage to which the user will be redirected after authenticating

Response​

302​

Redirect to oAuth URL

400​

Invalid request

402​

status payment required: integration already exists

500​

Internal Server Error

GET List calendars for a particular integration​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id}

List calendars for a particular integration, i.e. the calendars available from the connected account. Each calendar includes default_action (do_nothing|log_time|plan_task|both).

curl  https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id} \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID

Response​

200​

List of calendars

NameTypeDescription
itemsArray of object-
items​
NameTypeDescription
auto_trackboolean-
background_colorstring-
calendar_idinteger-
calendar_integration_idinteger-
created_atstring-
default_actionstring-
default_planned_task_idinteger-
default_project_idinteger-
default_workspace_idinteger-
deleted_atstring-
external_idstring-
focus_auto_trackboolean-
foreground_colorstring-
namestring-
remind_trackingbooleanThe following fields are deprecated but we need to keep them for backward compatibility with previous versions of mobile apps
selectedboolean-
updated_atstring-

400​

Invalid request

500​

Internal Server Error

DELETE Delete a calendar integration​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id}

Delete a calendar integration.

curl -X DELETE https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id} \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID

Query​

nametyperequireddescription
preserve_entitiesbooleanfalseWhen true, leave linked tasks/TEs/TBs in place. Default false: cascade soft-delete all linked entities.

Response​

204​

No Content

400​

Invalid request

500​

Internal Server Error

PUT Update calendar integration​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id}/calendars/{calendar_id}

Update calendar integration. Accepts optional default_action (do_nothing|log_time|plan_task|both). Omitting the field preserves the existing value upstream.

curl -X PUT https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id}/calendars/{calendar_id} \
-H "Content-Type: application/json" \
-d '\{"auto_track":"boolean","background_color":"string","calendar_id":"integer","calendar_integration_id":"integer","created_at":"string","default_action":"string","default_planned_task_id":"integer","default_project_id":"integer","default_workspace_id":"integer","deleted_at":"string","external_id":"string","focus_auto_track":"boolean","foreground_color":"string","name":"string","remind_tracking":"boolean","selected":"boolean","updated_at":"string"\}' \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID
calendar_idintegertruecalendar ID

Body​

NameTypeDescription
auto_trackboolean-
background_colorstring-
calendar_idinteger-
calendar_integration_idinteger-
created_atstring-
default_actionstring-
default_planned_task_idinteger-
default_project_idinteger-
default_workspace_idinteger-
deleted_atstring-
external_idstring-
focus_auto_trackboolean-
foreground_colorstring-
namestring-
remind_trackingbooleanThe following fields are deprecated but we need to keep them for backward compatibility with previous versions of mobile apps
selectedboolean-
updated_atstring-

Response​

204​

No Content

400​

Invalid request or invalid enum value

500​

Internal Server Error

GET Request write scope.​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id}/reauth

Increment the user's oauth scope for write capabilities

curl  https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id}/reauth \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID

Query​

nametyperequireddescription
return_tostringtruePage to which the user will be redirected after authenticating

Response​

302​

Redirect to oAuth URL

400​

Invalid request

404​

Integration not found

500​

Internal Server Error

POST Update integration​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id}/update

Update integration.

curl -X POST https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/integrations/calendar/{integration_id}/update \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID

Response​

200​

List of calendars

NameTypeDescription
itemsArray of object-
items​
NameTypeDescription
auto_trackboolean-
background_colorstring-
calendar_idinteger-
calendar_integration_idinteger-
created_atstring-
default_actionstring-
default_planned_task_idinteger-
default_project_idinteger-
default_workspace_idinteger-
deleted_atstring-
external_idstring-
focus_auto_trackboolean-
foreground_colorstring-
namestring-
remind_trackingbooleanThe following fields are deprecated but we need to keep them for backward compatibility with previous versions of mobile apps
selectedboolean-
updated_atstring-

400​

Invalid request

500​

Internal Server Error

GET List calendar integrations​

https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar

List calendar integrations, i.e. the email accounts connected.

curl  https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID

Response​

200​

List of integrations, aka connected emails

NameTypeDescription
itemsArray of object-
items​
NameTypeDescription
auto_trackboolean-
calendar_integration_idinteger-
calendarsArray of object-
created_atstring-
emailstring-
error_statusstring-
has_write_scopeboolean-
origin_product_idintegerThe product that initially integrated the calendar.
providerstring-
scopesArray of string-
calendars​
NameTypeDescription
auto_trackboolean-
background_colorstring-
calendar_idinteger-
calendar_integration_idinteger-
created_atstring-
default_actionstring-
default_planned_task_idinteger-
default_project_idinteger-
default_workspace_idinteger-
deleted_atstring-
external_idstring-
focus_auto_trackboolean-
foreground_colorstring-
namestring-
remind_trackingbooleanThe following fields are deprecated but we need to keep them for backward compatibility with previous versions of mobile apps
selectedboolean-
updated_atstring-

400​

Invalid request

500​

Internal Server Error

GET Setup calendar integration​

https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/setup

Connect a new calendar integration.

curl  https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/setup \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID

Query​

nametyperequireddescription
providerstringtrueCalendar service provider which the calendars will be retrieved
return_tostringfalsePage to which the user will be redirected after authenticating

Response​

302​

Redirect to oAuth URL

400​

Invalid request

402​

status payment required: integration already exists

500​

Internal Server Error

GET List calendars for a particular integration​

https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id}

List calendars for a particular integration, i.e. the calendars available from the connected account.

curl  https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id} \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID

Response​

200​

List of calendars

NameTypeDescription
itemsArray of object-
items​
NameTypeDescription
auto_trackboolean-
background_colorstring-
calendar_idinteger-
calendar_integration_idinteger-
created_atstring-
default_actionstring-
default_planned_task_idinteger-
default_project_idinteger-
default_workspace_idinteger-
deleted_atstring-
external_idstring-
focus_auto_trackboolean-
foreground_colorstring-
namestring-
remind_trackingbooleanThe following fields are deprecated but we need to keep them for backward compatibility with previous versions of mobile apps
selectedboolean-
updated_atstring-

400​

Invalid request

500​

Internal Server Error

DELETE Delete a calendar integration​

https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id}

Delete a calendar integration.

curl -X DELETE https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id} \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID

Query​

nametyperequireddescription
preserve_entitiesbooleanfalseWhen true, leave linked tasks/TEs/TBs in place. Default false: cascade soft-delete all linked entities.

Response​

204​

No Content

400​

Invalid request

500​

Internal Server Error

PUT Update calendar integration​

https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id}/calendars/{calendar_id}

Update calendar integration.

curl -X PUT https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id}/calendars/{calendar_id} \
-H "Content-Type: application/json" \
-d '\{"auto_track":"boolean","background_color":"string","calendar_id":"integer","calendar_integration_id":"integer","created_at":"string","default_action":"string","default_planned_task_id":"integer","default_project_id":"integer","default_workspace_id":"integer","deleted_at":"string","external_id":"string","focus_auto_track":"boolean","foreground_color":"string","name":"string","remind_tracking":"boolean","selected":"boolean","updated_at":"string"\}' \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID
calendar_idintegertruecalendar ID

Body​

NameTypeDescription
auto_trackboolean-
background_colorstring-
calendar_idinteger-
calendar_integration_idinteger-
created_atstring-
default_actionstring-
default_planned_task_idinteger-
default_project_idinteger-
default_workspace_idinteger-
deleted_atstring-
external_idstring-
focus_auto_trackboolean-
foreground_colorstring-
namestring-
remind_trackingbooleanThe following fields are deprecated but we need to keep them for backward compatibility with previous versions of mobile apps
selectedboolean-
updated_atstring-

Response​

204​

No Content

400​

Invalid request

500​

Internal Server Error

GET Request write scope.​

https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id}/reauth

Increment the user's oauth scope for write capabilities

curl  https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id}/reauth \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID

Query​

nametyperequireddescription
return_tostringtruePage to which the user will be redirected after authenticating

Response​

302​

Redirect to oAuth URL

400​

Invalid request

404​

Integration not found

500​

Internal Server Error

POST Update integration​

https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id}/update

Update integration.

curl -X POST https://focus.toggl.com/api/workspaces/{workspace_id}/integrations/calendar/{integration_id}/update \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID
integration_idintegertrueintegration ID

Response​

200​

List of calendars

NameTypeDescription
itemsArray of object-
items​
NameTypeDescription
auto_trackboolean-
background_colorstring-
calendar_idinteger-
calendar_integration_idinteger-
created_atstring-
default_actionstring-
default_planned_task_idinteger-
default_project_idinteger-
default_workspace_idinteger-
deleted_atstring-
external_idstring-
focus_auto_trackboolean-
foreground_colorstring-
namestring-
remind_trackingbooleanThe following fields are deprecated but we need to keep them for backward compatibility with previous versions of mobile apps
selectedboolean-
updated_atstring-

400​

Invalid request

500​

Internal Server Error

© 2026 Toggl. All rights reserved.