Skip to main content

Calendar application

This workflow will use Google calendar and the google_workspace_mcp server to find available time slots on your Google calendar.

Prerequisites

  • Google calendar - A calendar in a personal account or a business account that you can administer.

Google setup

Google requires you to explicitly authorize any application that accesses its APIs, including Jotsu.

To set this up:

Follow the steps in the OAuth Credential Setup Guide for the google_workspace_mcp server.

At the end of the process, you will receive:

  • Client ID
  • Client Secret

Save both values and provide them in Jotsu when prompted.

Add a server

To enable a workflow to use your calendar, you’ll need to authorize an MCP server to access your account. The Jotsu interface will guide you through the OAuth setup step by step. The process is a bit lengthy, but it only needs to be completed once. After that, all your Jotsu workflows can access the server’s resources. This is as streamlined as Google allows the setup to be.

  • Click Servers in the left siderbar.
  • Under Available MCP Servers, Google Workspace is listed.
  • Click Add server.
  • Under Client Info, input the Client ID and Client Secret from above, replacing [GOOGLE_WORKSPACE_CLIENT_ID] and [GOOGLE_WORKSPACE_CLIENT_SECRET] respectively.
  • Click 'Add Server' at the bottom of the dialog (you may need to scroll).

A dialog will be shown that says authorization is required for this server. Click OK.

If you get any kind of error, that means there was a problem entering the Client ID/Client Secret (Googles error messages aren't super clear.)

Jotsu will show a progress screen as it authenticates with Google, then redirect you to a Google page to authorize your account. Previously you authorized the application, this authorizes your specific user.

When redirected to Google:

  • Choose your user and sign in if necessary.
  • Click Continue on the application information screen (explanation below).
  • Click Select all or all calendar permissions and click Continue.
  • You'll be returned to Jotsu, then click Save Server.

The server details are shown and the server is ready to use in your workflows.

Create a workflow

Create a workflow as you did in Your first workflow.

  • Create a workflow and give it a name and optional description.
  • Click on the workflow and open the editor.
  • Add a 'General' event.
  • Open Models and drag Anthropic to the grid.
  • Open Nodes and add a Target node.

Anthropic node configuration

The Anthropic node needs to be configured to call the Google MCP server and be told how to use that data.

Click on the Anthropic node in the edit to bring up configuration dialog for that node.

System Instructions

The system instructions tell the Anthropic node it's purpose is to suggest available meeting times from the calendar.

System Instructions

You are a calendar scheduling assistant. Your task is to find the next available 30-minute meeting time slot.

Rules:

  • Only schedule meetings between 8am and 4pm Pacific Time
  • Only schedule on weekdays (Monday-Friday)
  • Meetings are always 30 minutes long
  • Ensure no overlap with existing events
  • The meeting must be at least 4 business hours in the future
  • Use the current time as the starting point for searching

Input will include:

  • Current timestamp
  • List of existing events

Output requirements:

  • available_at: Next open 30-minute slot as ISO8601 string
  • message: Concise invitation to the time slot

Prompt

The prompt should tell the node what data to use. This node doesn't use the incoming JSON data and only needs the calendar id to use in case there are multiple. Google calendar IDs are usually just the email of the owner so set the prompt to (using your email):

Use the calendar_id 'me@example.com'.

Servers

The Servers section explicitly tells a node which servers is may call. A node may call any tool on a server it has access to.

Check the Google Workspace checkbox.

Structured Output

Structured output forces the Claude model to output valid JSON with a particular structure. The structure is enforced by JSON Schema.

Use AI mode to generate a JSON Schema (or enter one by hand if you are so inclined). Describe the output with the following command

A valid JSON object with these properties, both required:
- available_at: the time of the next available meeting.
- message: human readable text that suggests the meeting time.

Click Send and the AI will generate a JSON Schema object for you.

JSON Schema
{
"type": "object",
"properties": {
"available_at": {
"type": "string",
"format": "date-time",
"title": "Next Available Meeting Time"
},
"message": {
"type": "string",
"title": "Meeting Time Description"
}
},
"required": [
"available_at",
"message"
]
}

Target node configuration

The workflow is ready to run now but will display everything it collects as one big JSON object. Instead, it should just show the human-readable message to the user.

  • Click the Target node to open the configuration dialog.
  • Select Markdown in the Display dropdown.
  • Type message in the JSONata Expression field.

Running the workflow again will show the message in a dialog.

To again see the full data from the workflow run:

  • Click the Debug icon in the upper right-hand corner of the editor.
  • Open the Target[default] section and the entire JSON object is displayed.

Additional information

Application information screen

When a user authenticates via the OAuth mechanisms Google presents information about the application and what capabilities the user is requesting (called 'scopes').

Google hasn't verified this app
When using a free or personal plan, you may see a message from Google stating 'Google hasn’t verified this app.' This warning is technically correct, but it can sound more concerning than it really is.

When you created a Client ID and Client Secret, Google treated that setup as a new application. Since it is only intended for you and will never be made public, Google considers it a private or 'test' application. That is why the verification banner appears.

Users on a business plan should not see this warning for 'Internal' applications meant only for their organization.