Appointments + Google Cal Sync - Services Aren't Syncing

I have been using this plugin to integrate with a golf course to accept tee times. It has been working great, but today we found a hiccup. It seems like my services which are all shared by the same service provider, are not syncing so that only one service can be booked per time slot. This does work if booking from the back end, but if we mark the time slot through Google Calendar - it will gray out the time frame for only one service, but not for the rest.
So for example, if I book 12-1pm through Google calendar, the time is blocked off for 1 Golfer service but not for 2-4 Golfers services. I have turned on the back end login for your all's perusal.

  • Scott

    This did not resolve my problem. It seems to be stemming from the fact that all bookings coming in through my gCal are under the service provider: Our Staff.. this is not a service provider on my site, and there are no services tied to it .. and therefore the times aren't being blocked on the front end of the site.

    I also keep getting errors such as: Insert went wrong: Error calling POST https://www.googleapis.com/calendar/v3/calendars/41vi3rfa9e0nl9frte4oj07c0o%40group.calendar.google.com/events: (401) Invalid Credentials, which I believe is stemming from the old API credentials which are stored on the user ID itself of our one and only service provider (ProShop) - which are grayed out on the user details page and I cannot change or disable syncronization.

    The API credentials that are stored within the plugin itself are correct and are correctly syncing with the gCal to push bookings to the calendar, but not from the calendar because like I said.. those bookings being pushed from gCal are under a service provider that doesn't exist and is not tied to services.

    • Scott

      Hi, yes.. I've already done both of these things - even syncing with a completely different account's calendar and still to no avail. The problem does not lie within the calendar and my website syncing - the problem lies within the plugin itself.

      When a reservation is synced from a gCal event, only the default service is blocked off on the front end calendar (1 Golfer). When a reservation is made in the backend or the front end, all services are blocked off for the selected time frame (1, 2, 3 and 4 Golfers) on the front end calendar. Why is this, I need it fixed.

    • Scott

      Access was already granted, if you had taken a look - Support access is ACTIVE until August 9, 2015 11:27 PM. I did extend it though, nevertheless. I have also granted access for the dev version of the site which is acting a bit differently on the backend than the live site, but seems to be the same on the front end - take a look to see.

      My step by step? I add an event to my calendar and then I go into Settings -> Google Calendar, and sync from gCal. I look under Reserved by GCal and see that it is imported, but the i'll look at my calendar and only the 1st service has the correct display for the booked timeslot. The other services have the time slot open. I believe though since I've reinstalled the plugin, it is not sharing resources for the services.

      If I go into the backend and add a new reservation manually, it will show on the front end as all services being booked for the one time slot. You can try adding new appointments to see for yourself, please uncheck send confirmation though. I'm hoping for another quick reply here.

  • Jude

    Hey Scott

    Thanks for the clarification, actually what confused me was the www in the domain name. I did not realize you maintained the two separately. The www version had a older version of A+ installed and no access enabled and this was linked to our ticket. Anyhoo found the original one.

    Also I'll need to run a few tests before being able to either give you a solution or file a bug report. Will keep you posted here

    Jude

  • Tyler Postle

    Hey Scott,

    Thanks for stopping by my live chat earlier.

    As mentioned there, I was able to replicate the issue and I've flagged this as a bug for the developer. Either myself or the developer will post back here once the issue is fixed.

    In the meantime, here is what you can do to get gcal events blocking appointment times properly.

    1. Allow service providers to set their own API via: Appointments+ > Settings > Google Calendar. As seen in my screenshot.

    2. Then login with your service provider account and go to yoursite.com/wp-admin/profile.php

    3. You will see that you have a section for them to set their own gcal credentials now :slight_smile:

    4. Login to the google console: https://code.google.com/apis/console/ and go to your Appointments+ project

    5. Go to API and Auths > Credentials. You should see a "Generate New P12 Key" as seen in my screenshot - do that and upload it to your /wp-content/plugins/appointments/includes/gcal/key folder with your other one.

    6. Create a new Gcal calendar and add the same google developer email address as a "person" like you did with the last one.

    7. Copy the p12 key and new google calendar ID into the service providers profile.

    After saving it you will have another test connection link there and it should work :slight_smile: now when you add events to that gcal it will import them in assigned to that specific provider and block out both times correctly.

    If you have any further questions on that just let me know.

    Cheers,
    Tyler

    • Scott

      Hi Tyler - I want to thank you profusely for finding a solution to this problem we were having. It was been put into our live environment on Wednesday, and so far there haven't been any hiccups. Thank you for taking the time to understand our problem without spouting off some backwards answer, and I'd also like to triple thank you for following up in an EXTREMELY well timed manner as you said you would. You are the best support we've ever had, and I'd just like to let you know that.

      • Tyler Postle

        Hey Scott,

        Wow thanks for the kind words :slight_smile: happy to help!

        I spoke to the developer about the issue with the non-service provider google API event importing and that's actually how it's suppose to work. It will only link to the service and won't take the providers into account - which is one reason why the service provider specific option was brought out later on. Guess you learn something new every day :p sorry about the mis-information there.

        So, leaving it how you have it now will be your best option. If you have any further questions on this at all just let us know.

        Enjoy the rest of your day Scott!

        Cheers,
        Tyler

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.