Appointments+ for community sites


Appointments+ is a nice appointment booking solution. The original concept assumes that there is one or a few providers of some services who are also administrators of the website or they have an "in-house" admin serving for them. And their clients from the outside world are booking their working time slots.

My needs are a bit different, I am developing a community site where there are many members (can be hundreds) who are not admins at all, and they are both providers and clients, i.e. all of them can both initiate and accept appointment requests.
I would like to point to a number of issues which pose essential drawback regarding my desired plugin usage. I have seen some of the issues reported in numerous other tickets but yet unsolved or abandoned. Several of the issues are also problematic from point of view of the original concept.

First, I name the issues:

1. Providers cannot confirm their pending appointments on front-end (only in their BuddyPress profile if the site is BP based).

2. Providers cannot cancel their confirmed appointments on front-end. (There is only a CANCEL link possible in confirmation emails).

3. Providers cannot cancel their pending appointments on front-end (i.e. remove instead of confirm).

4. Providers cannot mark individual time-slots in their own calendar busy.

5. The calendar does not indicate busy time-slots that are busy by the provider's appointments as client (appointment with another provider).

6. Pending client's appointments are absent in the client appointments list as well as in the calendar time-slot view.

7. Pending provider appointments are also absent in the provider's appointments list (but visible in the time-slot calendar view).

8. There is the default "No preference" service provider selected by default and identical to the site admin.

9. All appointment-related emails are being sent to the site admin by default (in addition to the provider and client).

10. It is necessary to select (define) the service providers one at a time.

Notes to issues 1-7:

- It is desirable that service providers (i.e. workers, community members, ... who are NOT ADMIN PROFESSIONALS) remain only on the front-end and are not bothered to enter the administration dashboard where they can spoil something easily. Unlike in the list of client appointments listed by the short-code [app_my_appointments], the parameter allow_cancel="1" does not work in the short-code [app_my_appointments provider="1"] listing providers' appointments so there is no way for providers to cancel confirmed appointments on front-end. The same problem is with pending appointments which are not even listed by the short-code - there is no way to cancel them and can only be confirmed on front-end if BuddyPress is installed - in the user's profile tab.

- The workers, members, etc. may have some other work to do, not just meetings and appointments; and each day is unique, so they need the ability to fully control their individual time-slots to leave them available or mark as busy.

- The users' time slot calendar has to indicate slots busy by both client and provider appointments so that others do not book them when they have another appointment as client.

- For the same reason, each user's calendar slots view should also show pending appointments as client just like it does for provider appointments.

My solution suggestions:

- I suggest that for both client and provider the short-code [app_my_appointments] would list pending appointments, too. And for provider let each entry contain a drop-down list to enable either to confirm or cancel the request, while for client just the cancel possibility, of course. Confirmed appointments entries should contain a cancel checkbox for both client and provider's appointments.

- In fact, I do not see a sense to differentiate between appointments as client or provider on the front-end. It would be more practical to distinguish just pending and confirmed appointments.

- The calendar time-slot view should indicate busy slots not only as provider but also as client.

- Each user when clicking his own calendar time-slots shall be able to mark them as busy (unavailable for booking).

BuddyPress integration:

For BuddyPress integration, in the BuddyPress profile of each user let all remain as is, with the following enhancements:

- Instead of "My Appointments as Provider" let the tab be named just "My Appointments" and list all user's appointments both pending and confirmed, as well as both as client and provider, with the controlling capabilities (confirm, cancel...), exactly the same as on the ordinary "Make an Appointment" page as I suggested above. In addition, let here be the current week's own calendar view shown with the possibility to click any free time-slots to mark them as busy (unavailable for booking).

- The "Appointments Settings" tab remain as is, but please make it working again :slight_smile:

- Add a new tab to the BP profile visible to other users (unlike the previous two tabs), containing the Appointments booking workflow where other users can book appointments with the selected user.

According to my searching in your support forum the last above mentioned BuddyPress new tab feature has already been done by Jude Rosario although outdated and currently not working:
Also, in the thread
Jude Rosario mentions that he "created the function to allow for users to cancel their own appointments".
So probably, a big part of my suggested solution has already been done, just has to be refreshed and included in the A+ regular version, perhaps as one or more Add-ons.

Notes and suggestions regarding issues 8-10:

- The default "No preference" service provider is not desirable because users may easily book him by mistake if they forget to select the desired provider. The person administering the site may not be involved in the community and if so he can rather be configured and listed by his name.

- It is not desirable for the site admin to be involved in all those appointment bookings among hundreds of users so do not bother him by all those notification, confirmation, cancellation, etc. e-mails. Just make it optional in the settings whether the emails are sent only to the involved providers and clients or to admin as well.

- Defining each service provider one at a time when there are hundreds of them? Please, make it possible in bulk, i.e. "select all" and/or select manually but in a bulk way.

Perhaps, you can imagine that it took me many days studying, experimenting with the plugin and searching the support forum, and writing this text!

