A calendaring app for Django. It is now stable, Please feel free to use it now. Active development has been taken over by bartekgorny.

Related tags

django-schedule
Overview

Django-schedule

A calendaring/scheduling application, featuring:

  • one-time and recurring events
  • calendar exceptions (occurrences changed or cancelled)
  • occurrences accessible through Event API and Period API
  • relations of events to generic objects
  • ready to use, nice user interface
  • view day, week, month, three months and year
  • project sample which can be launched immediately and reused in your project

See see wiki page for more.

Installation

Download the code; put in into your project’s directory or run

python setup.py install
to install system-wide.

REQUIREMENTS: python-vobject (comes with most distribution as a package).

Settings.py

REQUIRED

INSTALLED_APPS – add:
‘schedule’

TEMPLATE_CONTEXT_PROCESSORS – add:
“django.core.context_processors.request”

Optional

FIRST_DAY_OF_WEEK

This 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.

OCCURRENCE_CANCEL_REDIRECT

This setting controls the behavior of :func:`Views.get_next_url`. If set, all calendar modifications will redirect here (unless there is a `next` set in the request.)

SHOW_CANCELLED_OCCURRENCES

This setting controls the behavior of :func:`Period.classify_occurence`. If True, then occurences that have been cancelled will be displayed with a css class of canceled, otherwise they won’t appear at all.

Defaults to False

CHECK_PERMISSION_FUNC

This setting controls the callable used to determine if a user has permission to edit an event or occurance. The callable must take the object and the user and return a boolean.

Default:


check_edit_permission(ob, user):
return user.is_authenticated()

If ob is None, then the function is checking for permission to add new events

GET_EVENTS_FUNC

This 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

Default:


get_events(request, calendar):
return calendar.event_set.all()

