{"id":18084856,"url":"https://github.com/jwodder/schedule","last_synced_at":"2025-04-12T20:10:09.411Z","repository":{"id":16574375,"uuid":"19328407","full_name":"jwodder/schedule","owner":"jwodder","description":"Weekly schedule typesetter","archived":false,"fork":false,"pushed_at":"2025-01-23T14:38:30.000Z","size":236,"stargazers_count":7,"open_issues_count":12,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T23:35:38.782Z","etag":null,"topics":["available-on-pypi","pdf","python","schedule","week"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwodder.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","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":"2014-04-30T21:49:22.000Z","updated_at":"2025-01-23T14:38:33.000Z","dependencies_parsed_at":"2025-03-28T23:32:48.984Z","dependency_job_id":"af8e6d81-11a1-480e-8c71-1b99dc17841b","html_url":"https://github.com/jwodder/schedule","commit_stats":{"total_commits":57,"total_committers":2,"mean_commits":28.5,"dds":0.07017543859649122,"last_synced_commit":"bcfff89d4f1750f0206b9e6a055093cc89730757"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fschedule","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fschedule/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fschedule/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fschedule/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwodder","download_url":"https://codeload.github.com/jwodder/schedule/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248347701,"owners_count":21088720,"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":["available-on-pypi","pdf","python","schedule","week"],"created_at":"2024-10-31T15:08:26.715Z","updated_at":"2025-04-12T20:10:09.386Z","avatar_url":"https://github.com/jwodder.png","language":"Python","readme":"|repostatus| |pyversions| |license|\n\n.. |repostatus| image:: https://www.repostatus.org/badges/latest/active.svg\n    :target: https://www.repostatus.org/#active\n    :alt: Project Status: Active — The project has reached a stable, usable\n          state and is being actively developed.\n\n.. |pyversions| image:: https://img.shields.io/pypi/pyversions/pdfschedule.svg\n    :target: https://pypi.org/project/pdfschedule/\n\n.. |license| image:: https://img.shields.io/github/license/jwodder/schedule.svg\n    :target: https://opensource.org/licenses/MIT\n    :alt: MIT License\n\n`GitHub \u003chttps://github.com/jwodder/schedule\u003e`_\n| `PyPI \u003chttps://pypi.org/project/pdfschedule/\u003e`_\n| `Issues \u003chttps://github.com/jwodder/schedule/issues\u003e`_\n| `Changelog \u003chttps://github.com/jwodder/schedule/blob/master/CHANGELOG.md\u003e`_\n\n``pdfschedule`` is a Python 3 script for creating PDF documents showing\none's weekly schedule of events.\n\n\nInstallation\n============\n``pdfschedule`` requires Python 3.8 or higher.  Just use `pip\n\u003chttps://pip.pypa.io\u003e`_ for Python 3 (You have pip, right?) to install\n``pdfschedule`` and its dependencies::\n\n    python3 -m pip install pdfschedule\n\n\nUsage\n=====\n\n::\n\n    pdfschedule [\u003cOPTIONS\u003e] [\u003cinfile\u003e [\u003coutfile\u003e]]\n\nInput — formatted as described below under \"`Input Format`_\" — is read from\n``\u003cinfile\u003e`` (defaulting to standard input), and the resulting PDF is written\nto ``\u003coutfile\u003e`` (defaulting to ``\u003cinfile\u003e`` with its file extension changed to\n``.pdf``, or to standard output if ``\u003cinfile\u003e`` is standard input).\n\n\nOptions\n-------\n\n-C, --color             Color the event boxes various colors instead of just\n                        grey.\n\n-E TIME, --end-time TIME\n                        Specify the time of day at which each day should start.\n                        Times are specified in the format ``HH:MM`` using\n                        24-hour time, the minutes being optional (and\n                        optionally separated from the hour by a colon or\n                        period).  Defaults to half an hour before the earliest\n                        event start time or 00:00, whichever is later.\n\n-F FONT, --font FONT    Typeset text in the given font.  ``FONT`` must be\n                        either the name of a builtin PostScript font or the\n                        path to a ``.ttf`` file.  By default, text is typeset\n                        in Helvetica.\n\n-f SIZE, --font-size SIZE\n                        Set the size of the font used for event information to\n                        ``SIZE`` (default 10).  The names of the days of the\n                        week are typeset at ``SIZE * 1.2``; the times of day\n                        are typeset at ``SIZE / 1.2``.\n\n-M, --start-monday      Use Monday as the first day of the week instead of\n                        Sunday.\n\n-p, --portrait          Typeset the table in \"portrait mode,\" i.e., with the\n                        shorter side of the paper as the width.  The default is\n                        to typeset it in \"landscape mode.\"\n\n-s FACTOR, --scale FACTOR\n                        Divide the length of each side of the table by\n                        ``FACTOR``.  Without this option, the table fills the\n                        whole page, except for a one-inch margin on each side.\n\n-S TIME, --start-time TIME\n                        Specify the time of day at which each day should end.\n                        Times are specified in the format ``HH:MM`` using\n                        24-hour time, the minutes being optional (and\n                        optionally separated from the hour by a colon or\n                        period).  Defaults to half an hour after the latest\n                        event end time or 24:00, whichever is earlier.\n\n-T, --no-times          Do not show the times for each hour line.\n\n--no-weekends           Do not show Sunday and Saturday.\n\n\nInput Format\n============\n\nInput is a `YAML \u003chttp://yaml.org\u003e`_ list of dictionaries.  Each dictionary\nrepresents a single weekly event and must contain the following keys:\n\n``name``\n   *(optional)* The (possibly multiline) text to display in the event's box on\n   the schedule\n\n``days``\n   The days of the week on which the event occurs, specified as a string of one\n   or more of the following abbreviations in any order (optionally with\n   intervening whitespace and/or commas):\n\n   ===================================  =========\n   Abbreviation                         Day\n   ===================================  =========\n   ``Su`` or ``Sun``                    Sunday\n   ``M`` or ``Mo`` or ``Mon``           Monday\n   ``T`` or ``Tu`` or ``Tue``           Tuesday\n   ``W`` or ``We`` or ``Wed``           Wednesday\n   ``H`` or ``R`` or ``Th`` or ``Thu``  Thursday\n   ``F`` or ``Fr`` or ``Fri``           Friday\n   ``Sa`` or ``Sat``                    Saturday\n   ===================================  =========\n\n   Case is significant.  Unknown abbreviations are ignored.\n\n``time``\n   The start \u0026 end times of the event in the format ``HH:MM - HH:MM``.  Times\n   are specified in 24-hour format, the minutes being optional (and optionally\n   separated from the hour by a colon or period).\n\n``color``\n   *(optional)* The background color of the event's box, given as six\n   hexadecimal digits.  The default background color is either grey or, if\n   ``--color`` is in effect, taken from a small palette of basic colors based\n   on the event's index.\n\n\nExample\n=======\n\nThe following input file:\n\n.. code:: yaml\n\n    - name: Garfield impersonation\n      days: M\n      time: 7-9\n      color: \"FFB04E\"\n\n    - name: Work to live\n      days: MTWRF\n      time: 9-17\n\n    - name: |\n        Exercise class\n        (The one on Main Street)\n      days: M, W, F\n      time: 17:00 - 18:00\n      color: \"29FF65\"\n\n    - name: Have they brought back my favorite show yet?\n      days: R\n      time: 19-19.30\n      color: \"FF84DF\"\n\n    - name: Poor decisions\n      days: F\n      time: 22-23.59\n      color: \"000000\"\n\n    - name: Sleep in\n      days: SatSun\n      time: 7-12\n      color: \"4226C4\"\n\nproduces (using the default options) an output file that looks like this:\n\n.. image:: https://github.com/jwodder/schedule/raw/v0.4.1/examples/example01.png\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwodder%2Fschedule","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwodder%2Fschedule","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwodder%2Fschedule/lists"}