{"id":14563558,"url":"https://github.com/SwitchbackTech/compass","last_synced_at":"2025-09-04T06:32:11.047Z","repository":{"id":213312750,"uuid":"697487642","full_name":"SwitchbackTech/compass","owner":"SwitchbackTech","description":"🧭 Weekly planner for minimalists who value their time","archived":false,"fork":false,"pushed_at":"2025-08-30T22:16:52.000Z","size":9706,"stargazers_count":194,"open_issues_count":96,"forks_count":46,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-08-30T23:29:15.331Z","etag":null,"topics":["calendar","google","google-calendar","google-calendar-api","google-calendar-integration","google-calendar-synchronization","minimalist","nodejs","react","scheduling","shortcuts","time-management","typescript"],"latest_commit_sha":null,"homepage":"https://www.compasscalendar.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SwitchbackTech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-09-27T20:40:53.000Z","updated_at":"2025-08-30T13:19:26.000Z","dependencies_parsed_at":"2024-05-03T03:27:33.299Z","dependency_job_id":"c0fae8c7-c6bb-4c7c-862b-490623eaa958","html_url":"https://github.com/SwitchbackTech/compass","commit_stats":null,"previous_names":["switchbacktech/compass"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SwitchbackTech/compass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwitchbackTech%2Fcompass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwitchbackTech%2Fcompass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwitchbackTech%2Fcompass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwitchbackTech%2Fcompass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SwitchbackTech","download_url":"https://codeload.github.com/SwitchbackTech/compass/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwitchbackTech%2Fcompass/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273566376,"owners_count":25128593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calendar","google","google-calendar","google-calendar-api","google-calendar-integration","google-calendar-synchronization","minimalist","nodejs","react","scheduling","shortcuts","time-management","typescript"],"created_at":"2024-09-07T02:02:54.000Z","updated_at":"2025-09-04T06:32:11.037Z","avatar_url":"https://github.com/SwitchbackTech.png","language":"TypeScript","funding_links":[],"categories":["Productivity","typescript"],"sub_categories":["Other"],"readme":"# 🧭 Compass Calendar\n\n_Compass is a weekly planner that integrates with Google Calendar._\n\u003cimg width=\"1494\" alt=\"Glimpsed\" src=\"https://github.com/user-attachments/assets/c0a22b46-f0eb-4b0c-8a7b-942f142947a5\" /\u003e\n\n---\n\n![Build](https://github.com/SwitchbackTech/compass/actions/workflows/test.yml/badge.svg)\n\n![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge\u0026logo=react\u0026logoColor=%2361DAFB) ![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white) ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026logo=node.js\u0026logoColor=white) ![Google Cloud](https://img.shields.io/badge/GoogleCloud-%234285F4.svg?style=for-the-badge\u0026logo=google-cloud\u0026logoColor=white) ![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white) ![Redux](\u003chttps://img.shields.io/badge/redux-%23593d88.svg?style=for-the-badge\u0026logo=redux\u0026logoColor=white![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge\u0026logo=express\u0026logoColor=%2361DAFB)\u003e) ![Socket.io](https://img.shields.io/badge/Socket.io-black?style=for-the-badge\u0026logo=socket.io\u0026badgeColor=010101)\n![Webpack](https://img.shields.io/badge/webpack-%238DD6F9.svg?style=for-the-badge\u0026logo=webpack\u0026logoColor=black) ![Yarn](https://img.shields.io/badge/yarn-%232C8EBB.svg?style=for-the-badge\u0026logo=yarn\u0026logoColor=white) ![Styled Components](https://img.shields.io/badge/styled--components-DB7093?style=for-the-badge\u0026logo=styled-components\u0026logoColor=white)\n![Jest](https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white)\n![Testing-Library](https://img.shields.io/badge/-TestingLibrary-%23E33332?style=for-the-badge\u0026logo=testing-library\u0026logoColor=white)\n\n## Features\n\nThe basics:\n\n- 🔄 Recurring events (limited support)\n- ⚡ Command palette\n- ⚡ Shortcuts\n- 🕒 Display events in local time\n- 🏷️ Tagging events\n- 🖍️ Resizing events\n- 🖍️ Duplicating events\n- 🖍️ Reordering tasks\n- 🖍️ Drag \u0026 drop\n\nThe unique stuff:\n\n- ✍️ Display your weekly goal\n- ☑️ Someday / Maybe task list\n- ⏩ Move an event forward/back with one click\n\nIntegrations:\n\n- 🔄 **Hosted** 2-way sync with Google Calendar\n- 🔄 **Local** 2-way sync with Google Calendar (Ngrok proxy)\n- 🔐 Google OAuth authentication\n- 🔐 User session management (Supertokens)\n- ✉️ Email capture (Kit)\n\n## Limitations\n\nThis calendar is a work in progress that might not have everything\nyou need yet, including:\n\n- Sub-calendars (only primary calendar is supported)\n- Sharing\n- Location\n- Reminders\n- Mobile app\n\n## Get Started\n\nAll the info you'd need to get started is at [docs.compasscalendar.com](https://docs.compasscalendar.com), including guides on how to install, test, build, deploy, and contribute.\n\n[![NextStep-TheDocs](https://github.com/user-attachments/assets/3a41c035-6058-4cb0-97d0-4a03388355aa)](https://docs.compasscalendar.com)\n\n## Next Steps\n\n✍️ [Sign Up for the Waitlist](https://www.compasscalendar.com/waitlist)\n\n🧭 [Use the App](https://app.compasscalendar.com) (Closed beta). Access to the **hosted** version of Compass is currently limited to emails that have been invited from our waitlist. This restriction is skipped when you're running the app **locally**.\n\n💬 [Join our Discord](https://www.discord.gg/H3DVMnKmUd)\n\n📃 [Read the Docs](https://docs.compasscalendar.com)\n\n👀 Follow us on [X (Twitter)](https://x.com/CompassCalendar), [YouTube](https://youtube.com/playlist?list=PLPQAVocXPdjmYaPM9MXzplcwgoXZ_yPiJ\u0026si=jssXj_g9kln8Iz_w), [LinkedIn](https://www.linkedin.com/company/compass-calendar)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSwitchbackTech%2Fcompass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSwitchbackTech%2Fcompass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSwitchbackTech%2Fcompass/lists"}