skillfed

gcal-sync

A python library for syncing Google Calendar to local storage

gcal-sync v9.1.0 76.2K downloads/30d#14,641 on PyPI13
Permissive license Apache-2.0 Active released

What it is and what it does

gcal-sync is an asyncio Python library that wraps the Google Calendar API with a simpler, more focused interface than general-purpose Google API clients. It lets you fetch calendar events, filter by time or search terms, and optionally sync events down to local storage for efficient repeated queries. The library handles recurring event expansion automatically, either server-side during fetch or locally during queries against synced data.

The library is designed for applications that need reliable, streamlined access to calendar data without the overhead of a full Google API client. You provide authentication credentials through a custom AbstractAuth implementation, then use GoogleCalendarService to list events or manage local sync via CalendarEventSyncManager. It depends on aiohttp for HTTP, ical for recurrence rule handling, and pydantic for data validation.

Use it for:

  • Fetch and display upcoming events from a primary or shared calendar in a web or desktop application.
  • Build a local cache of calendar events to support high-frequency queries without repeated API calls.
  • Search calendar events by keyword and iterate through paginated results asynchronously.
  • Expand recurring events at query time to get individual occurrences for a given date range.
  • Integrate calendar data into a home automation or scheduling system with minimal API client boilerplate.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

An asyncio library for reading and syncing Google Calendar events to local storage, with simplified API access and support for recurring event expansion.

Yes, if you need asyncio-native Google Calendar access and are comfortable implementing OAuth authentication yourself. The library is actively maintained, has no known vulnerabilities, and offers a lighter alternative to full Google API clients. Not suitable if you require Python versions below 3.13 or need comprehensive API coverage beyond event listing and syncing.

Install

gcal-sync on PyPI

pip

pip install gcal-sync

uv

uv add gcal-sync

poetry

poetry add gcal-sync

Installing gcal-sync

Before you install

Low friction install with three straightforward runtime dependencies. Actively maintained with a recent release and ongoing commits.

License in practice

Apache-2.0 permissive license allows commercial and private use with minimal restrictions.

Quickstart

pip install gcal-sync

from gcal_sync.auth import AbstractAuth
from gcal_sync.api import GoogleCalendarService

class MyAuth(AbstractAuth):
    async def async_get_access_token(self) -> str:
        return "..."

service = GoogleCalendarService(MyAuth(aiohttp.ClientSession()))
calendar = await service.async_get_calendar("primary")

Requires Python 3.13 or later. You must implement your own AbstractAuth subclass to provide Google OAuth credentials.

Verify before relying

  • Whether the library handles all common Google Calendar API use cases or only a subset of the full API surface.
  • Performance characteristics and scalability limits for local sync with large calendars.
  • Whether recurring event expansion handles all recurrence rule edge cases correctly.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.13)
Install friction low — pure-Python wheel
Runtime dependencies 3 — aiohttp, ical, pydantic
Maintenance actively maintained — 26 days since the last release
Last repo commit
First released
Downloads 76,239/month — #14,641 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: gcal_sync-9.1.0-py3-none-any.whl

Tags

google calendar api pythonsync calendar to local storageasyncio calendar librarygoogle calendar events asyncrecurring events expansioncalendar sync managerlightweight calendar api
google-calendarasynciosync-local-storage

More Internet packages