Workers Auto Approve
CalendarEvents can be moved, deleted, and re-synced to Google, Microsoft, and Follow Up Boss
Ruby, OAuth, Microsoft, Google
Commissulator has a CalendarEvent model that is a pipeline for syncing various agent calendars from Calendly and Follow Up Boss to Microsoft and Google, respectively. Microsoft and Google are then synced by a flow from Microsoft Flow, which has its own limitations.
The Follow Up Boss connection was built with Watir to drive a Chrome browser, interact with forms and autocompletes, and either scrape or submit events. However, an API endpoint was discovered that made this system obsolete for now. The app connects to that API, the Google Calendar API, and has a partially-working OAuth client for the Microsoft Office 365 API. That client is getting auth tokens and refresh tokens, but the access tokens haven't worked for me yet to view the calendar data.
I haven't yet implemented the Calendly API and don't know if or when we'll need to, since Calendly drops events in Outlook and I have title parsing in effect that makes them compatible with our client list in Follow Up Boss. We don't currently have client lists in Microsoft or Google. The Calendly API functions through webhooks, and seems fundamentally read-only, but it will communicate with Microsoft to prevent double-booking as long as we can keep Outlook in sync.
The goal is to get Follow Up Boss in sync with Office 365 and Google. When an event is created in one it should appear in the other (this currently works), and when an event is updated, the updates should be propogated across (this is not currently built but I have primary keys for each event from both APIs, Google and Follow Up Boss, that are currently implemented).
Note, Events in the Follow Up Boss API are a different model related to client touchpoints. The events we're adding to calendars are in their undocumented endpoint called Appointments. They also add Tasks to the calendar in a similar fashion. I received the signature for attributes on this endpoint by analyzing Ajax requests made by my browser while accessing and editing the calendar on their site, which I think is React.
To summarize what I think this job will take, you will start by reviewing my OAuth code for Microsoft's Graph API and getting that to deliver data instead of auth errors. Then implement a way for events to notice when they are changed or deleted, and callbacks to send those updates to the other two calendars.
The task will involve you setting up a staging account with Microsoft, one with Follow Up Boss (they give 14 day trials), and one with Google (you'll be able to specify a calendar by id for each agent in the system, those can all live on any Google account you like). You'll also use Heroku to test the cron jobs that keep everything in sync, although that might be just pushing to an instance that I already have running for QA.
Setup your profile
Tell us a little about you:
No results found for
Type to search skills..
Required [[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email: