{"id":13680269,"url":"https://github.com/atheriel/org-clock-csv","last_synced_at":"2025-12-30T01:01:19.670Z","repository":{"id":47008162,"uuid":"66516787","full_name":"atheriel/org-clock-csv","owner":"atheriel","description":"Export Emacs org-mode clock entries to CSV format.","archived":false,"fork":false,"pushed_at":"2021-09-17T14:40:00.000Z","size":54,"stargazers_count":91,"open_issues_count":12,"forks_count":18,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-11T23:37:20.642Z","etag":null,"topics":["csv","emacs","orgmode","time-estimation"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atheriel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-25T02:25:20.000Z","updated_at":"2024-06-10T15:19:46.000Z","dependencies_parsed_at":"2022-09-17T14:03:35.625Z","dependency_job_id":null,"html_url":"https://github.com/atheriel/org-clock-csv","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atheriel%2Forg-clock-csv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atheriel%2Forg-clock-csv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atheriel%2Forg-clock-csv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atheriel%2Forg-clock-csv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atheriel","download_url":"https://codeload.github.com/atheriel/org-clock-csv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251599832,"owners_count":21615586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csv","emacs","orgmode","time-estimation"],"created_at":"2024-08-02T13:01:15.010Z","updated_at":"2025-12-30T01:01:19.529Z","avatar_url":"https://github.com/atheriel.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"# Export Clock Entries from org-mode to CSV\n\n`org-clock-csv` is an Emacs package that extracts clock entries from org files\nand convert them into CSV format. It is intended to facilitate clocked time\nanalysis in external programs.\n\nYou can also\n[read the original blog post](http://unconj.ca/blog/exporting-clock-entries-from-org-mode-to-csv.html).\n\n## Installation [![MELPA](http://melpa.org/packages/org-clock-csv-badge.svg)](http://melpa.org/#/org-clock-csv)\n\n`org-clock-csv` is available from [MELPA](http://melpa.org/#/org-clock-csv). You\ncan also install it manually by cloning the repository and adding the file to\nyour `load-path`.\n\n## Usage in Interactive Mode\n\nIn interactive mode, calling `org-clock-csv` will open a buffer with the parsed\nentries from the files in `org-agenda-files`, while `org-clock-csv-to-file` will\nwrite this output to a file. Both functions take a prefix argument to read\nentries from the current buffer instead.\n\nBoth functions can also be called from lisp code to specify an explicit file\nlist argument.\n\n## Usage in Batch Mode\n\n### Vanilla Emacs\n\nThere is an `org-clock-csv-batch-and-exit` command that is designed for use in\nbatch mode (essentially, scripting Emacs), which will write CSV content to\nstandard output (and then exit). Calling this function is similar to running\ntests with `ert`:\n\n    $ emacs -batch -l path/to/org-clock-csv.el \\\n        -f org-clock-csv-batch-and-exit \\\n        \"~/org/todo.org\" \\\n        \u003e clock-entries.csv\n\nThe command accepts a file list as a series of command line arguments (there is\nonly one in the example, but more can be given), or uses the content of\n`org-agenda-files` if there are none. You may also want to pipe the output to a\nfile, as in the example.\n\nSince Emacs is running in batch mode, it will not load your `init.el` file. This\nhas two consequences: (1) any `setq` or `customize` code you have written for\n`org` or for this package will not be loaded; and (2) Emacs has not been told\nwhere your third-party packages are located. So this invokation will likely give\nyou the following error:\n\n    Cannot open load file: No such file or directory, s\n\nSince the third-party `s` library is needed to run `org-clock-csv-batch`. You\ncan resolve this issue in a few ways. If you don't mind using the default\nsettings of `org` and this package, the easiest is simply to let `package.el`\n(which you are probably using already) handle your third-party packages, as\nfollows:\n\n    $ emacs -batch -l package --eval \"(package-initialize)\" \\\n        -l org-clock-csv -f org-clock-csv-batch-and-exit \\\n        \"~/org/todo.org\" \\\n        \u003e clock-entries.csv\n\nAlternatively, you can just load your entire `init.el` file, which will make all\nof your usual customizations to `org` and this package:\n\n    $ emacs -batch -l \"~/.emacs.d/init.el\" \\\n        -l org-clock-csv -f org-clock-csv-batch-and-exit \\\n        \"~/org/todo.org\" \\\n        \u003e clock-entries.csv\n\n(Beware that this method may write messages other than the CSV output to your\nfile.)\n\nFinally, you can simply write a little \"shim\" script, really a very slimmed-down\nversion of your `init.el` file, that runs all of your `setq` code for `org` and\nthis package and also sets up the `load-path` (using `package.el` or an\nequivalent) so that Emacs can find `s` and `org-clock-csv`, and call it as\nfollows:\n\n    $ emacs -batch -l path/to/my-shim.el \\\n        -l org-clock-csv -f org-clock-csv-batch-and-exit \\\n        \"~/org/todo.org\" \\\n        \u003e clock-entries.csv\n\n### Cask\n\nIf you are using [Cask](https://github.com/cask/cask) you can clone\nthe repository and run `cask install` to install all the dependencies.\nTo execute the `org-clock-csv-batch-and-exit` you can then simply run:\n\n    cask exec org-clock-csv \u003cfile\u003e [files...]\n\n## Contributing\n\nContributions are welcome in the form of pull requests, although the scope of\nthis package is intended to be small. If you have an org file that fails to\nparse as expected, feel free to open an issue.\n\nAll code is available under the GPLv3, the same license as Emacs itself. See the\n`LICENSE` file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatheriel%2Forg-clock-csv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatheriel%2Forg-clock-csv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatheriel%2Forg-clock-csv/lists"}