Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFE: freebusy and selfbooking web interface #1034

Open
herrdeh opened this issue Sep 5, 2019 · 7 comments
Open

RFE: freebusy and selfbooking web interface #1034

herrdeh opened this issue Sep 5, 2019 · 7 comments

Comments

@herrdeh
Copy link

herrdeh commented Sep 5, 2019

We had considerable discussion on the freebusy issue (#582, #25169, #696), as well it happens at nextcloud.
After some consideration I came to the opinion that this issue should be solved together with a selfbooking feature. So I tried to write down necessary characteristics which hopefully help the discussion to get forward. If things are working well, I will condense my starting point and additional thoughts to set up a bounty for that feature. These are my thoughts:

Freebusy and selfbooking module

The idea of this module is to enable my customers to do booking of appointments with me (the operator of the cloud) on their own. For that

  • they need to see which are free time slots
  • they need to reserve their appointments

Do do so, that module has to run on the cloud server and needs to provide two web interfaces:

  • configuration interface, where the operator can adjust preferences for the booking
  • punter interface, where punters actually do the booking

The result should be a browser interpretable calendar view, which can be integrated to a web page - as well as CalDAV client readable output.

Config interface needs at least these controls:

  • display time period x days/weeks/monts back & y days/weeks/months forward in time
  • choose display one week / two weeks / one month
  • choose days of the week shown
  • time slots which form the "office hours" in general
  • existing calendars to be summed up to represent the "busy" blocks
  • calendar(s) into which punters should insert their desired appointments
  • personal data punters have to provide (Name, email, phone #, postal address - obligatory or optional)
  • period of time punters are allowed to book (choose multiple of quarters, half, full hours, discrete number of minutes, time limit for an appointment)
  • booking raster which should be observed - appointments start every x minutes, every quarter, third, half, full, even or odd hour)
  • minimum free time between appointments (can be 0)
  • text boxes for punters' comments (yes/no/max characters)
  • confirmation by email to punter and operator (yes or no)
  • text / image bits, sent within confirmation to punter
  • booking ID, required to change/cancel the appointment

User interface therefore needs these entries:

  • period of time desired
  • personal data according prefs

Optional:

  • Captcha at punter interface
  • send a reminder to punter (yes/no, xx days, xyy hrs before appointment)
  • Do a test - if email cannot be delivered (5xx errors according to RCF1893), do not confirm the appointment
  • multiple choice buttons (number / titles / exclusive or non-exclusive)
  • individualized calendar of availability mode:
    punter can issue a request to operator, operator can check his availability for that specific case and send a link, containing an individualized calendar of availability from which punter can choose and do the booking
@mokkin
Copy link

mokkin commented Sep 9, 2019

This feature would be my dream! We are also willing to spent money for it.

Acutally we are using a proprietary plugin for self booking for our clients but it doesn't not have CalDAV-Support. Almost no booking software has CalDAV-Support. Usually they only support Google Calendar.

Here is an OpenSource attempt for a booking Software, but includes also only Google for syncing:
https://github.com/alextselegidis/easyappointments

@herrdeh
Copy link
Author

herrdeh commented Sep 10, 2019

Thank you for your comment. Could you please have a close look where my description needs corrections or additions?

@wiredone
Copy link

wiredone commented Sep 13, 2019

Thank you for writing up your discussion and enumerating this description. My idealised request is that other, multiple contexts beyond 'a customer' are considered. Punter and Operator want to meet. Operator configures and sends link to Punter with a unique calendar of availability and Punter makes 'booking' and Operator is alerted. The availability would ideally be union or not of various calendars. E.g. If its a client, then availability must be when I am not with my child. If it is a play date or family, then my child must be present.

@herrdeh
Copy link
Author

herrdeh commented Sep 25, 2019

Sorry for my delayed reply.
First about words:
I wrote "customer", in my mind this not necessarily has to have a commercial context. I'm not a native English speaker, so can we find a better word? - What about "interested person"? The first hit for "Punter" in my translator is "customer of a prostitute", so I'm not sure whether this is the best choice.

Did I get your point right that your idea can be regarded as an extension to the sketch above?
My sketch: publish a general calendar of availability, allow interested persons to directly book
Your idea: Send an individualized calendar of availability on request, interested person can book on this answer

So your idea is the same as my sketch, but contains one more step: operator individualizes the calendar of availability. If so - can we agree on adding this as an option?

@wiredone
Copy link

Thank you for reply. My sincere apologies for not checking the etymology of my colloquialism, I am grateful for the learning! In its modern use, 'punter' does not have the sexual connotation, it is much more generic, like a visitor to a fair ground stall, music gig or other paying event!
I enjoyed your sketch above. (I was sad not to be at the conference.)
I am grateful for your complete comprehension of my request, I agree.

@herrdeh
Copy link
Author

herrdeh commented Sep 25, 2019

Allright. I updated my initial post and replaced "customer" by "punter". Hope you did not fool me... ((-;

@herrdeh
Copy link
Author

herrdeh commented Oct 1, 2019

I opened the bounty and put an initial 100 USD into it.
It's my first bounty, so please tell me if I made a mistake.
And of course - feel free to follow....
@

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants