{"id":15071056,"url":"https://github.com/daguhh/naivecalendar","last_synced_at":"2025-04-10T18:13:47.153Z","repository":{"id":44729836,"uuid":"329745018","full_name":"Daguhh/naivecalendar","owner":"Daguhh","description":"A rofi calendar popup : simple, configurable and interactive ","archived":false,"fork":false,"pushed_at":"2024-12-01T20:05:39.000Z","size":1193,"stargazers_count":27,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T15:52:27.265Z","etag":null,"topics":["awesome-wm","awesomewm","calendar","calendar-popup","datepicker","i3","i3blocks","i3wm","interactive","polybar","popup","python3","rofi","rofi-scripts","themeable"],"latest_commit_sha":null,"homepage":"http://daguhh.frama.io/naivecalendar","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit-0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Daguhh.png","metadata":{"files":{"readme":"README.rst","changelog":"Changelog","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":"2021-01-14T22:02:24.000Z","updated_at":"2024-12-01T20:05:42.000Z","dependencies_parsed_at":"2024-09-19T11:41:58.296Z","dependency_job_id":"5cb9ad0c-70ca-48f9-a726-04abcdd700ae","html_url":"https://github.com/Daguhh/naivecalendar","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daguhh%2Fnaivecalendar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daguhh%2Fnaivecalendar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daguhh%2Fnaivecalendar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daguhh%2Fnaivecalendar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Daguhh","download_url":"https://codeload.github.com/Daguhh/naivecalendar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248269312,"owners_count":21075779,"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":["awesome-wm","awesomewm","calendar","calendar-popup","datepicker","i3","i3blocks","i3wm","interactive","polybar","popup","python3","rofi","rofi-scripts","themeable"],"created_at":"2024-09-25T02:33:50.901Z","updated_at":"2025-04-10T18:13:47.125Z","avatar_url":"https://github.com/Daguhh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=============\nNaïveCalendar\n=============\n\nA popup calendar with rofi_ and python3_\n\n|readme_fr| |git_badge| |doc sphinx| |deb package|\n\n**naïf, naïve n. adj**.\n\n    `1.` *LITTERAIRE* Qui est naturel, sans artifice, spontané. Art naïf, art populaire, folklorique. —  Un peintre naïf.\n\n    `2.` *COURANT* Qui est plein de confiance et de simplicité par ignorance, par inexpérience. ➙ candide, ingénu, simple. —  Qui exprime des choses simples que tout le monde sait. Remarque naïve. ➙ simpliste.\n\n    -- LeRobert_\n\n|classic dark extended| |classic light extended|\n\n`see all themes \u003chttps://framagit.org/Daguhh/naivecalendar/-/blob/master/docs/themes.rst\u003e`_\n\nFeatures\n--------\n \n* **Interactive** : Cycle through calendar months by months, years by years.\n* **Locale support** : Automatic or force desired one\n* **Events** : Create notes linked to days, create multiple notes types, switch between them, (link to other app?), display your caldav events\n* **Customize** : change themes, content, symbols, shortcuts with text files, switch on the fly\n* **Integrate** : use it in your scripts and make them more interactive: open on a particular date, request a date, copy-to-clipboard. \n\n.. admonition:: Author note\n\n    This script/programm/app/whatever you call it, is a spare time and learning purpose project, nevertheless I hope you will find it useful. I intended this rofi_ diversion to be used with `my polybar/i3 installation \u003chttps://framagit.org/Daguhh/naivecalendar/-/wikis/home\u003e`_. \n    \n    Although it's seems working fine to me, there might be still some (ok, there are) bugs, so feel free to open an issue for any comment or consideration.\n\n.. _contents:\n\n.. contents:: Table of Contents\n    :depth: 1\n\n---------------------------------------------------------------------------------\n\n.. _installation:\n\nDependancies\n------------\n\nRequirements\n^^^^^^^^^^^^\n\n* python3_ (stdlib)\n* rofi_\n\nRecommends\n^^^^^^^^^^\n\n* xclip (copy to clipboard option)\n* sensible-utils (choose editor in update subcommand)\n* python3-caldav (show caldav events in calendar (very light support))\n\nSuggests\n^^^^^^^^\n\n* fontawesome (for icons)\n\nInstall\n-------\n\nManually\n^^^^^^^^\n\nThe naivecalendar use two files:\n\n- **naivecalendar.py** : that print a list-formatted calendar entries to sdtout\n- **naivecalendar.sh** : that run rofi in script mode with the previous file\n\nPlus, a couple of theme files:\n\n- **\u003ctheme\u003e.rasi** : rofi configuration file (shape and colors)\n- **common/\u003celement\u003e.rasi** : rasi theme file dependancies (combine shape, colors position...)  \n- /themes/**\u003ctheme\u003e.cfg** : an ini file that define calendar content\n\nSimply copy those files (src folder content) in the same place (.ie : keep the tree as it is), remove as many theme as you want, but please keep at least *classic_dark_extended* default theme. \n\nHere is the simplest doable installation tree ::\n\n    .\n    ├── naivecalendar.py\n    ├── naivecalendar.sh\n    └── themes\n        ├── classic_dark_extended.cfg\n        ├── classic_dark_extended.rasi\n        └── common\n            ├── position.rasi\n            ├── shape_base.rasi\n            ├── shape_extended.rasi\n            ├── theme_base.rasi\n            └── theme_dark.rasi\n\n\nThen, Launch with:: \n\n    ./naivecalendar.sh \n\nPackage (debian)\n^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n    apt install ./naivecalendar_x.y.z_all.deb\n\nLaunch with:\n\n.. code:: bash\n\n    naivecalendar\n\nMakefile\n^^^^^^^^\n\nEdit **Makefile.config** to customize your installation, then run:\n\n.. code:: bash\n\n    make install\n\nGet more info :\n\n.. code:: bash\n\n    make help\n\nLaunch with:\n\n.. code:: bash\n\n    naivecalendar\n\n---------------------------------------------------------------------------------\n\n.. _usage:\n\nUsage\n-----\n\nBasic\n^^^^^\n\nSimply execute the script, then, Use mouse or keyboard to interact with the calendar:\n\n- Hit arrows to cycle through months or years\n- Hit a day to create a linked event. *(day change color as it has a linked event)*\n- Hit menu button to switch theme, switch event type, show month events\n\nShortcuts\n^^^^^^^^^\n\nShortcuts have to be entered in the rofi command prompt. \nThose are default shortcuts, it can vary along themes and can be modified in \u003ctheme\u003e.cfg files.\n*Sym* is the symbol displayed, you can type either *Sym* or *Keys* to execute an action\n\n====  ======  =======  ========  ========================================\nSym     Keys                     Action\n----  -------------------------  ----------------------------------------\n  ..      ..       ..        ..  ..\n====  ======  =======  ========  ========================================\n ◀◀       \u003c\u003c       pp       --   go to previous year\n  ◀        \u003c        p      `-`   go to previous month\n  ▶        \u003e        n      `+`   go to next month\n ▶▶       \u003e\u003e       nn       ++   go to next year\n      event       ee       ..   display events of the month (first line)\n     switch       ss       ..   switch event type (open another folder)\n       help       hh       ..   display this help\n      theme       tt       ..   display theme selector\n  ☰     menu       mm       ..   display menu \n====  ======  =======  ========  ========================================\n\n\n.. _Events:\n\nEvents\n^^^^^^\n\nEvents are simply files (usally text files) created by the calendar when you interact with a day (click/return key)\nOn interaction, your default editor will open the event file. (see Customize/Events section for formatting advices)\nOn editor closing, calendar will reopen and the day with a linked note will appear colored.\n\nA script in avaible in calendar menu to show event from online calendar - using caldav -, that's a very light support,\nyou can only show events on calendar (day, time, description, location), but you won't be able to sync or push new event to it.\n(see `scripts/caldav2file.py \u003chttps://framagit.org/Daguhh/naivecalendar/-/blob/master/src/scripts/caldav2file.py\u003e`_  file for details)\n\nOptions\n^^^^^^^\n\nSome command line options are avaible and can be useful if you want to integrate the naivecalendar in a script or temporarily override parameters.\nSubcommands **update-themes** could be useful to update all theme config at once instead of doing it manually (use completion).\n\n\n    **usage:** *naivecalendar* [-h] [-V] [-v] [-p] [-x] [-f FORMAT] [-e EDITOR] [-l LOCALE] [-c] [-t THEME] [-d DATE]\n\n    A simple popup calendar\n\n    **subcommands:**\n      | update-themes       Update a calendar parameter for all user themes at once\n      | add-event           Add or delete event\n      | configure           Clone or open configuration files\n\n\n    **optional arguments:**\n      -h, --help            show this help message and exit\n      -V, --version         show program's version number and exit\n      -v, --verbose         direct rofi command errors to stdout\n      -p, --print           print date to stdout instead of opening a event\n      -x, --clipboard       copy date to clipboard\n      -f FORMAT, --format FORMAT\n                            option '-p' or '-x' output format (datetime.strftime format, defaut='%Y-%m-%d')\n      -e EDITOR, --editor EDITOR\n                            editor command to open events\n      -l LOCALE, --locale LOCALE\n                            force system locale, for example '-l es_ES.utf8'\n      -c, --read-cache      force calendar to read old date from cache\n      -t THEME, --theme THEME\n                            set calendar theme, default=classic_dark (theme file name without extention)\n      -d DATE, --date DATE  display calendar at the given month, format='%m-%Y'\n\n\n.. _customize:\n\nCustomize\n---------\n\nTo customize the calendar (without altering installation files), you can start with a copy of them in the user config folder:\n\nManually :\n\n.. code:: bash\n\n    # Themes\n    cp -r /usr/share/naivecalendar/themes/* ~/.config/naivecalendar/themes/\n\n    # Events\n    cp -r /usr/share/naivecalendar/global/events.cfg  ~/.config/naivecalendar/global/events.cfg\n\n    # Scripts\n    cp -r /usr/share/naivecalendar/global/custom_actions.cfg  ~/.config/naivecalendar/global/custom_actions.cfg\n    cp -r /usr/share/naivecalendar/scripts/*  ~/.config/naivecalendar/scripts/\n\nWith subcommand:\n\n.. code:: bash\n\n    naivecalendar configure --clone \u003cconfig file\u003e\n\n\n\n\nThemes\n^^^^^^\n\nA theme consist of two files :\n\n- `theme.cfg`_ : an ini file, configure calendar content\n- `theme.rasi`_ : a rofi theme file, configure apperance (color, size, layout...)\n\n.. warning::\n\n   Number of rows in rofi (*.rasi*) should match content configuration (*.cfg*)! See more details in .cfg files.\n\nSome `themes are avaibles \u003chttps://framagit.org/Daguhh/naivecalendar/-/blob/master/docs/themes.rst\u003e`_, set them by typing *theme* in rofi prompt or temporarily load them with :code:`--theme` argument. To create your own theme, create a `rasi \u003chttps://github.com/davatorium/rofi/blob/next/doc/rofi-theme.5.markdown\u003e`_ file and a cfg file in *~/.config/naivecalendar/themes*. \n\nYou can start from a copy of \"officials\" themes, with :code:`configure` subcommand or manually:\n\n.. code:: bash\n\n    cp -r /usr/share/naivecalendar/themes/* ~/.config/naivecalendar/themes/\n\n.. note::\n\n    If it exist two themes with the same name in differents folders, the one in *$HOME/.config/...* will be prevalent over the others\n\nThen modify themes one by one with your favourite editor or use naivecalendar subcommand to update multiples themes at once (cfg files only)\n\n.. code:: bash\n\n    naivecalendar update-themes -h\n\n.. admonition:: Author\n\n   Proposed themes are more examples than official. I intented this calendar to easily match all user configurations and to be easily configurable.\n   There is no specific tool to update .rasi files, but they (almost all) share some ressources in *themes/common/*, commonly:\n\n   - a color theme : **theme_\u003ccolor_name\u003e.rasi**\n   - a position on the screen : **position.rasi**\n   - a shape (contain number of row) : **shape_\u003ckind\u003e.rasi**\n\n   So you can easily mix them to customize calendar aspect or modify independently colors and shapes.\n\nEvents\n^^^^^^\n\nEvents files names should contain `strftime \u003chttps://strftime.org/\u003e`_  directives (%d, %m ...) to appear in the calendar. \n\n.. code:: ini\n\n    note_%Y-%m-%d.txt\n\nNot giving it a year directive will make it occur every year (usefull for birthday isn't it?)\n\n.. code:: ini\n\n    birthday_on_%d-%m.txt\n\nThe calendar handle multiple events types (that are simply differents folders), you can define new event type by adding an entry in [EVENTS] section in *.config/naivecalendar/global/event.cfg*. Paths are relative to user's home.\n\n.. code:: ini\n\n    [EVENTS]\n\n    Notes = .naivecalendar_events/MyNotes/note_%Y-%m-%d.txt\n    Birthday = .naivecalendar_events/Birthdays/birthday_on_%d-%m.txt\n\nNotes support a very light format to be parsed when displaying \"events of the month\" :\n\n- show section : if you create sections (format : [section]) all lines containing a section will be displayed \n  \n  .. code:: ini\n\n    [9H30 -\u003e 10H] short description \u003c---- will be displayed\n    Long \n    multilines\n    description...\n    [14H30] rdv with bidulle \u003c----- will be displayed\n    Some text again again\n\n- show header : if the event/note don't contain section, only first line will be displayed\n  \n  .. code:: ini\n\n    # Note Title  \u003c---- only first line is displayed\n    Some text\n    Some text again...\n\nif you interact with the event file name, it will open the note again, other rows will bring you back to calendar\n\n.. code:: ini\n\n    notes_2021-01-05 : \u003c---- reopen editor\n    [9H30 -\u003e 10H] short description  \u003c--- do nothing : back to calendar\n    [14H30] rdv with bidulle\n\n\nCustom actions\n^^^^^^^^^^^^^^\n\nUser can also create is own custom action i.e. create a button that launch user's script.\nTo add a custom action please, put your script in *~/.config/naivecalendar/script/*, then,\nedit *~/.config/naivecalendar/global/custom_actions.cfg* to configure the button/shortcut:\n\n  .. code:: ini\n\n    [Shortcut Name] \u003c--- used as id for other conf file\n    SYM = Icon, [shortcut_1, shortcut_2], long description   \u003c--- Icon : displayed on calendar\n    CMD = path/to/script \u003c--- script or system command            long description : displayed in menu \n\n\n.. _files:\n\nFiles\n-----\n\nHere is a brief description of files needed/generated by the naivecalendar\n\n================================   ================================================================\nFunction                           File\n================================   ================================================================\n**Minimal : required**\n---------------------------------------------------------------------------------------------------\nrofi command                       /usr/share/naivecalendar/**naivecalendar.sh**\nscript called by rofi              /usr/share/naivecalendar/**naivecalendar.py**\nrofi theme files                   /usr/share/naivecalendar/**themes/\\*.rasi**\ncalendar content configuration     /usr/share/naivecalendar/**themes/\\*.cfg**\n--------------------------------   ----------------------------------------------------------------\n**Installation \u0026 optional**\n---------------------------------------------------------------------------------------------------\nsystem command                     /usr/bin/**naivecalendar**\ntheme config editor command        /usr/share/naivecalendar/tools/**naivecalendar-update-themes**\ntheme event editor command         /usr/share/naivecalendar/tools/**naivecalendar-add-event**\nmanage config files command        /usr/share/naivecalendar/tools/**naivecalendar-configure**\ncustom actions                     /usr/share/naivecalendar/**global/custom_actions.cfg**\nscripts                            /usr/share/naivecalendar/**scripts/\\*\"**    \nevents conf                        /usr/share/naivecalendar/**global/events.cfg**   \n--------------------------------   ----------------------------------------------------------------\n**User themes : optional** (overide installation conf file)\n---------------------------------------------------------------------------------------------------\nuser theme files                   ~/.config/naivecalendar/**themes/\\*.rasi**\nuser content configuration         ~/.config/naivecalendar/**themes/\\*.cfg**\nuser custom actions                ~/.config/naivecalendar/**global/custom_actions.cfg**\nuser events conf                   ~/.config/naivecalendar/**global/events.cfg**   \nuser scripts                       ~/.config/naivecalendar/**scripts/\\*\"**    \n--------------------------------   ----------------------------------------------------------------\n**Event : editable**\n---------------------------------------------------------------------------------------------------\nday notes path (default)           ~/.naivecalendar_events/\u003cevent type\u003e/**\u003cdate format\u003e.txt**\n--------------------------------   ----------------------------------------------------------------\n**Generated : cache**\n---------------------------------------------------------------------------------------------------\nremember date throught loops       ~/.cache/naivecalendar/**date_cache.ini**\npass date to bash when -p option   ~/.cache/naivecalendar/**pretty_print_cache.txt**\nremember theme after quitting      ~/.cache/naivecalendar/**theme_cache.txt**\nremember event type                ~/.cache/naivecalendar/**event_cache.txt**\nlast rofi command log file         ~/.cache/naivecalendar/**rofi_log.txt**\n================================   ================================================================\n\nBuild\n-----\n\n.. _dev:\n\n.. note::\n\n    You can use the makefile with **make** command to build package and documentation.\n\nBuild debian package\n^^^^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n    sudo apt install devscripts\n    cd naivecalendar-x.y.z/\n    debuild -us -uc\n\n.. note::\n\n   You can personnalize your themes before building, all themes folder content will be included in the package\n\nBuild the doc\n^^^^^^^^^^^^^\n\n.. code:: bash\n\n   cd docs/\n   python3 -m pip install -r requirements.txt\n   make html\n\n.. _start-link:\n\n.. _LeRobert: https://dictionnaire.lerobert.com/definition/naif\n.. _rofi: https://github.com/davatorium/rofi\n.. _python3: https://www.python.org/\n\n.. |git_badge| image:: https://img.shields.io/badge/Source-git-red?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABpFBMVEUAAADwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDP////R9jl6AAAAinRSTlMAAANVzvz5wEICYOrfTGHt4k1d7vBn7wUUAWLCOdM49fFAPzdctQ2B+DYLqXlL91Qk41PkgjDo1QRu8qwd/souDPtRfK7SM2ONdpDQMhmI9lbpB5PeQc2zCSm8pKe/ssPGNUXmThghwVm7SAoWT8Va89HU+ozhdEblt2wg4F8rnmX9Stu5h6jn3MffBpBlAAAAAWJLR0SL8m9H4AAAAAd0SU1FB+QLGg4tBCSsxiIAAAJwSURBVFjDpdTpXxJBGMDxfQjQVVHMEqkszeToULqMNCq7bwLJisouKkoty+47O6znr24ZZnFgd2efnZ2XOL/vx515djXNeUFgXTAUbmsH0JQW6B2daKyuiJoAencPshXtVRHWejVB7FWE5t67ALC+D9GHANC9Af0JgY39ygLEBuLgQwB90+YtoC6w8x/cqizw+1MWGvfPhb5tQyEvgjA/TIgNbx/ZMRomC03zVxPYSCSSKaLQMr+D6fpW2LmL9hSt84+7+U7YM0YRLH1onO+DzF7CXVh6DO1rAPvdb9PaIx4wH+HghOs82PV4KMOB7OFJF8G2R5w6wu/BTXDoMXf0GED8uPFuygWnHnH6hDGNJ0dALjj3DAicOn1GKkj6OjCFQZkg602gLsTOnjt/4WKoVdA7nPsGgMFLUF+Xr+RFIQLa1QISAPY/sAcuzogbSte0WSQBeP0Gn6qbUXFHWZsmArd0DhRHxR15LUUEZswXQ78t7khpd4jAXJEDibvijntae4kGTNznX7gHQ8KGhxUNIlESgHOPDAHg8RPh753VuPFTb5QE5J4+G5hfWHwu9i/itVGUCCKAuPSy7VXe0kuFZqBlmb1MkAFrvURYXnQExN5RmHy9YLw/1TeuvYMQfptlh/zuvWtvL3xI8ENOuve2wkdz/NP97r2NsFwxb+nTZ0JvFXJfTOBrgdJbhW9Zfgbff5B6i9Czwr66kJkl9hbh5/i88TlPl8m9RVj69Tv5Z9VDL383Kb1coPQygdY7C9TeSaD39oKX3k7w1luFgse+Jqx0+enZh6jkpxcFtZ4Jf2v9alWtrwnD5bHwv4ou6/8Djb7EGx2gqrEAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMTEtMjZUMTM6NDU6MDQrMDE6MDADclLHAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTExLTI2VDEzOjQ1OjA0KzAxOjAwci/qewAAAABJRU5ErkJggg==\u0026style=flat-square\n    :target: https://framagit.org/Daguhh/naivecalendar\n\n.. |readme_fr| image:: https://img.shields.io/badge/Readme-fr-blue?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAgBAMAAACm+uYvAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAG1BMVEUAHpYAHJUfOqPf4/L////85ObwP0/tIjTuJDb4vwGgAAAAAWJLR0QEj2jZUQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB+QMCxQNM0KhjcMAAAAbSURBVCjPY2CAACETFzBwTe+AAIZRiVGJUQkAzmzIQZyPCzQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMTItMTFUMjA6MTI6NTIrMDA6MDDP69WKAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTEyLTExVDIwOjEyOjUyKzAwOjAwvrZtNgAAAABJRU5ErkJggg==\u0026style=flat-square\n   :target: https://framagit.org/Daguhh/naivecalendar/-/blob/master/README_fr.rst\n\n.. |classic dark extended| image:: https://framagit.org/Daguhh/naivecalendar/-/raw/master/docs/screenshots/classic_dark_extended.png\n    :height: 200 px\n\n.. |classic light extended| image:: https://framagit.org/Daguhh/naivecalendar/-/raw/master/docs/screenshots/classic_light_extended.png\n    :height: 200 px\n\n.. |doc sphinx| image:: https://framagit.org/Daguhh/naivecalendar/badges/master/pipeline.svg?key_text=Sphinx+doc\u0026key_width=70\n    :target: http://daguhh.frama.io/naivecalendar\n\n.. |deb package| image:: https://img.shields.io/badge/deb\\ package-2.0.1-blue?logo=data:image/png;base64,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\u0026style=flat-square\n    :target: https://acloud.zaclys.com/index.php/s/PBQoqRkMSdAw6Hr/download/naivecalendar_2.0.1_all.deb\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaguhh%2Fnaivecalendar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaguhh%2Fnaivecalendar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaguhh%2Fnaivecalendar/lists"}