Blog Post

The Qrew Blog

Automatically book meetings on your Outlook calendar using Pipelines

BrianCafferelli's avatar
Qrew Captain
4 years ago

Automatically book meetings on your Outlook calendar using Pipelines

Do you ever find yourself manually booking meetings in Outlook, based on project work you’re tracking in Quickbase? Many companies track complex projects and milestones in Quickbase, and frequently transcribe dates, meeting attendees, etc. in Outlook by hand. But there is a better way! You can build pipelines which create these meetings for you automatically, saving time and making sure your meetings are booked consistently.

This process will be of particular interest to those who use iCal fields, since that field type is being retired.


Overview of example pipeline

The pipeline to create an Outlook meeting based on Quickbase data has two steps:

  • Step A: Trigger the pipeline when an activity record is added, but only if the activity type is “Meeting”.
  • Step B: Create a corresponding meeting in Outlook.

In this example, we’ll set up the pipeline to run when a new activity record of type “Meeting” is added. However, just as you can with an email notification, you can customize this trigger logic however you’d like. So, your pipeline could run when an existing record is updated, and only when a specific field is filled in, for instance.


Pipeline Step A: Trigger when meeting is added

The goal of Step A is to trigger the pipeline when an activity record is added, but only if the activity type is “Meeting”.

Here’s how to set it up:

  1. Create a new pipeline and give it a name.
  2. Open the Quickbase channel on the right.
  3. Connect to your Quickbase account if you haven’t already done so (click here to learn how).
  4. Click Records, then drag the Record Created trigger onto the canvas as Step A.
  5. Under Table, we’ll select Activities.
  6. Under Specify Fields for Use in Subsequent Steps, identify the fields we want to pass to Outlook. We also need to select any fields needed for the trigger’s condition. For this example, we’ll select Title, Description, Starts At, Ends At, Attendees, and Activity Type.
  7. Click Add conditions.
  8. Select Activity Type.
  9. Build a condition that reads like this: (Activity Type) (is) (Meeting).


Pipeline Step B: Create calendar event in Outlook

The goal of Step B is to create the corresponding meeting in Outlook.

Here’s how to set it up:

  1. Open the Microsoft Outlook channel on the right.
  2. Connect to your Outlook account if you have not already done so (click here to learn how).
  3. Click the Calendar Events category, then drag the Create a Calendar Event step onto the canvas as Step B.
  4. Under Account, check that your desired email address is selected.
  5. Click and drag from the available fields panel into the Subject, Body, Start, and End fields as in the image above.

    {% for attendee in a.attendees %}
    {{ "," if not loop.last }}
    {% endfor %}

    NOTE: Jinja is a powerful templating engine that is part of the Python programming language. You can use jinja expressions to build powerful pipelines. While there is some overlap between what you can do with jinja and Quickbase formulas, jinja expressions are more powerful and more complex as they support control logic such as looping. For those interested in learning more about the jinja expression above, please see the appendix at the end of this article.

    Testing Your Pipeline

    To test your pipeline, first click the toggle next to Pipeline off to turn it on.  Next, switch to your Quickbase app, and set up a test record to make sure the pipeline is working properly. The activity log in Pipelines will show you the progress of the pipeline, and give you details about each step the pipeline is taking. You should see the new meeting appear on your calendar in Outlook, and it will appear on the calendar for each other meeting attendee as well.


    Create calendar events in systems other than Outlook

    If your company uses a calendar system other than Outlook, you can still use pipelines to automatically book meetings. As long as your calendar system has an API, you can set up a pipeline using the Webhooks channel.



    Allow users to manually add meetings to their calendar

    Some companies include iCal fields in email notifications today, allowing someone to quickly download and import the meeting into their calendar. For those who prefer this workflow, you can also accomplish this using pipelines. You can add a checkbox field to your table, and then create a formula url field which checks the box, and then unchecks the box. If you set a condition on the pipeline that the checkbox must be checked for the pipeline to run, then clicking the button will automatically add the meeting to the user’s calendar. (without needing to download and import an iCalendar file) In that scenario, the meeting will be added to the calendar of all meeting invitees.


    Taking it to the next level

    This example gets you started automatically managing your meetings. If you wanted to go a step further, you could use our linking feature to build out a bi-directional integration. This would allow you to re-schedule the meeting on your calendar and automatically update the original Quickbase record. If you have not created a bi-directional integration in pipelines before, check out our QB University course Build Powerful Pipelines using Included Features.


    Learn more


    Appendix: Breaking down the jinja expression

    Scripts and formulas such as jinja are a set of instructions for a computer to process. Part of the challenge in learning a programming language comes from learning how a computer “thinks”. So below you can find a translation of what each of the four lines of the jinja expression above are instructing the computer to do.

    Notice that the order of the jinja formatting does not match the natural, plain English explanation.




    {% for attendee in a.attendees %}

    The data returned from Step A contains a list of items, and that list is called attendees. Let me refer to each individual item in the list as an attendee.


    Then, for every attendee in the list…


    I want to build a list of email addresses. So, for each attendee, grab their email address and add it to the new list.

    {{ "," if not loop.last }}

    After adding each email to the list, add a comma after the email. (This is the format Outlook needs to properly set up our meeting.)


    Then, make sure we’re not on the last step of the loop because we don’t want an extra comma at the end of the list.

    {% endfor %}

    The loop is over, so complete that list of emails and move on to the next step in the pipeline.


    Published 4 years ago
    Version 1.0
    No CommentsBe the first to comment