Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 607383
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T17:21:15+00:00 2026-05-13T17:21:15+00:00

I am trying to implement a calendar system with the ability to schedule other

  • 0

I am trying to implement a calendar system with the ability to schedule other people for appointments. The system has to be able to prevent scheduling a person during another appointment or during their unavailable time.

I have looked at all the existing django calendar projects I have found on the internet and none of them seem to have this built-into them (if I missed it somehow, please let me know).

Perhaps I am just getting too tired, but the only way I can think of doing this seems a little messy. Here goes in pseudo code:

  • when a user tries to create a new appointment, grab the new appointment’s start_time and end_time
  • for each appointment on that same day, check if
    • existing_start_time < new_start_time AND existing_end_time > new_start_time (is the new appointments start time in between any existing appointment’s start and end times)
    • existing_start_time < new_end_time AND existing_end_time > new_end_time (is the new appointments end time in between any existing appointment’s start and end times)
  • if no objects were found, then go ahead and add the new appointment

Considering Django has no filtering based on time, this must all be done using .extra() on the queryset.

So, I am asking if there is a better way. A pythonic trick or module or anything that might simplify this. Or an existing project that has what I need or can lead me in the right direction.

Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T17:21:15+00:00Added an answer on May 13, 2026 at 5:21 pm

    What about using Django’s range test.

    For example:

    appoinment = Appointment()
    appointment.start_time = datetime.datetime.now()
    # 1 hour appointment
    appointment.end_time = appointment.start_time + datetime.timedelta(hours=1)
    # more stuff here
    appointment.save()
    
    # Checking for collision
    # where the start time for an appointment is between the the start and end times
    # You would want to filter this on user, etc 
    # There is also a problem if you book an appointment within another appointment
    start_conflict = Appointment.objects.filter(
                         start_time__range=(appointment.start_time,
                                            appointment.end_time))
    end_conflict = Appointment.objects.filter(
                       end_time__range=(appointment.start_time,
                                        appointment.end_time))
    
    during_conflict = Appointment.objects.filter(
                          start_date__lte=appointment.start_time, 
                          end_date__gte=appointment.end_time)
    
    if (start_conflict or end_conflict or during_conflict):
        # reject, for there is a conflict
    

    Something like that? I haven’t tried this myself so you may have to tweak it a bit.

    EDIT: Added the during_conflict bit.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am currently trying to implement the wonderful jQuery plugin 'week calendar' ( here
I'm trying to implement my first android Program. It should write calendar entries (I
I'm building a calendar in ASP.NET using Jquery, And I'm trying to implement Print.
All I am currently trying implement something along the lines of dim l_stuff as
trying to implement a dialog-box style behaviour using a separate div section with all
Am trying to implement a generic way for reading sections from a config file.
I am trying to implement string unescaping with Python regex and backreferences, and it
I'm trying to implement a data compression idea I've had, and since I'm imagining
I have been trying to implement Win32's MessageBox using GTK. The app uses SDL/OpenGL,
I'm trying to implement something like this: <div> <table> <thead> <tr> <td>Port name</td> <td>Current

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.