Issues
  • Best route for drag and drop changes

    Best route for drag and drop changes

    I'm wanting to add drag and drop modifications to events. Can anyone point me in the right direction for getting started on this?

    TIA

    opened by cornbread 12
  • Support mulitple event days shown in template

    Support mulitple event days shown in template

    If an event is created that spans multiple days, then in the monthly template view, it should show it across the days. With the current release it cuts off and creates two events on each day, which gives the impression that it is separate events and not a continuous spanning event.

    It would be good to have a fix on this, as you expect this type of functionality to be standard.

    opened by campbelldgunn 6
  • Performance of Reoccuring Events.

    Performance of Reoccuring Events.

    On an unmodified system, adding 4-5 new weekly reoccurring events then viewing the calendar view spikes CPU usage massively and takes several seconds to render the page. I think a more clean implementation of this could be based on persistence or utilizing the cache.

    It is also possible that I am doing something else to cause this performance problem, do other people find that reoccurring events scale fine?

    opened by kkubasik 4
  • schedule.conf not installed

    schedule.conf not installed

    'schedule.conf' is missing from packages in setup.py. That results in a non-complete install.

    opened by sealibora 4
  • occurrences_after() broken

    occurrences_after() broken

    I've noticed that occurences_after() is broken when there are no items in the calendar that are recurring events. I get the following error: AttributeError: 'tuple' object has no attribute 'event' (I had previously supplied a patch I thought fixed this, but it doesn't actually work. The use of all of these generators is making my head spin)

    Also, if you use occurrences_after() with recurring events, the generator happily creates occurrences for dates well beyond the end-date. I am also trying to track this issue down, but have been unsuccessful so far.

    yearns for the get_upcoming_events method

    opened by ptoal 3
  • Discussion: Tables vs. Div's for daily view

    Discussion: Tables vs. Div's for daily view

    I'm curious why div's are now being used for the daily calendar display, instead of tables. There's a lot of style hacking going on, with absolute positioning, div sizes, etc., which makes it very difficult to customize the look of the calendars.

    For my site, I will be modifying the templates and view code to display tables, and was wondering if there was a strong reason for not doing this in the master app.

    Thanks, Pat

    opened by ptoal 3
  • Smaller resolution ruins weekly css

    Smaller resolution ruins weekly css

    Weekly columns float on top of each other when window is shrunk or with smaller screen resolutions.

    opened by cornbread 3
  • Templates redundancy

    Templates redundancy

    After Wes' Pinax-related restructuring we have the same templates in two places - in /schedule/templates/schedule/ and /project_sample/templates/schedule/. Can we clean it up, or is there a reason to keep it like that?

    opened by bartekgorny 3
  • ImportError: No module named _thread

    ImportError: No module named _thread

    I get the following traceback when I try to run django-admin.py syncdb for the first time. I'm using the project_sample provided.

    $ django-admin.py runserver 
    Validating models...
    
    Unhandled exception in thread started by <bound method Command.inner_run of <django.core.management.commands.runserver.Command object at 0x10d798550>>
    Traceback (most recent call last):
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 88, in inner_run
        self.validate(display_num_errors=True)
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/django/core/management/base.py", line 249, in validate
        num_errors = get_validation_errors(s, app)
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/django/core/management/validation.py", line 35, in get_validation_errors
        for (app_name, error) in get_app_errors().items():
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/django/db/models/loading.py", line 146, in get_app_errors
        self._populate()
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/django/db/models/loading.py", line 64, in _populate
        self.load_app(app_name)
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/django/db/models/loading.py", line 78, in load_app
        models = import_module('.models', app_name)
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
        __import__(name)
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/schedule/models/__init__.py", line 1, in <module>
        from schedule.models.calendars import *
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/schedule/models/calendars.py", line 11, in <module>
        from dateutil import rrule
      File "/Users/oconnor/.virtualenvs/django-schedule/lib/python2.7/site-packages/dateutil/rrule.py", line 13, in <module>
        import _thread
    ImportError: No module named _thread
    

    I have the following packages installed in a virtualenv:

    $ pip freeze
    BeautifulSoup==3.2.0
    Django==1.3.1
    django-appconf==0.4.1
    django-compressor==1.1
    django-debug-toolbar==0.8.5
    django-grappelli==2.3.5
    django-schedule==0.5b
    docutils==0.8.1
    ipdb==0.6.1
    ipython==0.11
    pep8==0.6.1
    pyflakes==0.5.0
    python-dateutil==2.0
    vobject==0.8.1c
    wsgiref==0.1.2
    

    I'm using Python 2.7.1 on my MBP which has 10.7.2 installed.

    opened by epicserve 2
  • install issue: no such table: schedule_calendar

    install issue: no such table: schedule_calendar

    running Python 2.6, Django 1.1 ran setup.py install, installed dateutil Got the django-schedule welcome screen but when click on link 'The list of available Calendars' I get error :

    TemplateSyntaxError at /schedule/ Caught an exception while rendering: no such table: schedule_calendarRequest Method: GET Request URL: http://127.0.0.1:8000/schedule/ Exception Type: TemplateSyntaxError Exception Value: Caught an exception while rendering: no such table: schedule_calendar Exception Location: C:\Python26\lib\site-packages\django\template\debug.py in render_node, line 81 Python Executable: C:\Python26\python.exe Python Version: 2.6.4 Python Path: ['c:\dateapp\apps\django-schedule\project_sample', 'C:\Python26\lib\site-packages\html5lib-0.90-py2.6.egg', 'C:\Python26\lib\site-packages\django_page_cms-1.1.1-py2.6.egg', 'C:\Python26\lib\site-packages\django_cms-2.0.2-py2.6.egg', 'C:\Python26\lib\site-packages\django_admin_tools-0.2.0-py2.6.egg', 'C:\Python26\lib\site-packages\django_friends-0.1.5-py2.6.egg', 'C:\Python26\lib\site-packages\django_schedule-0.1.0-py2.6.egg', 'C:\Python26\lib\site-packages\python_dateutil-1.5-py2.6.egg', 'C:\Windows\system32\python26.zip', 'C:\Python26\DLLs', 'C:\Python26\lib', 'C:\Python26\lib\plat-win', 'C:\Python26\lib\lib-tk', 'C:\Python26', 'C:\Python26\lib\site-packages', 'C:\Python26\lib\site-packages\PIL', 'c:\python26\lib\site-packages'] Server time: Fri, 23 Apr 2010 13:10:28 +0100

    opened by justinjools 2
  • wiki page link 404

    wiki page link 404

    your link in the README.md file to your wiki page is non-existent/broken...

    opened by nerdoc 0
  • Fix simple typo: weekedays -> weekdays

    Fix simple typo: weekedays -> weekdays

    Closes #64

    opened by timgates42 0
  • Fix simple typo: weekedays -> weekdays

    Fix simple typo: weekedays -> weekdays

    There is a small typo in schedule/views.py. Should read weekdays rather than weekedays.

    opened by timgates42 0
  • Please provide requirements.txt

    Please provide requirements.txt

    Please add requirements.txt and any other possible instructions needed to launch sample_project. Thank you in advance.

    opened by Sashkow 0
  • NoArgsCommand is deprecated, use BaseCommand instead.

    NoArgsCommand is deprecated, use BaseCommand instead.

    The load_sample_data and load_example_data can't run on Django 1.10 because the NoArgsCommand was deprecated. Using BaseCommand and using the new handle function will fix it.

    opened by luisehk 0
  • How would we go about creating oncall rotating schedule using this?

    How would we go about creating oncall rotating schedule using this?

    I would like to create oncall rotating schedule using this by adding some new functionality in the tool so that it would be possible to create oncall rotating schedule for team members in on page rather than have to create multiple events using the new event form. Could you help me with some pointers on how would I be able to achieve that?

    opened by sushovan23 0
  • django 1.8

    django 1.8

    This app does not work with django 1.8 , too many depreciated issues

    opened by rizplate 0
  • `ImportError: cannot import name execute_manager`

    `ImportError: cannot import name execute_manager`

    When attempting to try the stable version as per the wiki:

    % python manage.py syncdb
    Traceback (most recent call last):
      File "manage.py", line 2, in <module>
        from django.core.management import execute_manager
    ImportError: cannot import name execute_manager
    

    execute_manager is deprecated in newer versions of Django.

    opened by eddie-dunn 1
  • Handling days like holidays.

    Handling days like holidays.

    Hello,

    Is there a way to define a set days (ie. holidays) for which the schedule won't generate any occurrence? I looked at canceled days but I'm not clear on how to use it.

    Thanks, Sophian.

    opened by sophianachiba 0
  • OverflowError: Python int too large to convert to SQLite INTEGER

    OverflowError: Python int too large to convert to SQLite INTEGER

    I'm trying to use Calendar with my User model where i use UUID as pk, and I can't create calendar, I believe, because this line where the object_id is saved as integerfield. In my case, this cause the error:

    OverflowError: Python int too large to convert to SQLite INTEGER
    
    opened by rodolphopivetta 1
