{"id":23627235,"url":"https://github.com/pyrox18/schedulerbot","last_synced_at":"2026-04-16T19:48:33.874Z","repository":{"id":25893972,"uuid":"146173897","full_name":"pyrox18/SchedulerBot","owner":"pyrox18","description":"A Discord bot for scheduling events","archived":false,"fork":false,"pushed_at":"2023-03-04T00:52:56.000Z","size":413,"stargazers_count":1,"open_issues_count":4,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-27T23:57:36.789Z","etag":null,"topics":["csharp","discord","discord-bot","dotnet","dotnet-core","dsharpplus"],"latest_commit_sha":null,"homepage":null,"language":"C#","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/pyrox18.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-26T11:15:34.000Z","updated_at":"2021-02-23T09:08:01.000Z","dependencies_parsed_at":"2023-01-14T03:38:05.151Z","dependency_job_id":null,"html_url":"https://github.com/pyrox18/SchedulerBot","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrox18%2FSchedulerBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrox18%2FSchedulerBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrox18%2FSchedulerBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrox18%2FSchedulerBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyrox18","download_url":"https://codeload.github.com/pyrox18/SchedulerBot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239539227,"owners_count":19655751,"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":["csharp","discord","discord-bot","dotnet","dotnet-core","dsharpplus"],"created_at":"2024-12-27T23:57:49.583Z","updated_at":"2025-11-07T21:30:29.316Z","avatar_url":"https://github.com/pyrox18.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SchedulerBot\n\nA Discord bot for scheduling events.\n\nThis bot uses the [DSharpPlus](https://dsharpplus.emzi0767.com/) library.\n\nThis codebase represents SchedulerBot version 2 and above, which was rewritten to work on top of the .NET Core platform. The previous (1.x) SchedulerBot codebase, which was written for Node.js, can be found at [this repository](https://github.com/pyrox18/schedulerbot-1.0). The previous codebase is no longer maintained, and is only present for display purposes.\n\n## Prerequisites\n\n- [Microsoft .NET Core 2.1](https://www.microsoft.com/net/download)\n- [PostgreSQL 10+](https://www.postgresql.org/download/)\n\n## Migrating from v1.0.x to v2.0\n\nA data migration tool is available for migrating data from a MongoDB database that stores data for SchedulerBot v1.0.x to a PostgreSQL database storing data for v2.0. See the readme in the `SchedulerBot.MigrationTool` project for further details.\n\n## Installation and Usage\n\nAll command examples given assume the use of a Bash shell.\n\n1. Clone the repository.\n\n```bash\n$ git clone https://github.com/pyrox18/SchedulerBot.git\n```\n\n2. Create a Discord Developer App with an app bot user at https://discordapp.com/developers/applications/me, and note the app bot user token to place in the configuration file.\n3. Ensure that a local PostgreSQL instance is running, and create a database called `schedulerbot`.\n4. The provided `appsettings.json` file in `SchedulerBot/SchedulerBot.Client` comes with default settings for the client to run. To override any of these settings, create an `appsettings.Development.json` file in `SchedulerBot/SchedulerBot.Client` with the key-value pairs that you want to override with the same hierarchy:\n\n```json\n{\n  \"Logging\": {\n    \"LogLevel\": {\n      \"Default\": \"Debug\"\n    }\n  },\n  \"ConnectionStrings\": {\n    \"SchedulerBotContext\": \"Server=localhost;Database=schedulerbot;Username=someuser;Password=abc123\"\n  },\n  \"Bot\": {\n    \"Token\": \"YOUR_BOT_TOKEN_HERE\"\n  }\n}\n```\n\nReplace `YOUR_BOT_TOKEN_HERE` with the app bot user token generated earlier.\n\n5. Restore the solution's dependencies.\n\n```bash\n$ cd SchedulerBot\n$ dotnet restore SchedulerBot.sln\n```\n\n6. Migrate the data model schema to the database.\n\n```bash\n$ cd SchedulerBot/SchedulerBot.Data\n$ ASPNETCORE_ENVIRONMENT=Development dotnet ef database update -s ../SchedulerBot.Client/SchedulerBot.Client.csproj\n```\n\n7. Build and run the `SchedulerBot.Client` project.\n\n```bash\n$ cd ../SchedulerBot.Client\n$ dotnet build\n$ cd bin/Debug/netcoreapp2.1\n$ ASPNETCORE_ENVIRONMENT=Development dotnet SchedulerBot.Client.dll\n```\n\nAlternatively, open the solution in Visual Studio and debug the `SchedulerBot.Client` project from there.\n\n8. Invite the bot to your server by generating an invite link at https://discordapi.com/permissions.html. At minimum, the bot requires permission to read, send and manage messages.\n\n## Docker Support\n\nThis project has support for Docker.\n\nTo build and run:\n\n```bash\n$ docker build . -t schedulerbot:dev\n$ docker run -e \"ASPNETCORE_ENVIRONMENT=Development\" -d schedulerbot:dev\n```\n\n## Production Configuration\n\nProduction application settings should be placed in a `appsettings.Production.json` file in the `SchedulerBot.Client` project directory. The contents are similar to the `appsettings.Development.json` file, with the addition of a section for providing the DSN to report errors to for the Sentry error reporting service.\n\n```json\n{\n  \"ConnectionStrings\": {\n    \"SchedulerBotContext\": \"Server=localhost;Database=schedulerbot;Username=someuser;Password=abc123\"\n  },\n  \"Bot\": {\n    \"Token\": \"YOUR_BOT_TOKEN_HERE\"\n  }\n  \"Raven\": {\n  \t\"DSN\": \"https://\u003ckey\u003e@sentry.io/\u003cproject\u003e\"\n  }\n}\n```\n\nAlternatively, these settings can be set with environment variables when running the client. Separate hierarchical keys and array index keys with the `__` (double underscore) separator.\n\n```bash\n$ ASPNETCORE_ENVIRONMENT=Production Bot__Token=YOUR_BOT_TOKEN_HERE Prefixes__0=++ Raven__DSN=https://abc@sentry.io/bot dotnet SchedulerBot.Client.dll\n```\n\n## License\n\nThe SchedulerBot source code is distributed under the GNU General Public License v3.0.\n\n## Contributing\n\nRefer to the CONTRIBUTING.md file for more information on how to contribute to the development of SchedulerBot.\n\n## Discussions\n\nDiscuss about the development of SchedulerBot on the #development channel of the [SchedulerBot](https://discord.gg/CRxRn5X) support server.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyrox18%2Fschedulerbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyrox18%2Fschedulerbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyrox18%2Fschedulerbot/lists"}