Software tips, techniques, and news.

By Brendan McBride  Posted on  February 2nd, 2016  in  Free Downloads, FileMaker

FileMaker Google Calendar Integration

Having your own calendar inside of FileMaker is a great way for you and your coworkers to keep track of upcoming appointments. However, building your own calendar in FileMaker is a very tedious task. Why reinvent the wheel when there are already apps out there that you can integrate with? I will show you how to connect your FileMaker solution with Google Calendar to take advantage of this powerful calendar and all of its features.

FileMaker Google Calendar Logos

Creating a Free Developer Account

The first step of this integration is to create a project in the Google Developers Console. Once you have created the project, you will then need to enable the Calendar API. This will take you to a setup process where the API will be managed. We will be using HTTP requests, so you will want to mark that the API will be accessed via a web browser client and that you will be accessing user data. You will also need to set the redirect URI to https://dbservices.com or any valid website that will not redirect to something else. This is only used as a landing page for authentication and does not need to be anything special. Once the Client ID has been created, copy the Client ID and Client Secret into your solution. Keep your client secret hidden from the world as the combination of the Client ID and Client Secret will be used to authorize your solution to make changes to the end user's calendar.

Authenticating with Google

Once you have your API information, you will need authenticate your solution with the Google Calendar API.

UPDATE: FileMaker 16 now includes the ability to set headers, which means a plugin is no longer required. The example file uses these new functions.

FileMaker can't set headers natively, and later on we will need to use a HTTP PUT command, so a plugin is needed in order to make any requests to the Google Calendar API. I suggest using the BaseElements Plugin as it is a free and powerful plugin that can handle all of our HTTP request needs. For any questions regarding how requests should be built, please reference the Google Calendar API Documentation. To authenticate your solution, place the user into a web viewer at the API authentication screen. This will prompt the user to login with their own account and allow your solution to make changes to their calendar.

FileMaker Google Calendar Consent

Once they have agreed, they will be sent to the address specified in your redirect URI. In the address, there will be url encoded parameters, one of which will be the authentication code. Finally, you will use the code provided, along with your client ID and secret to get your access token which will be used to make any API requests.

Making Requests and Parsing the Response

Many of the Google Calendar API requests require additional parameters outside of the URL encoded parameters. The Insert Event request, for example, is a POST request which requires additional fields like the start and end date, event title, and many other optional settings for the event. These extra fields will need to be JSON encoded text, passed as the parameter in the BaseElements function BE_HTTP_POST ( url ; parameters ).

Set Variable [ BE_HTTP_POST ( "https://www.googleapis.com/calendar/v3/calendars/primary/events?access_token=[Your Access Token] ; $data ) ]

Once a successful request has been made, a JSON encoded response will returned. You will then be able to use the function BE_JSONPath( ) to pull any information out of the response that you wish.

{
  "kind": "calendar#event",
  "status": "confirmed",
  "created": "2016-01-20T17:46:42.000Z",
  "updated": "2016-01-20T17:48:30.994Z",
  "summary": "Test",
  "colorId": "5",
  "creator": {
    "email": "bmcbride@dbservices.com",
    "displayName": "Brendan McBride",
    "self": true
  },
  "organizer": {
    "email": "bmcbride@dbservices.com",
    "displayName": "Brendan McBride",
    "self": true
  },
  "start": {
    "dateTime": "2016-01-21T13:30:00-05:00"
  },
  "end": {
    "dateTime": "2016-01-21T14:30:00-05:00"
  }
}

For example, you can get the newly created event ID by using the following set of functions:

Set Variable [ BE_JSONPath ( $jsonResponse ; "$.id" ) ]

Conclusion

Google Calendar can be fully integrated with your FileMaker solution! You can create, update, delete, or move events to different calendars all from within FileMaker. Save time and money taking advantage of all the features built into the calendar you already use. Feel free to contact us if you need further assistance or to discuss getting your company calendars into FileMaker.

Did you know we are an authorized reseller for FileMaker Licensing?
Contact us to discuss upgrading your FileMaker software.

Download
Download the FileMaker Google Calendar File
Please complete the form below to download your FREE FileMaker file.
FileMaker Experience *
Terms of Use *
OPT-IN: I agree that I am downloading a completely free FileMaker application file with no strings attached. This file is unlocked, and I may use it for my business or organization as I see fit. Because I am downloading a free file, I agree that I should receive occasional marketing. I understand that I can OPT-OUT of these emails at anytime.
Brendan McBride thumbnail
Brendan McBride

Brendan is a certified FileMaker and web developer and is a very friendly, hard-working, and technically-astute engineer ready to solve any problem you throw at him. Brendan went to Purdue, receiving a Bachelors in Computer Science and minored in Economics.

FileMaker 18 Certified Developer
FileMaker 17 Certified Developer
FileMaker 16 Certified Developer
FileMaker 15 Certified Developer
FileMaker 14 Certified Developer
FileMaker 13 Certified Developer
FileMaker 12 Certified Developer
FileMaker 11 Certified Developer
"We were actually able to add more features than we thought would be possible within our budget. We always experienced a ‘can do’ attitude and DB Services was incredibly patient and easy to work with."
Courtney Hartman
Art Director
"The new FileMaker custom website interface is very user-friendly and easy to follow for our clients. In addition, it is much faster than the old Instant Web Publishing (IWP) interface. Thank you and all the others who have helped us out at DB Services. I am very grateful for the excellent service you provide us. Its nice to know we can call you for help if we have an issue."
Wayne Capek
President
"We needed a solution that would simplify the administration of our responsibilities under our contract with the State of Indiana. We have seen a dramatic increase across the state in the number of potential foster and adoptive parents that have begun the preparation and training process. This increase has resulted in a significant opportunity for children available for adoption. That’s a big win for everyone! And it’s all because we can refer potential parents to the proper state contacts efficiently and quickly."
Chris Morrison
Executive Director
"Thank you for all of your expertise and valuable help. I am so grateful to have found DB Services."
Linda Findlay
Owner
"Thank you for our new database system. We transitioned from a carbon copy paper based system to a digital database. The software has saved us time and money. We used to archive all our jobs in cabinets, now we can look up a job in seconds from anywhere. The software allows us to easily email estimates to our customers in pdf format. In a year there was a return on investment just from eliminating the purchasing of our carbon forms."
Todd Cartmel
Owner
"The new system allows us to create and track jobs for customers along with inventory, something we had been doing with separate word and spreadsheet files. Because it’s now so intuitive, new staff members are able to begin using the database immediately without our usual training session and ‘cheat sheets’ for getting around within the file."
Tom Andrews
President