Skip to main content
Use Case · Agno

Your Agno agent can call any tool in its toolkit. Civic decides which ones are safe.

Agno makes it easy to build lightweight agents. Civic makes sure they can't write, delete, or send without your say-so.

use case / agno

The agent deleted 200 calendar events trying to reschedule one meeting.

Just imagine, one day…

You build an Agno agent to manage your team's calendar. It reads events, finds conflicts, and suggests reschedules. You give it calendar access so it can see the full picture.

A team member asks the agent to move a recurring standup. The agent reads the series, decides the cleanest approach is to delete the recurring event and recreate it. It deletes the parent event. 200 individual occurrences vanish. Attendees across 4 time zones get cancellation notices. Your VP asks why her 1:1s disappeared.

The agent found an efficient solution. It just had permissions it shouldn't have had.

Without guardrails, your agent picks the most efficient path, even when it's destructive.

It does things you did not intend

You asked it to move one meeting. It deleted 200 events and sent cancellation emails to everyone in the company.

You cannot prove what happened

No log of which events were deleted or why. The calendar API shows bulk deletions but not the agent's reasoning.

You cannot stop it fast enough

Delete is instant. 200 cancellation emails are already sent. Recreating the events means manually re-inviting every attendee.

It gets confused and you never know

Deleting and recreating seemed more efficient than editing in place. The agent optimized for clean execution, not minimal impact.

Connect Agno through Civic in three steps

Agno Agent

Add Google Calendar.

Allow read and single-event updates.

Block delete on recurring/parent events.

Block send-on-behalf-of.

Done. 1 tool connected:

✓ Calendar — read + update (no bulk delete)

Your MCP URL is ready to copy.

The same scenario. Different outcomes.

Without Civic, the agent deletes and recreates. With Civic, bulk deletes are blocked.

$ python calendar_agent.py
[agno] reading calendar events...
[agno] deleting parent event (200 occurrences)...
[calendar:delete] 200 events deleted
[email] 200 cancellation notices sent
$ # VP's 1:1s gone. 200 cancellation emails sent.
$ python calendar_agent.py
[agno] reading calendar events via Civic...
[agno] requesting delete on parent event...
[nexus] ✘ BLOCKED — bulk delete denied
[nexus] suggestion: update single occurrence
[agno] updating standup to 10am... ✓
$ # one event updated. no cancellation emails.

Ship safer with Civic

We'll help you implement authenticated, scoped, and auditable access without slowing down your build.