Aller au contenu principal

CWClock

logo

Nous proposons une alternative simple et facile à utiliser à Clockify pour le suivi du temps, écrite en Go et en React.

C'est un logiciel OpenSource sous licence MIT que vous pouvez héberger vous-même, le dépôt est disponible sur notre gitlab (ou ici sur github).

Une instance est également disponible ici.

cwclock1

Résumé des fonctionnalités​

Voici les principales fonctionnalités de CWClock :

  • Suivi du temps passĂ© sur les tâches
  • Connexion Ă  votre calendrier Google ou Outlook
  • Gestion des organisations, clients et projets
  • Export au format PDF ou CSV compatible avec le format Clockify
  • API d'export compatible avec Clockify
  • RĂ©import des fichiers CSV exportĂ©s depuis Clockify
  • Impression de factures avec taux journaliers et TVA
  • Envoi des factures par email
  • Synchronisation de vos factures avec Google Drive ou un stockage S3/objet ou encore git
  • Job d'export automatisĂ© pouvant envoyer les exports et/ou factures par email, Google Drive, stockage S3/objet ou dĂ©pĂ´ts git
  • I18N (anglais et français pour le moment)
  • Mode clair/sombre
  • ObservabilitĂ© OpenTelemetry & OpenMetrics (Prometheus)
  • IntĂ©gration OIDC avec Google OIDC, Github et Keycloak
  • Authentification double facteur (TOTP et yubikey)
  • Formulaire de contact
  • CLI adaptĂ©e aux humains comme aux agents IA, avec des modes serveur MCP et agent web

Technologies​

Connexions externes​

Vous pouvez ajouter des connexions externes comme un stockage S3/objet ou des connexions Google Drive ou encore git pour téléverser vos factures :

external-connections-1

Vous pouvez préciser si vous souhaitez que les factures soient téléversées directement à la racine du dossier (pour cela, choisissez l'option "flat directory") ou dans des sous-dossiers MM.{nom du mois}.

external-connections-3

Google Drive​

Pour Google Drive, vous aurez besoin d'un projet avec un compte de service.

Vous pourrez ensuite partager un dossier avec le nom du compte de service et récupérer l'identifiant directement dans l'URL comme ceci :

drive-share

Réimportation des factures​

Vous pouvez réimporter les factures qui ont été générées avant l'association de vos connexions externes, en cliquant sur ce bouton :

reupload-invoices

Calendrier​

Vous pouvez utiliser une vue calendrier pour visualiser ou modifier vos enregistrements de temps :

calendar

Et la synchroniser avec Google Calendar ou Outlook comme ceci :

calendar-share

API​

Vous pouvez trouver la documentation openAPI directement ici : api.cwclock.me

Clés API​

Pour manipuler l'API dans des scripts ou des programmes, vous aurez besoin de clés API.

Voici comment générer des clés API :

api-key-1

Puis copiez et enregistrez la valeur dans un endroit sûr :

api-key-2

Vous pourrez l'utiliser avec l'en-tĂŞte X-Api-Key Ă  la place du JWT avec l'en-tĂŞte classique Authorization dans vos scripts.

API d'export​

Voici un exemple avec curl montrant comment générer l'export entre deux dates

#!/usr/bin/env bash

start_date="2026-06-26"
end_date="2026-06-30"
export_type="summary"
export_format="PDF"

api_url="https://api.cwclock.me"
api_key="changeit"
org_id="changeit"
client_id="changeit"

file_report="report-${start_date}-${end_date}.pdf"

curl -H "content-type: application/json" \
-H "X-Api-Key: $api_key" \
-X POST -d '{"exportType":"'"${export_format}"'", "dateRangeStart":"'"${start_date}"'T00:00:00.000Z","dateRangeEnd":"'"${end_date}"'T23:59:59.000Z", "clients":{"ids": ["'"${client_id}"'"]}, "detailedFilter": {"page": 1,"pageSize": 100}}' "${api_url}/v1/organizations/${org_id}/reports/${export_type}" > "${file_report}"

Notes :

  • Ce endpoint est compatible avec clockify.me
  • Les types d'export autorisĂ©s sont summary ou detailed
  • Les formats d'export autorisĂ©s sont PDF ou CSV
  • Vous pouvez trouver le orga_id ou le client_id en utilisant le bouton copier ici :
orga-id

Et enfin, vous obtiendrez votre rapport :

report

Job d'export​

Vous pouvez envoyer automatiquement les rapports ou les factures par email, vers un dépôt git, un dossier Google Drive ou des buckets S3/stockage objet grâce aux fonctionnalités de job d'export :

export-1

Notes :

  • La planification utilise des [expressions cron] (un assistant avec des raccourcis est disponible)
  • La pĂ©riode utilise la syntaxe now()-{nombre}{d|h|m} (un assistant avec des raccourcis est Ă©galement disponible)

Autres documentations​