GitHunt
KE

keithrozario/julian-gregory

My submission for Agents@Work

Julian Gregory - The Calendar assistant

Julian Gregory Day is an agent that's here to help you with your Calendar needs.

What does it do?

The Calendar assistant can help:

  1. Summarize the days events
  2. Summarize the weeks events
  3. Decline all meetings for today (for when you have an emergency)
  4. Move a meeting that you organized (automatically finds a time that works for every attendee)
  5. Move a meeting where you're not the organizer (comment with a time that works for everyone)
  6. Book trainings into your calendar (perhaps after reading your email)
  7. Book an appointment (dental, car service, etc)
  8. and more .....

Julian is a specific agent for calendar management and can directly access the Google Calendar API. This allows him to perform actions like declining and moving meetings that the native Gemini Enterprise connector cannot perform.

Since Julian is more specialized agent, his prompts are shorter, tools are more specialized and he uses Gemini Flash instead of thinking models. So he's faster and cheaper than general purpose agents.

Why the name?

There is a batman villian called Calendar Man, whose real name is Julian Gregory Day, named after the Julian and Gregorian calendars. I like to name my projects after quirky things!

What I have so far

  • Julian can oAuth to the Calendar and Gmail API from Gemini Enterprise
  • Julian can book a meeting
  • Julian can find a free slot for multiple attendees
  • Julian can move a meeting for you (after determining the best free slot for you and the other attendees)
  • Julian can decline a meeting for you (with a comment)
  • Julian can cancel all your meetings for today. (For safety, we only mark your attendance as declined instead of cancelling the meeting)
  • Julian can find a time that suits multiple attendees (even those in different timezones)

Installation

Pre-requisites:

  • Ensure you have enabled the calendar API in the project
  • Create a oAuth client in the project for web application
    • Save the credentials to credentials_web.json file in the tokens_and_creds directory
  • To test locally, you'll need to Create an oAuth client in your gcp project for desktop
    • Save the credentials to credentials_local.json file in the token_and_creds direcrtory.
  • Get your Gemini Enterprise APP ID, and change the script.

Deployment

The hackathon runs on "agents-at-work-hackathon", so we use the following command to push to the agent to agent_engine.

Ensure the gcloud and gcp creds are assigned to your @google.com email instead of altostrat.

$ uv run -m julian_gregory.app_utils.deploy
--source-packages=./julian_gregory \
--entrypoint-module=julian_gregory.agent_engine_app
--entrypoint-object=agent_engine
--requirements-file=julian_gregory/app_utils/.requirements.txt
--project agents-at-work-hackathon
--location us-central1

Once the agent is deployed to Agent Engine, we can publish to Gemini Enterprise

$ python -m deploy_to_gemini_enterprise.deploy_to_ge

Note: the app_utils.deploy script is auto-generated by ADK, and populates a deployment_metadata.json file into your root directory. The deploy_to_ge script references values from this file.

References

If you're inside Google, the doc with more info on Gemini oAuth is here here

Google Calendar API - Link

Google Mail API - Link

Languages

Python94.5%Makefile5.5%

Contributors

Created December 4, 2025
Updated March 12, 2026