{"id":15108952,"url":"https://github.com/leits/meetingbar","last_synced_at":"2026-10-18T23:48:20.409Z","repository":{"id":37833915,"uuid":"262013713","full_name":"leits/MeetingBar","owner":"leits","description":"🇺🇦 Your meetings at your fingertips in the macOS menu bar ","archived":false,"fork":false,"pushed_at":"2026-10-16T08:20:05.000Z","size":21789,"stargazers_count":5372,"open_issues_count":133,"forks_count":300,"subscribers_count":23,"default_branch":"master","last_synced_at":"2026-10-16T18:27:40.638Z","etag":null,"topics":["apple","calendar","google-calendar","google-meet","macos","macos-calendar","meetings","microsoft-teams","productivity","swift","zoom"],"latest_commit_sha":null,"homepage":"https://meetingbar.app","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leits.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"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},"funding":{"patreon":"meetingbar","custom":"buymeacoffee.com/meetingbar"}},"created_at":"2020-05-07T09:58:08.000Z","updated_at":"2026-10-16T08:20:12.000Z","dependencies_parsed_at":"2024-02-03T16:25:40.671Z","dependency_job_id":"fab354fd-c81b-4cda-a67c-c47ab09c4b61","html_url":"https://github.com/leits/MeetingBar","commit_stats":null,"previous_names":[],"tags_count":72,"template":false,"template_full_name":null,"purl":"pkg:github/leits/MeetingBar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leits%2FMeetingBar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leits%2FMeetingBar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leits%2FMeetingBar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leits%2FMeetingBar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leits","download_url":"https://codeload.github.com/leits/MeetingBar/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leits%2FMeetingBar/sbom","scorecard":{"id":583561,"data":{"date":"2025-08-11","repo":{"name":"github.com/leits/MeetingBar","commit":"b82a797c83efaf7e5b90b8486221f004cbac2bc9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.6,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/codacy.yml:54","Info: jobLevel 'actions' permission set to 'read': .github/workflows/codacy.yml:56","Info: topLevel 'contents' permission set to 'read': .github/workflows/codacy.yml:49","Warn: no topLevel permission defined: .github/workflows/main.yml:1","Warn: no topLevel permission defined: .github/workflows/swiftlint.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codacy.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/codacy.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codacy.yml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/codacy.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:91: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/swiftlint.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/swiftlint.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/swiftlint.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/leits/MeetingBar/swiftlint.yml/master?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   5 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v4.11.6 not signed: https://api.github.com/repos/leits/MeetingBar/releases/225205110","Warn: release artifact v4.11.5 not signed: https://api.github.com/repos/leits/MeetingBar/releases/223873714","Warn: release artifact v4.11.4 not signed: https://api.github.com/repos/leits/MeetingBar/releases/223168827","Warn: release artifact v4.11.3 not signed: https://api.github.com/repos/leits/MeetingBar/releases/222907089","Warn: release artifact v4.11.2 not signed: https://api.github.com/repos/leits/MeetingBar/releases/221688009","Warn: release artifact v4.11.6 does not have provenance: https://api.github.com/repos/leits/MeetingBar/releases/225205110","Warn: release artifact v4.11.5 does not have provenance: https://api.github.com/repos/leits/MeetingBar/releases/223873714","Warn: release artifact v4.11.4 does not have provenance: https://api.github.com/repos/leits/MeetingBar/releases/223168827","Warn: release artifact v4.11.3 does not have provenance: https://api.github.com/repos/leits/MeetingBar/releases/222907089","Warn: release artifact v4.11.2 does not have provenance: https://api.github.com/repos/leits/MeetingBar/releases/221688009"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T19:50:55.526Z","repository_id":37833915,"created_at":"2025-08-20T19:50:55.526Z","updated_at":"2025-08-20T19:50:55.526Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38343425,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-18T02:00:06.448Z","response_time":63,"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":["apple","calendar","google-calendar","google-meet","macos","macos-calendar","meetings","microsoft-teams","productivity","swift","zoom"],"created_at":"2024-09-25T22:44:10.606Z","updated_at":"2026-10-18T23:48:20.405Z","avatar_url":"https://github.com/leits.png","language":"Swift","funding_links":["https://patreon.com/meetingbar","buymeacoffee.com/meetingbar","https://www.buymeacoffee.com/meetingbar","https://www.patreon.com/meetingbar"],"categories":[],"sub_categories":[],"readme":"[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner-direct-single.svg)](https://stand-with-ukraine.pp.ua)\n\n[![GitHub license](https://img.shields.io/github/license/leits/MeetingBar.svg)](https://github.com/leits/MeetingBar/blob/master/LICENSE)\n[![Translation state](https://hosted.weblate.org/widgets/meetingbar/-/app/svg-badge.svg)](https://hosted.weblate.org/engage/meetingbar/)\n[![Github all releases](https://img.shields.io/github/downloads/leits/MeetingBar/total.svg)](https://github.com/leits/MeetingBar/releases/)\n[![Made in Ukraine](https://img.shields.io/badge/made_in-ukraine-ffd700.svg?labelColor=0057b7)](https://stand-with-ukraine.pp.ua)\n\n**MeetingBar** is a lightweight macOS menu-bar app that shows your current or next calendar meeting and lets you join it in one click.\n\nIt keeps meetings visible in the status bar, detects meeting links from calendar events, supports macOS Calendar and Google Calendar, and works with 50+ meeting services including Google Meet, Zoom, Microsoft Teams, Webex, and Discord.\n\nMeetingBar is free, open source, and privacy-respecting.\n\n\u003cimg src=\"https://github.com/leits/MeetingBar/blob/master/screenshot.png\" width=\"700\"\u003e\n\n\u003ca href=\"https://www.producthunt.com/posts/meetingbar?utm_source=badge-featured\u0026utm_medium=badge\u0026utm_souce=badge-meetingbar\" target=\"_blank\"\u003e\u003cimg src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=203807\u0026theme=light\" alt=\"MeetingBar - Join your next meeting from your menu bar | Product Hunt Embed\" style=\"width: 250px; height: 54px;\" width=\"250px\" height=\"54px\" /\u003e\u003c/a\u003e\n\n[![Download on the Mac App Store](mas_badge.png)](https://apps.apple.com/us/app/id1532419400)\n\n\u003ca href=\"https://www.buymeacoffee.com/meetingbar\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n## Install\n\nMeetingBar requires **macOS 12.0 or later**.\n\n### Mac App Store\n\nDownload MeetingBar from the [Mac App Store](https://apps.apple.com/us/app/id1532419400).\n\n### Homebrew\n\n```bash\nbrew install --cask meetingbar\n```\n\n### Manual download\n\nDownload the latest DMG from the [releases page](https://github.com/leits/MeetingBar/releases/latest/download/MeetingBar.dmg).\n\n## Calendar providers\n\nMeetingBar works with:\n\n* **macOS Calendar**: use any calendar account synchronized with Calendar.app, including iCloud, Google, Exchange, Office 365, Yahoo, AOL, and others.\n* **Google Calendar**: connect Google Calendar directly from MeetingBar.\n\nAfter installation, open MeetingBar and go through onboarding to choose your calendar source and preferences.\n\n## Features\n\n### See what is next\n\n* Show the current or next meeting in the macOS status bar.\n* Display meeting title, time, countdown, icon, or meeting service.\n* Show upcoming events from today and tomorrow in the menu.\n* Filter all-day, declined, tentative, pending, or linkless events.\n* Shorten long meeting titles to keep the menu bar readable.\n\n### Join meetings faster\n\n* Join the current or next online meeting with one click.\n* Join the nearest meeting with a global keyboard shortcut.\n* Create ad-hoc meetings from your preferred meeting service.\n* Open meeting links in a preferred browser or native app per service.\n* Open event details in macOS Calendar or Fantastical.\n\n### Get meeting reminders\n\n* Receive macOS notifications before meetings.\n* Use full-screen reminders for important meeting starts.\n* Dismiss meeting notifications when you no longer need them.\n* Configure reminders around your own workflow.\n\n### Customize and automate\n\n* Bookmark recurring meetings and access them quickly.\n* Launch MeetingBar automatically at login.\n* Use Shortcuts and AppleScript integrations.\n* Run custom AppleScript, for example to pause music when joining a meeting.\n\n## Supported meeting services\n\nMeetingBar supports more than 50 meeting services, including:\n\nGoogle Meet, Zoom, Microsoft Teams, Webex, GoToMeeting, Skype, Discord, Jitsi, RingCentral, BlueJeans, Whereby, Slack Huddle, FaceTime, LiveKit Meet, Meetecho, StreamYard, and many others.\n\nSee the [full supported services list](https://github.com/leits/MeetingBar/discussions/108).\n\n## Privacy\n\nMeetingBar does not collect personal data.\n\nCalendar data is used by the app to show your meetings, detect meeting links, and open the correct meeting action.\n\n## Troubleshooting\n\nIf meetings do not appear, links are not detected, or Google Calendar needs reconnecting, check the [FAQ](../../wiki/FAQ), install the [latest release](https://github.com/leits/MeetingBar/releases/latest), or [open an issue](https://github.com/leits/MeetingBar/issues/new).\n\nUseful details for bug reports:\n\n* MeetingBar version\n* macOS version\n* Calendar provider: macOS Calendar or Google Calendar\n* Meeting service: Zoom, Google Meet, Microsoft Teams, Webex, etc.\n* Whether the event is recurring or one-off\n* Whether the event is accepted, tentative, pending, declined, or canceled\n* Sanitized event title, description, location, and URL fields\n* Whether manual refresh changes the behavior\n* Screenshots or logs when available\n\n## Release history\n\nRead the [GitHub Releases](https://github.com/leits/MeetingBar/releases) for version highlights, fixes and contributor credits. The app also provides a short **What's New** summary for major updates.\n\n## Third-party integrations\n\n* [Raycast commands](https://github.com/raycast/script-commands/tree/master/commands#meetingbar)\n\n## Contributing\n\nMeetingBar is open source and welcomes focused fixes, meeting service integrations, translations, reliability improvements, and documentation updates.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n## Support the project\n\nMeetingBar is free and community-supported.\n\nYou can support development through [Patreon](https://www.patreon.com/meetingbar), in-app purchases, or [Buy Me a Coffee](https://www.buymeacoffee.com/meetingbar).\n\n## Credits\n\nMeetingBar is stable and in active development by [leits](https://github.com/leits). Written in Swift 6.\n\nMeetingBar also uses these resources:\n\n* [KeyboardShortcuts](https://github.com/sindresorhus/KeyboardShortcuts) for managing global keyboard shortcuts\n* [Defaults](https://github.com/sindresorhus/Defaults) for managing user settings\n* [LaunchAtLogin](https://github.com/sindresorhus/LaunchAtLogin) for launch-at-login integration\n* [AppAuth-iOS](https://github.com/openid/AppAuth-iOS) for Google Calendar OAuth\n\nApp logo made by [Miroslav Rajkovic](https://www.rajkovic.co/).\n\nIf you encounter any bugs or have a feature request, [open an issue](https://github.com/leits/MeetingBar/issues/new).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleits%2Fmeetingbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleits%2Fmeetingbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleits%2Fmeetingbar/lists"}