{"id":19914185,"url":"https://github.com/ichernyshovvv/org-timeblock","last_synced_at":"2025-05-16T10:07:02.633Z","repository":{"id":184434084,"uuid":"671871600","full_name":"ichernyshovvv/org-timeblock","owner":"ichernyshovvv","description":"Schedule your day visually, using timeblocking technique inside Emacs","archived":false,"fork":false,"pushed_at":"2024-10-27T08:05:37.000Z","size":543,"stargazers_count":324,"open_issues_count":29,"forks_count":22,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-19T13:41:32.952Z","etag":null,"topics":["calendar","emacs","orgmode","timeblocking"],"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/ichernyshovvv.png","metadata":{"files":{"readme":"README.org","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-28T10:33:45.000Z","updated_at":"2025-04-16T03:39:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"4b525be7-2fbd-429e-9f44-729e74b6a0f3","html_url":"https://github.com/ichernyshovvv/org-timeblock","commit_stats":null,"previous_names":["ichernyshovvv/org-timeblock"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichernyshovvv%2Forg-timeblock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichernyshovvv%2Forg-timeblock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichernyshovvv%2Forg-timeblock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichernyshovvv%2Forg-timeblock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ichernyshovvv","download_url":"https://codeload.github.com/ichernyshovvv/org-timeblock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254509476,"owners_count":22082891,"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":["calendar","emacs","orgmode","timeblocking"],"created_at":"2024-11-12T21:35:29.649Z","updated_at":"2025-05-16T10:07:00.554Z","avatar_url":"https://github.com/ichernyshovvv.png","language":"Emacs Lisp","funding_links":["https://liberapay.com/ichernyshovvv"],"categories":["Task \u0026 Agenda Management"],"sub_categories":[],"readme":"#+html: \u003cdiv align=center\u003e\u003cimg src='img/logo.svg'\u003e\n#+html: \u003ch2 align=center\u003eorg-timeblock\u003c/h2\u003e\n#+html: \u003cp\u003eEmacs package that provides interactive multiple-day timeblock\n#+html: view for orgmode tasks.\u003c/p\u003e\u003c/div\u003e\n\n* Contents\n\n- [[#screenshots][Screenshots]]\n- [[#screencast][Screencast]]\n- [[#why][Why I wrote this package]]\n- [[#installation][Installation]]\n- [[#usage][Usage]]\n- [[#customization][Customization]]\n- [[#todos][TODOs]]\n- [[#donations][Donations]]\n- [[#changelog][Changelog]]\n\n* Screenshots\n:PROPERTIES:\n:CUSTOM_ID: screenshots\n:END:\n\norg-timeblock-mode buffer:\n\n[[file:screenshots/org-timeblock-mode.png]]\n\nYou can press ~[T]~ to toggle the display of org-timeblock-list-mode\nbuffer.  Foreground colors for timeblocks are generated randomly, but\nyou can assign specific background and foreground colors in\ncustomizable variable ~org-timeblock-tag-colors~: \n\n[[file:screenshots/org-timeblock-with-list-mode.png]]\n\nYou can switch to a multi-day view using ~org-timeblock-change-span [V]~:\n\n[[file:screenshots/multi-day-view.png]]\n\n* Screencast\n:PROPERTIES:\n:CUSTOM_ID: screencast\n:END:\n\n[[https://youtu.be/lVV9gVp5nxU]]\n\n* Why\n:PROPERTIES:\n:CUSTOM_ID: why\n:END:\n\nThe builtin orgmode package for collecting and displaying open\ntasks/events/deadlines relevant for a particular set of dates, org-agenda, does\nnot have a timeblock representation which is available in almost all modern\ncalendars.\n\nSometimes, a list representation (like in org-agenda) is not sufficient, because\nit can be difficult to quickly get an overview of a day or week schedule.\n\n* Installation\n:PROPERTIES:\n:CUSTOM_ID: installation\n:END:\n\nRequirements:\n\n- Emacs 28.1 (or higher)\n- SVG support in your Emacs build\n\n** MELPA\n\nYou can install the package from MELPA using ~M-x package-install org-timeblock~\n\n** package-vc-install (Emacs 29)\n\nIf you use Emacs 29, you can install the package via\n\n~M-x package-vc-install RET https://github.com/ichernyshovvv/org-timeblock/ RET~\n\n** Guix\n\nIf you use Guix, you can install the package from the official Guix channel.\n\n** Quelpa\n\n1. Install ~quelpa-use-package~ (which can be installed directly from MELPA).\n2. Add this form to your init file:\n\n#+begin_src elisp\n(use-package org-timeblock\n  :quelpa (org-timeblock :fetcher github :repo \"ichernyshovvv/org-timeblock\"))\n#+end_src\n\n** Straight\n\nAdd this form to your init file:\n\n#+begin_src elisp\n(use-package org-timeblock\n  :straight (org-timeblock :type git\n              :host github\n              :repo \"ichernyshovvv/org-timeblock\"))\n#+end_src\n\n* Usage\n:PROPERTIES:\n:CUSTOM_ID: usage\n:END:\n\nThere are two major modes provided by the package:\n\n- ~org-timeblock-mode~.  Displays timeblock view of ~SCHEDULED/DEADLINE~ org\n  tasks or events (entries that have active timestamps in the body or heading)\n  for specific days.\n- ~org-timeblock-list-mode~.  Displays a list of tasks (including those that are\n  not time-specific).\n\nRun ~M-x org-timeblock~ to open 3-day view that starts from today's date.  The\ndefault days span can be customized via ~org-timeblock-span~ variable.  In the\nview you will see only entries that have time specified in their timestamps.  To\nsee other found tasks/events (entries that have timestamps without time), press\n~T~ (M-x org-timeblock-toggle-timeblock-list).\n\nTasks and events are searched in ~org-timeblock-files~ which defaults to\n~(org-agenda-files)~.\n\nTo navigate between the blocks, use ~[fbpn]~, arrow keys or mouse (yes, the\nblocks are clickable).\n\nTo open other dates, you can run the following the following commands:\n\n- org-timeblock-day-later ~[C-\u003cright\u003e / C-f]~\n- org-timeblock-day-earlier ~[C-\u003cleft\u003e / C-b]~\n- org-timeblock-jump-to-day ~j~\n- org-timeblock-change-span ~V~\n\nTo reschedule or change the duration of the task bound to the selected block,\nuse these commands:\n\n- org-timeblock-schedule ~s~\n- org-timeblock-set-duration ~d~\n\nAlso, you can mark the blocks and operate on them via ~M-x org-timeblock-schedule [s]~:\n- org-timeblock-mark-block ~m~\n- org-timeblock-mark-by-regexp ~%~\n- org-timeblock-unmark-block ~u~\n- org-timeblock-unmark-all-blocks ~U~\n\nIf you want to add a new task, press ~+~ (M-x org-timeblock-new-task).\n\nAlmost all commands with the same bindings are available in\n~org-timeblock-list~.\n\n* Customization\n:PROPERTIES:\n:CUSTOM_ID: customization\n:END:\n\n~M-x customize-group org-timeblock~ to see available customizable variables.\n\n* TODOs\n:PROPERTIES:\n:CUSTOM_ID: todos\n:END:\n- [ ] Implement caching mechanism for SVG data\n- [ ] Improve timeblocks layout algorithm\n- [ ] Split each column into a separate SVG image to improve the speed of\n  ~*org-timeblock*~ buffer redisplay\n- [ ] Create timeblock.el library that could be used for iCalendar and other\n  time data\n\n* Donations\n:PROPERTIES:\n:CUSTOM_ID: donations\n:END:\n#+html: \u003cdiv align=center\u003e\n#+html: \u003cimg src=img/monero-logo.png\u003e\n~444GDw7rkd3Mj5hi6ZzEXZ4QN565TFw4J5ithFcywsMnJn7dFsxWTEQ4vtSMQC1sckFBu7neS8yZZRLnY8EYpS4UNMEAvpL~\n#+html: \u003cimg src=img/monero-qr-address.png\u003e\u003cbr\u003e\u003chr\u003e\n#+html: \u003cimg src='https://magit.vc/assets/donate/liberapay-50px.png'\u003e\u003cbr\u003e\n#+html: \u003ca href=\"https://liberapay.com/ichernyshovvv\"\u003eliberapay.com/ichernyshovvv\u003c/a\u003e\n#+html: \u003c/div\u003e\n\n* Changelog\n:PROPERTIES:\n:CUSTOM_ID: changelog\n:END:\n\n** 0.1\nFirst tagged release.\n** 0.2\n- Added mark commands (~mark-block~, ~unmark-block~, ~mark-by-regexp~) for\n  timeblocks that can be used to reschedule multiple tasks at once\n- Replaced ts.el with built-in time API\n- Replaced org-ql with own searching and caching functions\n- dom.el is now used instead of regexps to fetch and change SVG data (much\n  cleaner code)\n- Deadline timestamps are now treated as it should be, not as events\n- Now, each active timestamp in a heading body is displayed (as event), not only\n  the first one\n- Added custom variable org-timeblock-files\n- Other minor bug fixes and improvements 8)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichernyshovvv%2Forg-timeblock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fichernyshovvv%2Forg-timeblock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichernyshovvv%2Forg-timeblock/lists"}