Skip to content

timecamp-org/script-timecamp-projects-sync

Repository files navigation

Sync other systems into TimeCamp

This repository contains scripts to automate projects and tasks synchronization between TimeCamp and other systems:

  • Synchronizing clients, projects and tasks into TimeCamp
  • Exporting time entries from TimeCamp

Installation

  1. Clone this repository:

    git clone https://github.com/timecamp-org/script-timecamp-projects-sync.git
    cd script-timecamp-projects-sync
  2. Install the required dependencies:

    pip install -r requirements.txt
  3. Set up the environment variables:

    • Copy .env.example to .env
    • Fill in required environment variables and TimeCamp API credentials and other configuration in .env

Usage

To set up automatic daily synchronization, you can use a task scheduler like cron (Linux/macOS) or Task Scheduler (Windows).

Harvest ↔ TimeCamp Synchronization

# Sync clients, projects
python3 fetch_harvest.py
python3 sync_projects.py

# Export time entries for a date range
python3 export_time_entries_harvest.py 2026-03-19 2026-03-19

Toggl JSON → TimeCamp Synchronization

# Convert Toggl projects export into tasks.json, then sync it
python3 fetch_toggl_json.py projects.json
python3 sync_projects.py

Redmine ↔ TimeCamp Synchronization

# Sync projects and tasks
python3 fetch_redmine_and_sync.py

# Export time entries for a date range
python3 export_time_entries_redmine.py 2026-03-19 2026-03-19

Multiple Azure DevOps instances ↔ TimeCamp Synchronization

python3 fetch_azuredevops.py
python3 sync_projects.py

Multiple Jira instances ↔ TimeCamp Synchronization

python3 fetch_jira.py
python3 sync_projects.py

Zendesk → TimeCamp Synchronization

# Convert Zendesk organizations and active tickets into tasks.json, then sync it
python3 fetch_zendesk.py
python3 sync_projects.py

Helpers

# Move all root level projects/tasks as a subtask
uv run --env-file .env --with-requirements requirements.txt python helpers/archive.py --subtask-of {task_id} --dry-run

# Assign random colors to root level tasks
python3 helpers/assign_random_apple_colors.py --dry-run
uv run --env-file .env --with-requirements requirements.txt python helpers/assign_random_apple_colors.py --dry-run

# Batch assign users to selected tasks
uv run --env-file .env --with-requirements requirements.txt python helpers/assign_users_to_task.py --task-ids 34523534,34523535 --user-ids 364263,364264

# Batch assign users to all root level tasks
uv run --env-file .env --with-requirements requirements.txt python helpers/assign_users_to_task.py --user-ids 364263,364264

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

About

A Python script to automatically synchronize projects from Redmine to TimeCamp on a daily basis, ensuring up-to-date project data across platforms.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages