# Scheduling Tasks in Antigravity

Author: [Mete Atamel](https://atamel.dev/) | Published: 2026-09-22 | Topics: GenAI, Agents, AGY | Canonical: https://atamel.dev/posts/2026/09-22_scheduling_tasks_agy/


![Scheduling Tasks in Antigravity](/img/2026/scheduling_tasks_in_antigravity.png)

Antigravity (AGY) allows you to schedule instructions to run on a recurring
schedule or one-time timer. However, it has two different ways of scheduling that
results in two different behaviors. 

In this post, I'll share my learnings on scheduling tasks in AGY and the
gotchas to look out for.

## Two ways of scheduling tasks in AGY

In AGY, there are two ways of scheduling tasks:

1. With the `/schedule` command in the chat.
2. With the **Scheduled Tasks** panel on the top left. 

While both let you schedule tasks, they are completely independent from each other 
and the way they schedule and display tasks are completely different as well. 
This can be confusing, so let's look into each in more detail to clear up the
confusion.

## Permissions for scheduled tasks

Before we dive into how to schedule tasks, it's important to note that scheduled
tasks require the same permissions that you'd grant to the agent in your own conversations. 

For example, let's say you want to schedule this task:

> Get the current weather in London from https://open-meteo.com/ and save it to a timestamped file

This prompt requires that the agent has write access to the project folder and
it also has HTTP access to the Open-Meteo API. Normally, you'd allow these
permissions as you go along at the conversation or project level but in scheduled
tasks, you need to add these permissions ahead of time. 

> [!tip] 
> Before scheduling a task, dry run the task in a project and add all the 
> necessary permissions at the project level to make sure the scheduled task will
> run without permissions issues later.

In this case, I created a project and ran the prompt in the chat. I got the following
prompt to allow HTTP access:

![HTTP access pop-up](/img/2026/http_access_pop_up.png)

I allowed it for the project and now, I'm ready to schedule this prompt as a task
in this project.

## /schedule command

The first way to schedule tasks in AGY is with the `/schedule` command in a
conversation. This command allows you to schedule **one-time** or
**recurring** instructions as background tasks in the **same conversation**. As
these background tasks are scheduled and executed, you can continue chatting
with the agent in the same conversation as usual.

### One-time task

For one-time task, you can try a prompt like this:

> `/schedule` In 1 minute, get the current weather in London from
> https://open-meteo.com/ and save it to a timestamped file in the current
> folder.

First, you'll see a background task scheduled in the chat:

![Schedule command pop-up](/img/2026/schedule_command_pop_up.png)

You'll also see the same background task on the right panel:

![Schedule command background task](/img/2026/schedule_command_background_task.png)

If you click on the background task on the right panel, you can also see the logs
of the task which is quite useful:

![Schedule command background task logs](/img/2026/schedule_command_background_task_logs.png)

Once the task is done, you'll see updates in the chat and also the file created
in the project folder:

![Schedule command task completed](/img/2026/schedule_command_task_completed.png)

### Recurring task

For a recurring task, you can try this:

> `/schedule` Every 10 minutes, get the current weather in London from
> https://open-meteo.com/ and save it to a timestamped file

You should see a similar background task in the chat and on the right hand side
panel:

![Recurring task scheduled](/img/2026/recurring_task_scheduled.png)

Similar to the one-time task, you can click on the background task to see
the logs.

Every time the task runs, you'll see updates in the chat and also the file created
in the project folder.

If you close AGY desktop app and come back later, the background task will 
still be there and continue running at the scheduled interval.

However, if you further kill the AGY process like this:

![Kill AGY process](/img/2026/kill_agy_process.png)

The background task will be cancelled:

![Recurring task cancelled](/img/2026/recurring_task_cancelled.png)

> [!warning] 
> Recurring tasks scheduled with `/schedule` command are cancelled if the AGY
> process is killed and you need to reschedule them.

Furthermore, you won't see one-time or recurring tasks scheduled with the `/schedule` command
in the **Scheduled Tasks** panel on the top left:

![Schedule command not in scheduled tasks panel](/img/2026/schedule_command_not_in_scheduled_tasks_panel.png)

> [!warning] 
> It's confusing that tasks scheduled with `/schedule` command in a conversation do
> not show up on the **Scheduled Tasks** panel.

## Scheduled Tasks panel

The second way to schedule tasks in AGY is with the **Scheduled Tasks** panel
on the top left but it's different from the `/schedule` command in a number of
ways:

1. You can only schedule recurring tasks with a cron schdule (i.e. no one-time
tasks). 
2. The scheduled tasks create their own conversation (i.e. not part of an existing conversation). 
3. The scheduled tasks are actually scheduled sidecars with the added benefit of
surviving AGY process restarts.

Let's create the same example as a scheduled task and look at the differences. 

Go to the **Scheduled Tasks** panel and create a new task as follows:

![Scheduled task UI](/img/2026/scheduled_task_ui.png)

Once you create the task, you'll see it listed under **Scheduled Tasks** panel.

![Scheduled task listed](/img/2026/scheduled_task_listed.png)

You can also get the hint that it's actually a sidecar. You can verify this by
realizing that a new sidecar file is created in `~/.gemini/config/sidecars/london-weather-every-ten-min/sidecar.json`:

```json
{
  "builtin":  "schedule",
  "args":  [
    "*/10 * * * *",
    "agentapi",
    "new-conversation",
    "Get the current weather in London from https://open-meteo.com/ and save it to a timestamped file"
  ],
  "display_name":  "london-weather-every-ten-mins"
}
```

The sidecar is also enabled in `~/.gemini/config/config.json`:

```json
{
  "sidecars": {
    "london-weather-every-ten-mins": {
      "enabled": true,
      "projectId": "17bc69c1-0072-48b5-9b44-180b5e1c8694"
    }
  },
  ...
```

After 10 minutes, you should see the sidecar creating a new conversation and
running the task. You'll see updates in the chat and also the file created in
the project folder.

![Scheduled task completed](/img/2026/scheduled_task_completed.png)

If you close AGY desktop app and come back later, the scheduled task will 
still be there and continue running at the scheduled interval.

If you kill the AGY process, the sidecar will also be killed and you can verify
this by checking the logs in `~/.gemini/antigravity/sidecar_data/london-weather-every-ten-mins/logs`:

```log
ERROR: logging before google.Init: I0922 12:24:50.517034      39 schedule.go:99] 
[schedule] Scheduler shutting down cleanly on signal: interrupt
```

However, if you start AGY app again, a new sidecar process will start up and 
will continue running the task at scheduled interval.

```log
 [schedule] Next execution scheduled in 20s (at 2026-09-22 15:30:00 UTC), 
 will run by 2026-09-22 15:31:33 UTC
```

> [!note]
> If you want scheduled tasks to survive restarts, it's better to use the
> **Scheduled Tasks** panel. 

## Summary

In this blog post, we've looked at two ways to schedule tasks in AGY. Here's 
a summary of the key differences:

| Method | Recurring or one-time? | New Conversation? | Where to check | Survives AGY restart? |
|---------|------------------------|-------------------|----------------|-----------------------|
| `/schedule` command | Recurring & One-time | No | Chat panel | No |
| **Scheduled Tasks** panel | Recurring only | Yes | **Scheduled Tasks** panel | Yes |




