# Google Calendar

Two-way sync with Google Calendar: events that reduce availability and tasks that appear in your calendar.

Source: https://ardumaker.com/en/docs/google-calendar/

- Category: Meetings and productivity
- Status: Available
- Requirements: An active ArduMaker session before connecting Google; A Google account with Google Calendar
- MCP tools: No MCP tools: it is used from the dashboard.

## What can you do with it?

- Connect one or more Google accounts and link one or more calendars from each.
- Import Google events so they reduce availability.
- Push events created in ArduMaker and your own dated tasks to Google.
- Choose, per project, which calendars count: `todos`, `especificos` or `ninguno`, or create a new calendar exclusive to that project.

## When should you use it?

- So auto-scheduling does not place tasks on top of meetings you already have in Google.
- To see your project tasks in the calendar you use every day.

## How does it work in ArduMaker?

1. The account is connected from ArduMaker and permissions are accepted in Google. The primary calendar is linked automatically.
2. Linking a calendar runs a first sync of the next 180 days.
3. After that, a periodic process pulls changes from Google and pushes pending items to Google. It is not real time: a change can take around a minute. A manual sync can also be forced.

- Everything ArduMaker creates in Google has the `[AM] ` prefix in the title. That way it is not imported back as a personal event.
- A task is pushed to Google only if it has an owner, a date, and that owner has a linked and active calendar. It goes with its actual time; if the day has a break, it is split into one event per block.
- Events that came from Google can be edited from ArduMaker and the change goes back to Google.

> **INFO:** Changing something in a task can move another task of the same owner that day in Google: the whole day is recalculated.

## What actually changes?

- Switching off a calendar keeps it linked but neither read nor written; its tasks are removed from Google on the next cycle.
- Unlinking a calendar removes from Google what ArduMaker pushed from today on (the past stays) and removes the imported events.
- Disconnecting the account performs that cleanup on all its calendars and asks Google to revoke the permission.
- Changing a project's setting reschedules the person and moves their future events to the calendars that now apply.

## Diagram

**Both directions**

```text
Google Calendar (user's events)
  ↓
Periodic sync (pulls changes, skips [AM] ones)
  ↓
ArduMaker schedule (reduces availability, reschedules tasks)
  ↓
Push queue (tasks and events to Google)
```

## Expected result

Your own tasks appear in Google with the `[AM] ` prefix and Google events take up time in the working hours ArduMaker uses for scheduling.

## Errors and troubleshooting

| Message or result | Cause |
| --- | --- |
| `Could not refresh the Google access token, reconnect the account` | Google no longer accepts the stored access; reconnect. |
| `This calendar is already linked` | That calendar was already linked. |
| `reconnected_no_refresh_token` | A known account was reconnected and Google did not renew the long-term permission; disconnect and connect from scratch. |
| `error_not_logged_in` | The connection started without an ArduMaker session. |

If a task does not show up in Google, check it has an owner and a date and that the calendar is active, and wait for the next cycle.

## MCP access

There are no MCP tools to connect accounts or choose calendars. What an agent creates does travel to Google: tasks via `crear_tarea` and meetings via `crear_reunion` sync just like those created on the web.

Full reference for each tool: [/mcp/docs](https://ardumaker.com/en/mcp/docs).

## Related features

- [Project calendar](https://ardumaker.com/en/docs/calendario-de-proyecto/)
- [Tasks](https://ardumaker.com/en/docs/tareas/)
- [Google Meet](https://ardumaker.com/en/docs/google-meet/)
- [Booking links](https://ardumaker.com/en/docs/enlaces-para-agendar/)
- [Shared availability](https://ardumaker.com/en/docs/disponibilidad-compartida/)
