Toggl Integration¶
Based on idk/services/connector_toggl.py.
Quick start¶
from idk.services.connector_toggl import TogglConnector
connector = TogglConnector() # uses settings.TOGGL_API_KEY and workspace
projects = connector.get_projects()
Required settings:
- TOGGL_API_KEY
- TOGGL_WORKSPACE_ID
- TOGGL_API_REQUEST_PERIOD
Core methods¶
- get_projects() -> list[Project]
- get_members() -> list[TeamMember]
- get_project_times(project, start_date, end_date) -> list[dict] (local DB)
- get_project_times_from_toggl(project_toggl_id, start_date, end_date) -> list[TimeEntry]
- get_tags() -> dict[tag_id -> name]
- get_dashboard_data() -> Any (proxy to client)
Time entries¶
- create_time_entry(api_time_entry: dict) -> TimeEntryInstance (normalize+store)
- create_time_entry_on_toggl(data: dict) -> TimeEntryInstance | bool
- delete_time_entry_on_toggl(entry_id: int) -> (json, status)
- get_time_entry_by_id(entry_id: int) -> dict | None | False
- get_time_entries_by_task(task) -> list[TimeEntryInstance] (search by
#task_idin description) - get_toggl_time_entries(..., description=None, task_id=None, grouped=False, page_size=50, ...) -> list[TimeEntry]
Parameters notes:
- Dates are datetimes; reports API uses YYYY-MM-DD
- description filter accepts #<task_id> convention
See idk/services/connector_toggl.py for details and types.