{"id":17096108,"url":"https://github.com/ega4432/weekly-office-cleaning-notification-bot","last_synced_at":"2026-05-09T03:31:30.239Z","repository":{"id":42005403,"uuid":"243987535","full_name":"ega4432/weekly-office-cleaning-notification-bot","owner":"ega4432","description":"A bot that sends a message to slack using Google Apps Script","archived":false,"fork":false,"pushed_at":"2022-04-19T05:40:03.000Z","size":22,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T17:49:29.768Z","etag":null,"topics":["clasp","gas","google-apps-script","google-calendar-api","google-spreadsheet-api","slack"],"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/ega4432.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2020-02-29T14:54:29.000Z","updated_at":"2022-04-19T05:40:05.000Z","dependencies_parsed_at":"2022-08-12T02:10:13.780Z","dependency_job_id":null,"html_url":"https://github.com/ega4432/weekly-office-cleaning-notification-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ega4432/weekly-office-cleaning-notification-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ega4432%2Fweekly-office-cleaning-notification-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ega4432%2Fweekly-office-cleaning-notification-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ega4432%2Fweekly-office-cleaning-notification-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ega4432%2Fweekly-office-cleaning-notification-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ega4432","download_url":"https://codeload.github.com/ega4432/weekly-office-cleaning-notification-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ega4432%2Fweekly-office-cleaning-notification-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000714,"owners_count":26082911,"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-10-09T02:00:07.460Z","response_time":59,"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":["clasp","gas","google-apps-script","google-calendar-api","google-spreadsheet-api","slack"],"created_at":"2024-10-14T14:44:39.510Z","updated_at":"2025-10-09T03:41:37.074Z","avatar_url":"https://github.com/ega4432.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# weekly-office-cleaning-notification-bot\n\n| [日本語](https://github.com/yossiee/weekly-office-cleaning-notification-bot/blob/master/README.md) | [英語](https://github.com/yossiee/weekly-office-cleaning-notification-bot/blob/master/README_EN.md) |\n| :---: | :---: |\n\n## 概要\n毎週月曜日にオフィスを掃除しますが、掃除当番グループが決まっており、グループは毎週順番に回していきます。\n今回作ったのは、今週どのグループが担当なのかを毎週時間になると slack に通知するボットを作成しました。\n\n\u003cimg alt=\"デモ\" width=\"300\" src=\"https://user-images.githubusercontent.com/38056766/75618359-506e5080-5bb0-11ea-8945-4710a729b51a.png\"\u003e\n\n## 依存ソフトウェア\n- Google Account\n- Git\n- Node/npm\n\n## アーキテクチャ\n- Google サービス\n    - Google Apps Script\n    - Google スプレッドシート\n    - Google カレンダー\n- Slack APIs\n    - [chat.postMessage](https://api.slack.com/methods/chat.postMessage)\n- ローカル開発環境\n    - [GitHub](https://github.com)\n    - [clasp](https://github.com/google/clasp)\n\n## 仕様\n1. Google スプレッドシートにマスタデータが格納してあります。\n2. データを取得して今週アサインされるグループに所属するユーザの slackID を取得します。\n3. Google calendar API 本日が祝日かどうか調べます。Google が「日本の祝日」を公開しているのでそれを利用しています。\n4. 本日が月曜日かつ祝日でない場合は、取得したユーザに対してメンションをつけたメッセージをチャンネルへ送信します。\n5. 最後に、スプレッドシートにデータを保存して処理を終了します。\n\n## `clasp` の使い方メモ\nclasp とは、ローカル環境で Google Apps Script を実行できるプラットフォームです。\u003cbr\u003e\n[公式ドキュメント](https://developers.google.com/apps-script/guides/clasp) はこちらをご参照下さい。\n\n```sh\n# npm パッケージをグローバルインストールします。\n$ npm install @google/clasp -g\n\n# ログイン\n$ clasp login\n# ブラウザが開きどの Google アカウントで認証するか聞かれるので利用するアカウントを選択します。\n# 認証に成功したら `~/.clasprc.json` にログイン情報が保存されます。\n\n# ログアウト\n$ clasp logout\n\n# プロジェクトを作成\n$ clasp create \u003cproject name\u003e --rootDir ./src\nCreate new script https://script.google.com/d/xxxxxxxxxxxxxxxxxxxx\nCloned 1 file.\n└─ appsscript.json\n\n# 作成したプロジェクトのエディタをブラウザで開きます。\n$ clasp open\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fega4432%2Fweekly-office-cleaning-notification-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fega4432%2Fweekly-office-cleaning-notification-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fega4432%2Fweekly-office-cleaning-notification-bot/lists"}