{"id":13814087,"url":"https://github.com/llazzaro/django-scheduler","last_synced_at":"2025-05-14T11:10:14.932Z","repository":{"id":7970285,"uuid":"9370804","full_name":"llazzaro/django-scheduler","owner":"llazzaro","description":"A calendaring app for Django.","archived":false,"fork":false,"pushed_at":"2024-04-11T15:41:36.000Z","size":2539,"stargazers_count":1320,"open_issues_count":109,"forks_count":401,"subscribers_count":65,"default_branch":"develop","last_synced_at":"2025-05-13T10:17:51.481Z","etag":null,"topics":["calendaring","event-calendar"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"jsemu3/gba","license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/llazzaro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-04-11T13:24:19.000Z","updated_at":"2025-04-22T11:27:28.000Z","dependencies_parsed_at":"2024-06-18T16:57:06.277Z","dependency_job_id":null,"html_url":"https://github.com/llazzaro/django-scheduler","commit_stats":{"total_commits":959,"total_committers":92,"mean_commits":"10.423913043478262","dds":0.848800834202294,"last_synced_commit":"8aa6f877f17e5b05f17d7c39e93d8e73625b0a65"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llazzaro%2Fdjango-scheduler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llazzaro%2Fdjango-scheduler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llazzaro%2Fdjango-scheduler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llazzaro%2Fdjango-scheduler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/llazzaro","download_url":"https://codeload.github.com/llazzaro/django-scheduler/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254129489,"owners_count":22019628,"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":["calendaring","event-calendar"],"created_at":"2024-08-04T04:01:42.621Z","updated_at":"2025-05-14T11:10:14.884Z","avatar_url":"https://github.com/llazzaro.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"Django Scheduler\n========\n\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/llazzaro/django-scheduler)\n[\u003cimg src=\"https://img.shields.io/coveralls/llazzaro/django-scheduler.svg\"\u003e](https://coveralls.io/r/llazzaro/django-scheduler)\n[\u003cimg src=\"https://img.shields.io/pypi/v/django-scheduler.svg\"\u003e](https://pypi.python.org/pypi/django-scheduler)\n[![Documentation Status](https://readthedocs.org/projects/django-scheduler/badge/)](https://django-scheduler.readthedocs.io/)\n\n\nA calendar app for Django\n\nInformation\n========\n\n* [Documentation](https://django-scheduler.readthedocs.io/)\n* [Wiki](https://github.com/llazzaro/django-scheduler/wiki)\n* [Sample Project](https://github.com/llazzaro/django-scheduler-sample)\n\n\nInstallation\n========\n\n```bash\npip install django-scheduler\n```\n\nEdit your `settings.py`\n\nAdd to `INSTALLED_APPS`:\n\n```python\n'schedule',\n```\n\nAdd to `TEMPLATE_CONTEXT_PROCESSORS`:\n\n```python\n\"django.template.context_processors.request\"\n```\n\nStatic assets\n=============\n\nDjango Scheduler relies on [jQuery](https://jquery.com/) and\n[Bootstrap](https://getbootstrap.com/) to provide its user\ninterface. If you don't need help with adding these to your Django\nproject, you can skip the next step where we will show you how to add\nthem to your Django project.\n\n```bash\nnpm install -g bower\npip install django-bower\n```\n\nedit your `settings.py`\n\nadd to `INSTALLED_APPS`:\n\n```python\n'djangobower',\n```\n\nAdd staticfinder to `STATICFILES_FINDERS`:\n\n```\n'djangobower.finders.BowerFinder',\n```\n\nSpecify the path to the components root (you need to use an absolute\npath):\n\n```\nBOWER_COMPONENTS_ROOT = '/PROJECT_ROOT/components/'\n```\n\nAdd the following Bower dependencies for scheduler:\n\n```\nBOWER_INSTALLED_APPS = (\n    'jquery',\n    'jquery-ui',\n    'bootstrap'\n)\n```\n\nLast step, install bower dependencies with:\n\n```\n./manage.py bower install\n```\n\nRemember to execute \"python manage.py collectstatic\"\n\nFeatures\n========\n\n * one-time and recurring events\n * calendar exceptions (occurrences changed or cancelled)\n * occurrences accessible through Event API and Period API\n * relations of events to generic objects\n * ready to use, nice user interface\n * view day, week, month, three months and year\n\nConfiguration\n========\n\nFull Calendar examples\n======\n\n![Full calendar](https://raw.githubusercontent.com/llazzaro/django-scheduler-sample/master/scheduler.png)\n\n![Monthly view (static)](https://raw.githubusercontent.com/llazzaro/django-scheduler-sample/master/monthly_view.png)\n\n![Daily view (static)](https://raw.githubusercontent.com/llazzaro/django-scheduler-sample/master/daily.png)\n\nMetrics\n========\n[![Throughput Graph](https://graphs.waffle.io/llazzaro/django-scheduler/throughput.svg)](https://waffle.io/llazzaro/django-scheduler/metrics)\n\nOptional Settings\n========\n\n### FIRST_DAY_OF_WEEK\n\nThis setting determines which day of the week your calendar begins on if your locale doesn't already set it. Default is 0, which is Sunday.\n\n### OCCURRENCE_CANCEL_REDIRECT\n\nThis setting controls the behavior of `Views.get_next_url`. If set, all calendar modifications will redirect here (unless there is a `next` set in the request.)\n\n### SHOW_CANCELLED_OCCURRENCES\n\nThis setting controls the behavior of `Period.classify_occurrence`. If True, then occurrences that have been cancelled will be displayed with a css class of canceled, otherwise they won't appear at all.\n\nDefaults to False\n\n### CHECK_EVENT_PERM_FUNC\n\nThis setting controls the callable used to determine if a user has permission to edit an event or occurrence. The callable must take the object (event) and the user and return a boolean.\n\nDefault:\n```python\n    check_edit_permission(ob, user):\n        return user.is_authenticated\n```\n\nIf ob is None, then the function is checking for permission to add new events\n\n### CHECK_CALENDAR_PERM_FUNC\n\nThis setting controls the callable used to determine if a user has permission to add, update or delete an events in specific calendar. The callable must take the object (calendar) and the user and return a boolean.\n\nDefault:\n```python\n    check_edit_permission(ob, user):\n        return user.is_authenticated\n```\n\n### GET_EVENTS_FUNC\n\nThis setting controls the callable that gets all events for calendar display. The callable must take the request and the calendar and return a `QuerySet` of events. Modifying this setting allows you to pull events from multiple calendars or to filter events based on permissions\n\nDefault:\n```python\n    get_events(request, calendar):\n        return calendar.event_set.all()\n```\n\n### SCHEDULER_PREVNEXT_LIMIT_SECONDS\n\nThis settings allows to set the upper and lower limit in calendars navigation.\nValue is in seconds.\n\nDefault (two years):\n62208000\n\n\nContributing\n============\n\n## Tests\n\nTo run tests on all supported versions of Django and Python, use `tox`:\n\n```\n$ tox\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllazzaro%2Fdjango-scheduler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllazzaro%2Fdjango-scheduler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllazzaro%2Fdjango-scheduler/lists"}