So, what do you say, WPMUdevs, to bringing the A+ plugin to the next level?


  • Nastia

    Hello Stefan , I hope you are doing well today!

    Thank you for these suggestions.

    I am afraid as you already mentioned the Appointments + doesn't include the features from 1 to 10. This is how the plugin was designed at the beginning.

    I tested the addon that my colleague Jude has created and it is working from my end. You just need to add the file that is attached in this thread inside the /wp-content/mu-plugins/ folder. If you don't see the /mu-folder/ anywhere, please free to create it.
    Enable this option from Appointments > Settings > General > Display tab. Please note that the BuddyPress plugin needs to be activated in order to use this option.

    I hope our members will vote "+1"s in this thread so our developers will consider adding these features.

    If these features will be added eventually to the Appointments+ plugin, please note that it will take some time, so if you require them as soon as possible, please feel free to post a new job in the Jobs & Pros section.

    9. All appointment-related emails are being sent to the site admin by default (in addition to the provider and client).

    You can add this code to the functions.php file of your theme:

    function disable_admin_email() {
            return true;
    add_filter('app_confirmation_disable_admin', 'disable_admin_email', 999 );

    This will stop emil from sending to the admin.

    I hope this will help!

    Kind regards,

  • Stefan

    Hello Nastia,

    thank you for your response. The disable_admin_email() hook works on about half of the emails and the addon from Jude causes WSOD. But do not let us concentrate on this for now (in this thread).

    You advice me to invest into another developer to amend your plugin. But how would I maintain updates, then? And, I am already investing into you!

    My suggestions are to change or improve items which have been 'not so well' designed at the beginning. They will broaden the scope of the plugin usage - add new usage possibilities while retaining all of the original concept functionality. And some of the mentioned issue items, namely missing front-end capabilities, pose a serious drawback even in the original concept usage!
    I do not think members are watching (monitoring) all threads and voting, they have their own work and only eventually find this thread when searching for something present here.
    Anyway, you have had many requests like mine in the past from other members, e.g. in the thread:
    1. Please show me how to use buddy press with appointments + so that service providers can configure their own calendars FULLY
    2. What about the users buddypress profile and his appointment + profile?
    can they be merged etc
    3. so I really need to know how to BEST AND FULLY use buddypress with Appointments + for all features etc etc etc
    Note that I am probably the first member who has precisely formulated what it means to "configure their own calendars FULLY" :slight_smile:

    Regarding the front-end functionality you have had many threads, too, like:

    So what do you want to wait for?
    Please, note that my 10 items do not mean 10 new features. They are just precisely formulated elementary items representing about these features:
    1. Front-end cancelling and confirming capabilities of which about half is already done.
    2. Adding pending appointments to the lists - must be easy.
    3. Treating client's appointments like provider's - any problem?
    4. Making it possible to mark own calendar time-slots - must be easy.
    5. Some basic modifications in the admin backend.

    Maybe your devs will find that all those items represent just 2 or 3 real things, simple and easy :slight_smile:
    Please, have it discussed in your devs team.


  • Nastia

    Hello Stefan , I hope you are doing well today!

    You advice me to invest into another developer to amend your plugin. But how would I maintain updates, then? And, I am already investing into you!

    We offer specific features with each plugin and everything that a plugin does, it is described on the project page.

    These features are really good suggestions, as much as we'd like to implement all of them, we implement these based on popularity and how many users are requesting them. This thread is already in the Features & Feedback section. If we will have enough members requesting them, our developers might consider developing them.

    Please feel free to create a new thread regarding the front-end canceling and confirming capabilities that is partially working, so we could test it.

    Regarding the threads you posted, here, yes, similar feature were asked in the past but there was no enough support from other members so they were not developed.

    As for the other features, these require a lot of custom coding; adding new features in a plugin require some time, so if you are in need of those features, it would be better to hire a developer so the plugin will meet every site's requirements.

    Let me know if you have any further questions!

    Kind regards,

  • Stefan

    Hi Nastia,
    how many requesting members are enough?
    Regarding the threads from the past - those that I posted are just a few of many. Should I try to search and find more of them? How many?
    Not enough support from other members - how do you know? Do you think that everyone would take the trouble as I did? It took me about a week to test your plugin thoroughly and a whole day to put all the issue items together and formulate them. How many others, do you think, would take the trouble?
    Others just install, have a look and delete if not meeting expectations. I gave it much more extra time and effort.
    I am giving you a precious advice to take over the market of "calendar and appointments" plugins, overall. Yes, it will require some development time but it is well feasible for the authors of the current A+. You are advising me to do it myself. Are you serious? Well, then it will be my own plugin and I will be about to take over the market!
    Well, so far I am just in the market of providing community sites...

  • Sajid

    Hello Stefan,

    Hope you are doing good today :slight_smile:

    I am sorry but its not easy to tell how many members are enough for suggestions to be considered for development. Also the priorities changed time to time and if higher number of people requesting a request then that comes up in higher position in the queue. Also we have spare the resources for other tasks like core development of existing plugins and new ones too.

    Also, by moving into features and feedback section does not even guarantee that it will considered for sure. It depends upon the developer that will decide whether its possible to integrate that feature into existing plugin without actually rewriting the codebase.

    That said there are lots of factors that involved into the process of considering a feature request for development.

    Thank you so much for your suggestions and being a valuable member of community, we appreciate that :slight_smile:

    Best Regards,

  • Tyler Postle

    Hey there Stefan,

    Hope you're having a good weekend so far :slight_smile:

    Yes, your feedback above has been past along. We do have a project manager and growth team that decides what features/projects will be developed based on the current popularity/requests. At the moment there are several projects above Appointments+ and no ETA for the above. I know that isn't the news you wanted to hear but just wanting to be honest so you can plan the project accordingly.


Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.