gcal-sync
A python library for syncing Google Calendar to local storage
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.13 or later.
- You must implement your own AbstractAuth subclass to provide Google OAuth credentials.
- Low friction install with three straightforward runtime dependencies.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
last release 2026-07-19 (26 days) · last repo commit 2026-08-14 · 13 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 76,239 downloads/mo, #14,641 on PyPI
Alternatives
Verify before relying
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")- 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.
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 on it.
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
Before you install
Low friction install with three straightforward runtime dependencies. Actively maintained with a recent release and ongoing commits.
Requires Python 3.13 or later. You must implement your own AbstractAuth subclass to provide Google OAuth credentials.
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")
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 packagesaiohttpicalpydantic |
| 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
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “sync calendar to local storage”
- gcal-syncAn asyncio library for reading and syncing Google Calendar events to…
- vdirsyncerVdirsyncer is a command-line tool that synchronizes calendars and…
- icaleventsDownloads, parses, and queries iCalendar (.ics) sources from URLs or…
Give your agent the search over MCP, or paste the wish link into any chat.
More Internet packages
Botocore provides low-level, data-driven access to Amazon Web Services APIs, serving as the foundation for the AWS CLI and boto3 libraries.
Install it if you need programmatic access to AWS services.
Provides an async client for AWS services using botocore and aiohttp, allowing you to call AWS APIs asynchronously within asyncio-based applications.
Install it if you need to call AWS services from async Python code; it is the standard way to do so.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides a platform-independent file locking mechanism to coordinate access to files across processes and threads.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides common Protocol Buffer message definitions used across Google Cloud APIs, enabling Python clients to interact with Google services.
See also aiogoogle · PyCronofy · langchain-google-calendar-tools · google-cloud-scheduler · google-apps-meet · ical · recurring-ical-events · gkeepapi · caldav · TGScheduler