Owner
Tony Hauber
Tony Hauber
A simple scheduler tool that provides desktop notifications about classes and opens their meet links in the browser automatically at the start of the class.

This application provides desktop notifications about classes and opens their meet links in browser automatically at the start of the class.

Anshit 13 Mar 23, 2021
Another Scheduler is a Kubernetes controller that automatically starts, stops, or restarts pods from a deployment at a specified time using a cron annotation.

Another Scheduler Another Scheduler is a Kubernetes controller that automatically starts, stops, or restarts pods from a deployment at a specified tim

Diego Najar 47 Oct 13, 2021
Remote task execution tool

Gunnery Gunnery is a multipurpose task execution tool for distributed systems with web-based interface. If your application is divided into multiple s

Gunnery 730 Oct 16, 2021
Crontab jobs management in Python

Plan Plan is a Python package for writing and deploying cron jobs. Plan will convert Python code to cron syntax. You can easily manage you

Shipeng Feng 1.1k Aug 22, 2021
Python-Repeated-Timer is an open-source & highly performing timer using only standard-libraries.

Python Repeated Timer Python-Repeated-Timer is an open-source & highly performing timer using only standard-libraries.

TACKHYUN JUNG 3 Sep 8, 2021
CoSA: Scheduling by Constrained Optimization for Spatial Accelerators

CoSA is a scheduler for spatial DNN accelerators that generate high-performance schedules in one shot using mixed integer programming

UC Berkeley Architecture Research 20 Sep 22, 2021
Python job scheduling for humans.

schedule Python job scheduling for humans. Run Python functions (or any other callable) periodically using a friendly syntax. A simple to use API for

Dan Bader 9.1k Oct 23, 2021