Schedule a GitHub Projects backlog into Google Calendar, as a CLI or an MCP server.
Connect Runs on your machine
claude mcp add cal-auto-python -e GITHUB_TOKEN=<GITHUB_TOKEN> -e GITHUB_PROJECT_ID=<GITHUB_PROJECT_ID> -e CAL_AUTO_TIMEZONE=<CAL_AUTO_TIMEZONE> -e CAL_AUTO_CONFIG_DIR=<CAL_AUTO_CONFIG_DIR> -e CAL_AUTO_WORKING_DAY_START=<CAL_AUTO_WORKING_DAY_START> -e CAL_AUTO_WORKING_DAY_END=<CAL_AUTO_WORKING_DAY_END> -e CAL_AUTO_CALENDAR_ID=<CAL_AUTO_CALENDAR_ID> -e CAL_AUTO_TASK_LIST_ID=<CAL_AUTO_TASK_LIST_ID> -e CAL_AUTO_ATTENDEES=<CAL_AUTO_ATTENDEES> -e CAL_AUTO_SCHEDULABLE_STATUSES=<CAL_AUTO_SCHEDULABLE_STATUSES> -e CAL_AUTO_COUNT_ALL_DAY_EVENTS=<CAL_AUTO_COUNT_ALL_DAY_EVENTS> -- uvx cal-auto-python==0.1.0
{
"mcpServers": {
"cal-auto-python": {
"command": "uvx",
"args": [
"cal-auto-python==0.1.0"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"GITHUB_PROJECT_ID": "<GITHUB_PROJECT_ID>",
"CAL_AUTO_TIMEZONE": "<CAL_AUTO_TIMEZONE>",
"CAL_AUTO_CONFIG_DIR": "<CAL_AUTO_CONFIG_DIR>",
"CAL_AUTO_WORKING_DAY_START": "<CAL_AUTO_WORKING_DAY_START>",
"CAL_AUTO_WORKING_DAY_END": "<CAL_AUTO_WORKING_DAY_END>",
"CAL_AUTO_CALENDAR_ID": "<CAL_AUTO_CALENDAR_ID>",
"CAL_AUTO_TASK_LIST_ID": "<CAL_AUTO_TASK_LIST_ID>",
"CAL_AUTO_ATTENDEES": "<CAL_AUTO_ATTENDEES>",
"CAL_AUTO_SCHEDULABLE_STATUSES": "<CAL_AUTO_SCHEDULABLE_STATUSES>",
"CAL_AUTO_COUNT_ALL_DAY_EVENTS": "<CAL_AUTO_COUNT_ALL_DAY_EVENTS>"
}
}
}
}
{
"mcpServers": {
"cal-auto-python": {
"command": "uvx",
"args": [
"cal-auto-python==0.1.0"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"GITHUB_PROJECT_ID": "<GITHUB_PROJECT_ID>",
"CAL_AUTO_TIMEZONE": "<CAL_AUTO_TIMEZONE>",
"CAL_AUTO_CONFIG_DIR": "<CAL_AUTO_CONFIG_DIR>",
"CAL_AUTO_WORKING_DAY_START": "<CAL_AUTO_WORKING_DAY_START>",
"CAL_AUTO_WORKING_DAY_END": "<CAL_AUTO_WORKING_DAY_END>",
"CAL_AUTO_CALENDAR_ID": "<CAL_AUTO_CALENDAR_ID>",
"CAL_AUTO_TASK_LIST_ID": "<CAL_AUTO_TASK_LIST_ID>",
"CAL_AUTO_ATTENDEES": "<CAL_AUTO_ATTENDEES>",
"CAL_AUTO_SCHEDULABLE_STATUSES": "<CAL_AUTO_SCHEDULABLE_STATUSES>",
"CAL_AUTO_COUNT_ALL_DAY_EVENTS": "<CAL_AUTO_COUNT_ALL_DAY_EVENTS>"
}
}
}
}
{
"servers": {
"cal-auto-python": {
"type": "stdio",
"command": "uvx",
"args": [
"cal-auto-python==0.1.0"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"GITHUB_PROJECT_ID": "<GITHUB_PROJECT_ID>",
"CAL_AUTO_TIMEZONE": "<CAL_AUTO_TIMEZONE>",
"CAL_AUTO_CONFIG_DIR": "<CAL_AUTO_CONFIG_DIR>",
"CAL_AUTO_WORKING_DAY_START": "<CAL_AUTO_WORKING_DAY_START>",
"CAL_AUTO_WORKING_DAY_END": "<CAL_AUTO_WORKING_DAY_END>",
"CAL_AUTO_CALENDAR_ID": "<CAL_AUTO_CALENDAR_ID>",
"CAL_AUTO_TASK_LIST_ID": "<CAL_AUTO_TASK_LIST_ID>",
"CAL_AUTO_ATTENDEES": "<CAL_AUTO_ATTENDEES>",
"CAL_AUTO_SCHEDULABLE_STATUSES": "<CAL_AUTO_SCHEDULABLE_STATUSES>",
"CAL_AUTO_COUNT_ALL_DAY_EVENTS": "<CAL_AUTO_COUNT_ALL_DAY_EVENTS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
GITHUB_TOKENRequired, secret | GitHub personal access token used to query the GitHub Project. |
GITHUB_PROJECT_IDRequired | GitHub Projects V2 node ID of the board to read. |
CAL_AUTO_TIMEZONERequired | IANA timezone name used to schedule events, e.g. Europe/Lisbon. |
CAL_AUTO_CONFIG_DIROptional | Directory holding Google OAuth credentials and token. Defaults to the platform config directory. |
CAL_AUTO_WORKING_DAY_STARTOptional | Start of the working day as HH:MM. Defaults to 09:00. |
CAL_AUTO_WORKING_DAY_ENDOptional | End of the working day as HH:MM. Defaults to 17:00. |
CAL_AUTO_CALENDAR_IDOptional | Google Calendar ID to schedule events into. Defaults to primary. |
CAL_AUTO_TASK_LIST_IDOptional | Google Tasks list ID to create tasks in. Defaults to @default. |
CAL_AUTO_ATTENDEESOptional | Comma-separated email addresses to invite to scheduled events. |
CAL_AUTO_SCHEDULABLE_STATUSESOptional | Comma-separated GitHub Project status names to schedule. Defaults to Backlog. |
CAL_AUTO_COUNT_ALL_DAY_EVENTSOptional | Whether all-day events count against free/busy slots. Defaults to false. |
Details
| Package | [email protected] (PYPI, stdio) |
| First published | 10 Sep 2026 |
| Last updated | 10 Sep 2026 |
| Registry name | io.github.danielsousaoliveira/cal-auto-python |
More search and web servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
