{"id":31847923,"url":"https://github.com/wireapp/reminders-bot","last_synced_at":"2026-02-17T03:35:18.438Z","repository":{"id":295011869,"uuid":"751262482","full_name":"wireapp/reminders-bot","owner":"wireapp","description":"A bot to remind you about important things.","archived":false,"fork":false,"pushed_at":"2025-02-13T12:46:44.000Z","size":333,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2026-02-01T10:38:25.573Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wireapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-02-01T08:59:28.000Z","updated_at":"2025-05-28T14:31:40.000Z","dependencies_parsed_at":"2025-05-26T06:34:31.685Z","dependency_job_id":null,"html_url":"https://github.com/wireapp/reminders-bot","commit_stats":null,"previous_names":["wireapp/reminders-bot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wireapp/reminders-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Freminders-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Freminders-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Freminders-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Freminders-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wireapp","download_url":"https://codeload.github.com/wireapp/reminders-bot/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Freminders-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29532437,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T03:01:11.216Z","status":"ssl_error","status_checked_at":"2026-02-17T03:00:31.803Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-10-12T09:58:32.680Z","updated_at":"2026-02-17T03:35:18.400Z","avatar_url":"https://github.com/wireapp.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wire Reminders Bot\n\nThis is a bot that can create reminders for you and your group, and send you a message when the reminder is due.\n\n\u003e [!IMPORTANT]  \n\u003e As of now, the bot only supports a maximum of 3 active reminders per group, and recurrent reminders are supported only up to 5 repetitions.\n\n## Getting started\n\n### The basics of `/remind` command:\n\n- `/remind to \u003c\"what\"\u003e \u003c\"when\"\u003e`: Sets a reminder for the group conversation, the reminder will be sent to the group when it's due.\n\n### `\"When\"` syntax or setting the time for the reminder:\n\n- By default, all reminders should use 24 hrs format, including minutes.\n- If the reminder is recurrent or to happen relative to today, you must add the time in the format `\u003chh:mm\u003e \"21:15\"`.\n\n\u003e [!NOTE]  \n\u003e You can set reminders for the entire group, but not for someone else (how rude would that be?).\n\u003e\n\u003e You can also set reminders to repeat by the day (ex. every Monday), repetitions by time are not supported (ex. every hour).\n\n### Examples:\n\n|                    | Command      | What                                           | When                      |\n|--------------------|--------------|------------------------------------------------|---------------------------|\n| one time reminder  | `/remind to` | `\"Fill in your invoices by end of day\"`        | `\"tomorrow at 17:30\"`     |\n| one time reminder  | `/remind to` | `\"Reply to HR email\"`                          | `\"in 10 minutes\"`         |\n| one time reminder  | `/remind to` | `\"Travel back in time to not develop the bot\"` | `\"11/11/2150\"`            |\n| recurrent reminder | `/remind to` | `\"Join the daily stand-up\"`                    | `\"every day at 10:00\"`    |\n| recurrent reminder | `/remind to` | `\"Empty the unread emails\"`                    | `\"every friday at 17:00\"` |\n\n\u003e [!TIP]  \n\u003e You can set reminders for yourself. To do so, you can use the commands in a private conversation, a 1:1 with the bot.\n\n### Other helpful commands:\n\n- `/remind help` (displays help about command usage)\n- `/remind list` (list the active reminders set in the conversation)\n- `/remind delete \u003creminder-identifier\u003e` (deletes the target reminder, the identifier can be obtained from the list\n  command)\n\n## Technical details\n\n### Bot Architecture\n\nWe are using a DDD-like architecture, but without the burden of defining a full DDD model (involving domains \"experts\"\nand so on). The idea is to have a clear separation of concerns between the different layers of the application.\nSo each layer does the following:\n\n- **Application**: Exposes the REST API and handles the HTTP requests, it's what the clients see.\n- **Domain**: Contains the business logic, domain core entities, this layer is \"clean\" in other words, doesn't have any\n  dependency on other layers or frameworks. To access the logic, we provide UseCases, so we can group them (kind of\n  services + aggregates in DDD)\n- **Infrastructure**: Contains the implementation of the domain repositories, and other external dependencies, like\n  databases, queues technologies, framework configurations, etc.\n\n\u003cimg src=\"https://imgpile.com/images/C7Q2Gj.png\" width=\"800\"/\u003e\n\n**Note**: To enforce layer dependency, can be split into different gradle modules, but for now, we are keeping it\nsimple.\n\n### Bot Framework\n\nThis project uses Quarkus, the Supersonic Subatomic Java Framework.\n\nIf you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .\n\n## Running the application in dev mode\n\nYou can run your application in dev mode that enables live coding using:\n```shell script\n./gradlew quarkusDev\n```\n\n\u003e **_NOTE:_**  Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.\n\n## Packaging and running the application\n\nThe application can be packaged using:\n```shell script\n./gradlew build\n```\nIt produces the `quarkus-run.jar` file in the `build/quarkus-app/` directory.\nBe aware that it’s not an _über-jar_ as the dependencies are copied into the `build/quarkus-app/lib/` directory.\n\nThe application is now runnable using `java -jar build/quarkus-app/quarkus-run.jar`.\n\nIf you want to build an _über-jar_, execute the following command:\n```shell script\n./gradlew build -Dquarkus.package.type=uber-jar\n```\n\nThe application, packaged as an _über-jar_, is now runnable using `java -jar build/*-runner.jar`.\n\n## Creating a native executable\n\nYou can create a native executable using: \n```shell script\n./gradlew build -Dquarkus.package.type=native\n```\n\nOr, if you don't have GraalVM installed, you can run the native executable build in a container using: \n```shell script\n./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true\n```\n\nYou can then execute your native executable with: `./build/reminders-bots-1.0.0-SNAPSHOT-runner`\n\nIf you want to learn more about building native executables, please consult https://quarkus.io/guides/gradle-tooling.\n\n## Related Guides\n\n- Flyway ([guide](https://quarkus.io/guides/flyway)): Handle your database schema migrations\n- Quartz ([guide](https://quarkus.io/guides/quartz)): Schedule clustered tasks with Quartz\n- Kotlin ([guide](https://quarkus.io/guides/kotlin)): Write your services in Kotlin\n- RESTEasy Classic ([guide](https://quarkus.io/guides/resteasy)): REST endpoint framework implementing Jakarta REST and more\n- JDBC Driver - PostgreSQL ([guide](https://quarkus.io/guides/datasource)): Connect to the PostgreSQL database via JDBC\n\n## Provided Code\n\n### RESTEasy JAX-RS\n\nEasily start your RESTful Web Services\n\n[Related guide section...](https://quarkus.io/guides/getting-started#the-jax-rs-resources)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwireapp%2Freminders-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwireapp%2Freminders-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwireapp%2Freminders-bot/lists"}