{"id":19107174,"url":"https://github.com/govtechsg/room-booking-bot","last_synced_at":"2025-06-30T10:33:47.369Z","repository":{"id":41775690,"uuid":"200981077","full_name":"GovTechSG/room-booking-bot","owner":"GovTechSG","description":"Slack port of butler-bot","archived":false,"fork":false,"pushed_at":"2022-12-11T01:14:12.000Z","size":1352,"stargazers_count":1,"open_issues_count":16,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-30T18:32:59.549Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GovTechSG.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-07T05:49:36.000Z","updated_at":"2021-08-30T09:21:12.000Z","dependencies_parsed_at":"2023-01-26T12:31:28.386Z","dependency_job_id":null,"html_url":"https://github.com/GovTechSG/room-booking-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GovTechSG/room-booking-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Froom-booking-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Froom-booking-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Froom-booking-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Froom-booking-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GovTechSG","download_url":"https://codeload.github.com/GovTechSG/room-booking-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Froom-booking-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262756349,"owners_count":23359506,"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","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":[],"created_at":"2024-11-09T04:11:32.110Z","updated_at":"2025-06-30T10:33:47.341Z","avatar_url":"https://github.com/GovTechSG.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Room Booking Bot\n\nA Bot for booking of meeting rooms in internal Slack Workspace.\n\n## Getting Started\nGrab dependencies\n```javascript\nnpm i\n```\n\nRun the bot\n```javascript\nnpm start\n```\n\n## Configurations\n\n### Create a Slack app\n\n1. Log into your workspae and create a Slack App [here](https://api.slack.com/apps) \n2. Add a Slash command (see below)\n3. Set Up Interactive Components (see below)\n4. Navigate to **Bot Users** to create a bot user\n5. Navigate to the **OAuth \u0026 Permissions** page and make sure the following scopes are pre-selected:\n    * `commands`\n    * `bot`\n5. Install the app to your workspace\n\n#### Slash Command Setting\n1. Click on Slash Commands in app setting\n2. Click the 'Create New Command' button with the following details:\n    * Command: `/book`\n    * Request URL: Your server URL + `/command`\n    * Short description: `A bot for booking of meeting rooms`\n    * Usage hint: `Book a room`\n\n#### Interactive Component Setting\n1. Click on Interactive Components in setting\n2. Put your server URL + `/slack/actions` in the Request URL field\n    * e.g. if you used ngrock, it would be something similar to `https://9e123bs8.ngrok.io/slack/actions`\n\n### Set Up Credentials\n1. Copy [.sample-env](.sample-env) to `.env` and replace with your own env variables\n    * The variables can be found either in the **OAuth \u0026 Permissions** or the **Basic Information** page\n 2. Create a folder `config` in the root directory\n\t * Copy [sample-CalendarConfig.js](sample-CalendarConfig.js) to `config/CalendarConfig.js` and [sample-Settings.js](sample-Settings.js) to `config/Settings.js`; then replace with your own variables\n\t \n\n### Set Up Google Calendar \n1. [Setup \u0026 grant permission to test google calendar, service account and get auth key](https://github.com/yuhong90/node-google-calendar/wiki#setup-service-accounts)\n2.  Download `google-api-key.json` once you have your service account set up; place it in `config` folder\n\n\n## Contributing\n\n* Step 1: Branch off from ```master``` and work on your feature or bugfix.\n* Step 2: Update the changelog.\n* Step 3: Create a pull request when you're done.\n\nReferences:\n* [Git branching strategy](http://nvie.com/posts/a-successful-git-branching-model/)\n* [Keeping a changelog](http://keepachangelog.com/)\n* [Semver](http://semver.org/)\n\n## Todo\n* [Feature] \n* [Improvement]\n\n## Credits\nThis Slack Bot is based off the original telegram bot [butler-bot](https://github.com/GovTechSG/butler-bot/).\n* Set up instructions for Slack App adapted from: [template-slash-command-and-dialogs](https://github.com/slackapi/template-slash-command-and-dialogs/blob/master/README.md)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgovtechsg%2Froom-booking-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgovtechsg%2Froom-booking-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgovtechsg%2Froom-booking-bot/lists"}