[
  {
    "path": ".github/actions/get-events-action/Dockerfile",
    "content": "FROM python:3.12\n\nCOPY entrypoint.sh /entrypoint.sh\n\nENTRYPOINT [\"/entrypoint.sh\"]\n"
  },
  {
    "path": ".github/actions/get-events-action/action.yml",
    "content": "name: \"Get events\"\ndescription: \"Get latest events and raise a PR\"\ninputs:\n  crawler-name: # id of input\n    description: \"Crawler to run\"\n    required: true\n    default: \"PyConCrawler\"\nruns:\n  using: \"docker\"\n  image: \"Dockerfile\"\n  args:\n    - ${{ inputs.crawler-name }}\n"
  },
  {
    "path": ".github/actions/get-events-action/entrypoint.sh",
    "content": "#!/bin/sh -l\n\npython -m pip install \".[all]\"\n\npython -m conrad run crawler $1\n\nFILENAME=\"data/`echo $1 | awk '{print tolower($0)}' | sed -e 's/crawler//g'`.json\"\npython -m conrad import -f $FILENAME\n"
  },
  {
    "path": ".github/workflows/main.yml",
    "content": "name: Get events\non:\n  schedule:\n    - cron: \"0 0 * * 1,4\"\n  workflow_dispatch:\n\njobs:\n  get_events:\n    name: Get events\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - name: Save google service account credentials\n        shell: bash\n        env:\n          GOOGLE_SERVICE_ACCOUNT_CREDENTIALS: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_CREDENTIALS }}\n        run: 'echo \"$GOOGLE_SERVICE_ACCOUNT_CREDENTIALS\" > google_service_account_credentials.json'\n      - id: python\n        name: Get Python events\n        uses: ./.github/actions/get-events-action\n        with:\n          crawler-name: \"Python\"\n      - id: pycon\n        name: Get PyCon events\n        uses: ./.github/actions/get-events-action\n        with:\n          crawler-name: \"PyCon\"\n      - id: pydata\n        name: Get PyData events\n        uses: ./.github/actions/get-events-action\n        with:\n          crawler-name: \"PyData\"\n      - id: confs_tech\n        name: Get confs.tech events\n        uses: ./.github/actions/get-events-action\n        with:\n          crawler-name: \"ConfsTech\"\n      - name: Create pull request\n        uses: peter-evans/create-pull-request@v3\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          title: \"Update events list\"\n          body: Here's the latest event list!\n          commit-message: Update events list\n          branch: \"update-events\"\n          base: master\n"
  },
  {
    "path": ".gitignore",
    "content": "# VS Code\n.vscode/\n\n# Database\n*conrad.db\n\n# Secrets\n*credentials.json\n*token.pickle\n*google_service_account_credentials.json\n\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n.hypothesis/\n.pytest_cache/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# pyenv\n.python-version\n\n# celery beat schedule file\ncelerybeat-schedule\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n"
  },
  {
    "path": ".readthedocs.yml",
    "content": "# .readthedocs.yml\n# Read the Docs configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details\n\n# Required\nversion: 2\n\n# Build documentation in the docs/ directory with Sphinx\nsphinx:\n  configuration: docs/conf.py\n\n# Build documentation with MkDocs\n#mkdocs:\n#  configuration: mkdocs.yml\n\n# Optionally build your docs in additional formats such as PDF\nformats:\n  - pdf\n\n# Optionally set the version of Python and requirements required to build your docs\npython:\n  version: 3.8\n  install:\n    - method: pip\n      path: .\n      extra_requirements:\n        - dev\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "Be cordial or be on your way. --Kenneth Reitz\n\nhttps://www.kennethreitz.org/essays/be-cordial-or-be-on-your-way\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributor's Guide\n\nIf you're reading this, you're probably looking to contribute to conrad. *Time is the only real currency*, and the fact that you're considering spending some here is *very* generous of you. Thank you very much!\n\nThis document will help you get started with contributing code, testing (future) and filing issues. If you have any questions, feel free to reach out to [Vinayak Mehta](https://vinayak-mehta.github.io), the author and maintainer.\n\n## Code Of Conduct\n\nThe following quote sums up the **Code Of Conduct**.\n\n   > Be cordial or be on your way. --Kenneth Reitz\n\nAs the [Requests Code Of Conduct](https://github.com/psf/requests/blob/master/CODE_OF_CONDUCT.md) states, **all contributions are welcome**, as long as everyone involved is treated with respect.\n\n## Your first contribution\n\nA great way to start contributing to conrad is to pick an issue with the [good first issue](https://github.com/vinayak-mehta/conrad/labels/good%20first%20issue) label. If you're unable to find a good first issue, feel free to contact the maintainer.\n\n## Setting up a development environment\n\nTo install the dependencies needed for development, you can use pip:\n\n<pre>\n$ pip install conference-radar[dev]\n</pre>\n\nAlternatively, you can clone the project repository, and install using pip:\n\n<pre>\n$ pip install \".[dev]\"\n</pre>\n\n## Pull Requests\n\n### Submit a pull request\n\nThe preferred workflow for contributing to conrad is to fork the [project repository](https://github.com/vinayak-mehta/conrad) on GitHub, clone, develop on a branch and then finally submit a pull request. Here are the steps:\n\n1. Fork the project repository. Click on the ‘Fork’ button near the top of the page. This creates a copy of the code under your account on the GitHub.\n\n2. Clone your fork of conrad from your GitHub account:\n\n<pre>\n$ git clone https://www.github.com/[username]/conrad\n</pre>\n\n3. Create a branch to hold your changes:\n\n<pre>\n$ git checkout -b my-feature\n</pre>\n\nAlways branch out from `master` to work on your contribution. It's good practice to never work on the `master` branch!\n\n**Protip: `git stash` is a great way to save the work that you haven't committed yet, to move between branches.**\n\n4. Work on your contribution. Add changed files using `git add` and then `git commit` them:\n\n<pre>\n$ git add modified_files\n$ git commit\n</pre>\n\n5. Finally, push them to your GitHub fork:\n\n<pre>\n$ git push -u origin my-feature\n</pre>\n\nNow it's time to go to the your fork of conrad and create a pull request! You can [follow these instructions](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) to do this.\n\n### Work on your pull request\n\nIt is recommended that your pull request complies with the following rules:\n\n- Make sure your code follows [pep8](http://pep8.org). You should [blacken](https://github.com/psf/black) your code.\n\n- Make sure your commit messages follow [the seven rules of a great git commit message](https://chris.beams.io/posts/git-commit/):\n    - Separate subject from body with a blank line\n    - Limit the subject line to 50 characters\n    - Capitalize the subject line\n    - Do not end the subject line with a period\n    - Use the imperative mood in the subject line\n    - Wrap the body at 72 characters\n    - Use the body to explain what and why vs. how\n\n- Please prefix the title of your pull request with [MRG] (Ready for Merge), if the contribution is complete and ready for a detailed review. An incomplete pull request's title should be prefixed with [WIP] (to indicate a work in progress), and changed to [MRG] when it's complete. A good [task list](https://blog.github.com/2013-01-09-task-lists-in-gfm-issues-pulls-comments/) in the PR description will ensure that other people get a better idea of what it proposes to do, which will also increase collaboration.\n\n- If contributing new functionality, make sure that you add a unit test for it, while making sure that all previous tests pass. conrad uses [pytest](https://docs.pytest.org/en/latest/) for testing (future). Tests can be run using:\n\n<pre>\n$ python setup.py test\n</pre>\n\n## Filing Issues\n\n[GitHub issues](https://github.com/vinayak-mehta/conrad/issues) are used to keep track of all issues and pull requests. Before opening an issue (which asks a question or reports a bug), please use GitHub search to look for existing issues (both open and closed) that may be similar.\n\n### Bug Reports\n\nIn bug reports, make sure you include:\n\n- Your operating system type and Python version:\n\n<pre>\nimport platform; print(platform.platform())\nimport sys; print('Python', sys.version)\n</pre>\n\n- The complete traceback. Just adding the exception message or a part of the traceback won't help the maintainer fix your issue sooner.\n"
  },
  {
    "path": "HISTORY.md",
    "content": "Release History\n===============\n\nmaster\n------\n\n0.10.2 (2024-12-22)\n-------------------\n\n* Minor fixes.\n\n\n0.10.1 (2021-08-01)\n-------------------\n\n* Show grid on table and hide state from output.\n\n0.10.0 (2021-08-01)\n-------------------\n\n**Improvements**\n\n* [#203](https://github.com/vinayak-mehta/conrad/pull/203) Add rich tables.\n\n**Bugfixes**\n\n* Fix reminder deletion bug on auto refresh.\n\n0.9.1 (2021-06-24)\n------------------\n\n**Bugfixes**\n\n* Fix `ImportError` caused by missing crawl requirements.\n\n0.9.0 (2021-06-21)\n------------------\n\n**Improvements**\n\n* Add `generate` and `run` commands to make crawler addition easy.\n\n0.8.0 (2020-08-01)\n------------------\n\n**Bugfixes**\n\n* New release because 0.7.1 doesn't show up as latest on PyPI.\n\n0.7.1 (2020-08-01)\n------------------\n\n**Bugfixes**\n\n* [#147](https://github.com/vinayak-mehta/conrad/issues/147) conrad show throws sqlalchemy.exc.OperationalError on upgrading to 0.7.0. [83f4e3b](https://github.com/vinayak-mehta/conrad/commit/83f4e3b4ebaa0be581418039dfcbb5ce89327194) by Vinayak Mehta.\n\n0.7.0 (2020-08-01)\n------------------\n\n**Improvements**\n\n* [#138](https://github.com/vinayak-mehta/conrad/issues/138) Add crawler for [Python events calendar](https://wiki.python.org/moin/PythonEventsCalendar). [#139](https://github.com/vinayak-mehta/conrad/pull/139) by Vinayak Mehta.\n* [#142](https://github.com/vinayak-mehta/conrad/issues/142) Add support for multiple event schema versions. [#143](https://github.com/vinayak-mehta/conrad/pull/143) by Vinayak Mehta.\n* [#37](https://github.com/vinayak-mehta/conrad/issues/37) Add nominatim geocoder util to standardize location. [#102](https://github.com/vinayak-mehta/conrad/pull/102) by [Sangarshanan](https://github.com/Sangarshanan).\n* [#36](https://github.com/vinayak-mehta/conrad/issues/36) Add check for new conrad version. [#61](https://github.com/vinayak-mehta/conrad/pull/61) by [Abhi Baireddy](https://github.com/abhi-baireddy) and Vinayak Mehta.\n* Add `--kind` filter for the `show` command. [#137](https://github.com/vinayak-mehta/conrad/pull/137) by Vinayak Mehta.\n* [d3db41b](https://github.com/vinayak-mehta/conrad/commit/d3db41b777ab5a0b3d6734bbde33865842304854) Update .readthedocs.yml and remove requirements.txt\n* Change auto-refresh interval from 1 day to 1 week.\n\n0.6.2 (2020-07-28)\n------------------\n\n* Unpin requirements.\n\n0.6.1 (2020-07-10)\n------------------\n\n* Add py38 trove classifier.\n\n0.6.0 (2020-07-10)\n------------------\n\n**Improvements**\n\n* [#46](https://github.com/vinayak-mehta/conrad/issues/46) Highlight events on conrad show for which reminders have been set. [225972d](https://github.com/vinayak-mehta/conrad/commit/225972d4ca505832cdcb2009b2c81cd0588d1532) by Vinayak Mehta.\n\n0.5.0 (2020-07-09)\n------------------\n\n**Improvements**\n\n* Add `--id` filter for the `show` command.\n* Automatically set cfp flag to False if date has passed and don't import old events in the `import` command.\n\n0.4.0 (2020-05-24)\n------------------\n\n**Improvements**\n\n* Replace `.format` with f-strings! [5d5a917](https://github.com/vinayak-mehta/conrad/commit/5d5a9172231602427d7a959a7f3bbd3508d62a9a)\n* Use [click.get_app_dir](https://github.com/vinayak-mehta/conrad/commit/6f2da95d85a7624568ae47cfe3348adca15629bf) for `CONRAD_HOME`.\n* Fix days left [comparison operators](https://github.com/vinayak-mehta/conrad/commit/b4ffc0d54ded8dd9ae94ecd9202715512264583b).\n* [#100](https://github.com/vinayak-mehta/conrad/issues/100) Use start date when cfp date has passed. [5d5a917](https://github.com/vinayak-mehta/conrad/commit/5d5a9172231602427d7a959a7f3bbd3508d62a9a) by Vinayak Mehta.\n* [#85](https://github.com/vinayak-mehta/conrad/issues/85) Add crawler for awesome-italy-events. [#91](https://github.com/vinayak-mehta/conrad/pull/91) by Vinayak Mehta.\n\n0.3.2 (2019-11-08)\n------------------\n\n* Json dump event tags.\n\n0.3.1 (2019-11-08)\n------------------\n\n**Bugfixes**\n\n* [#81](https://github.com/vinayak-mehta/conrad/issues/81) FileNotFoundError on first conrad show. [#82](https://github.com/vinayak-mehta/conrad/pull/82) by Vinayak Mehta.\n\n0.3.0 (2019-11-08)\n------------------\n\n**Improvements**\n\n* [#10](https://github.com/vinayak-mehta/conrad/issues/10), [#33](https://github.com/vinayak-mehta/conrad/issues/33), [#58](https://github.com/vinayak-mehta/conrad/issues/58) Add auto refresh. [#78](https://github.com/vinayak-mehta/conrad/pull/78) by Vinayak Mehta.\n* Remove deprecated fields. [#77](https://github.com/vinayak-mehta/conrad/pull/77) by Vinayak Mehta.\n* Update PyCon Crawler. [#73](https://github.com/vinayak-mehta/conrad/pull/73) by Vinayak Mehta.\n* Enable GitHub Actions and Add BaseCrawler. [#70](https://github.com/vinayak-mehta/conrad/pull/70) by Vinayak Mehta.\n* [#11](https://github.com/vinayak-mehta/conrad/issues/11) Upgrade duplicate finding logic with edit distance. [#68](https://github.com/vinayak-mehta/conrad/pull/68) by [Josemy Duarte](https://github.com/JosemyDuarte).\n* [#15](https://github.com/vinayak-mehta/conrad/issues/15) Add PyData crawler. [#49](https://github.com/vinayak-mehta/conrad/pull/49) by [Cristhian Motoche](https://github.com/CristhianMotoche).\n\n**Bugfixes**\n\n* [#66](https://github.com/vinayak-mehta/conrad/pull/57) Initialize conrad context before executing remind. [#67](https://github.com/vinayak-mehta/conrad/pull/67) by [Josemy Duarte](https://github.com/JosemyDuarte).\n\n**Documentation**\n\n* Add docs for extending BaseCrawler.\n\n0.2.0 (2019-10-31)\n------------------\n\n**Improvements**\n\n* Remove prettytable and use cli_helpers. [#57](https://github.com/vinayak-mehta/conrad/pull/57) by Vinayak Mehta.\n* [#44](https://github.com/vinayak-mehta/conrad/issues/44) Add id column to conrad remind output. [#47](https://github.com/vinayak-mehta/conrad/pull/47) by [Shalini Sreedhar](https://github.com/shalini-s).\n* [#23](https://github.com/vinayak-mehta/conrad/issues/23) Add help text to all commands. [#30](https://github.com/vinayak-mehta/conrad/pull/30) by [Josemy Duarte](https://github.com/JosemyDuarte).\n* Enable [continous quality](https://deepsource.io/gh/vinayak-mehta/conrad/?ref=repository-badge) by DeepSource.\n* Add more conferences.\n\n0.1.2 (2019-10-28)\n------------------\n\n**Improvements**\n\n* Add more conferences. [#26](https://github.com/vinayak-mehta/conrad/pull/26) by [Sangarshanan](https://github.com/Sangarshanan).\n\n**Bugfixes**\n\n* [#8](https://github.com/vinayak-mehta/conrad/issues/8) Error in opening database before first refresh. [#14](https://github.com/vinayak-mehta/conrad/pull/14) by Vinayak Mehta.\n\n0.1.1 (2019-10-28)\n------------------\n\n**Documentation**\n\n* Add README fixes.\n\n0.1.0 (2019-10-28)\n------------------\n\n* Birth!\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright 2021 Vinayak Mehta\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "README.md",
    "content": "<p align=\"center\">\n   <img src=\"https://raw.githubusercontent.com/vinayak-mehta/conrad/master/docs/_static/mozilla-satellite-antenna.png\" width=\"200\">\n</p>\n\n# conrad — Conference Radar\n\n[![Workflow Status](https://github.com/vinayak-mehta/conrad/workflows/Get%20events/badge.svg)](https://github.com/vinayak-mehta/conrad/actions) [![Documentation Status](https://readthedocs.org/projects/conference-radar/badge/?version=latest)](https://conference-radar.readthedocs.io/en/latest/) [![image](https://img.shields.io/pypi/v/conference-radar.svg)](https://pypi.org/project/conference-radar/) [![image](https://img.shields.io/pypi/pyversions/conference-radar.svg)](https://pypi.org/project/conference-radar/) [![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\n`conrad` helps you track conferences and meetups on your terminal.\n\n---\n\nHere's how it works:\n\n<pre>\n$ conrad show\n</pre>\n\n![show](https://raw.githubusercontent.com/vinayak-mehta/conrad/master/docs/_static/show.png)\n\n## Why conrad?\n\n- 📅 Never miss CFP deadlines again. `conrad remind` can remind you every time you open a terminal!\n- 📊 Query and explore events using tags, names, locations, and dates. `conrad show --cfp` will tell you about events where the CFP is open!\n- 🤖 Crawlers update events twice a week! (Monday and Thursday at 00:00 UTC)\n\n## Installation\n\nYou can simply use pip to install `conrad`:\n\n<pre>\n$ pip install conference-radar\n</pre>\n\n## Features\n\n### Continuous updates\n\nThe event list is maintained in `data/events.json`. This list is continuously updated by the available `crawlers` using GitHub Actions.\n\nSources:\n\n- https://confs.tech\n- https://pydata.org/event-schedule\n- https://github.com/python-organizers/conferences\n- https://wiki.python.org/moin/PythonEventsCalendar\n\n### Set reminders\n\nYou can set CFP reminders so that you never miss a deadline! The color changes based on event proximity; **> 30 days** ![#008000](https://placehold.it/15/008000/000000?text=+), **>10 and < 30 days** ![#ffff00](https://placehold.it/15/ffff00/000000?text=+) and **< 10 days** ![#ff0000](https://placehold.it/15/ff0000/000000?text=+).\n\n<pre>\n$ conrad remind -i 6bb714\n$ conrad remind\n</pre>\n\n![remind](https://raw.githubusercontent.com/vinayak-mehta/conrad/master/docs/_static/remind.png)\n\n**Protip**: Add `conrad remind` to your shell startup file so that you get a reminder every time you open a new terminal!\n\n### Query and explore\n\nYou can query and explore the event database using various filters.\n\nLook at events which have an open call for proposals (CFP):\n\n<pre>\n$ conrad show --cfp\n</pre>\n\n![show-cfp](https://raw.githubusercontent.com/vinayak-mehta/conrad/master/docs/_static/show-cfp.png)\n\nLook at conferences using a tag:\n\n<pre>\n$ conrad show --tag python\n</pre>\n\n![show-tag](https://raw.githubusercontent.com/vinayak-mehta/conrad/master/docs/_static/show-tag.png)\n\nLook at conferences using a name:\n\n<pre>\n$ conrad show --name pycon\n</pre>\n\n![show-name](https://raw.githubusercontent.com/vinayak-mehta/conrad/master/docs/_static/show-name.png)\n\nLook at conferences in a city, state or country:\n\n<pre>\n$ conrad show --location usa\n</pre>\n\n![show-location](https://raw.githubusercontent.com/vinayak-mehta/conrad/master/docs/_static/show-location.png)\n\nLook at conferences based on when they're happening:\n\n<pre>\n$ conrad show --date \">= 2019-10-01\" --date \"<= 2020-01-01\"\n</pre>\n\n![show-date](https://raw.githubusercontent.com/vinayak-mehta/conrad/master/docs/_static/show-date.png)\n\n### Refresh event database\n\nYou can get the latest events using:\n\n<pre>\n$ conrad refresh\n</pre>\n\n![refresh](https://raw.githubusercontent.com/vinayak-mehta/conrad/master/docs/_static/refresh.png)\n\n## Contributing\n\nThe [Contributor's Guide](https://github.com/vinayak-mehta/conrad/blob/master/CONTRIBUTING.md) has detailed information about guidelines around contributions. You can add new crawlers and events to `conrad`:\n\n- [Adding a crawler](https://conference-radar.readthedocs.io/en/latest/dev/adding-crawlers.html)\n- [Adding new events](https://conference-radar.readthedocs.io/en/latest/dev/adding-events.html)\n\n## Versioning\n\n`conrad` uses [Semantic Versioning](https://semver.org/). For the available versions, see the tags on this repository.\n\n## License\n\nThis project is licensed under the Apache License, see the [LICENSE](https://github.com/vinayak-mehta/conrad/blob/master/LICENSE) file for details.\n"
  },
  {
    "path": "conrad/__init__.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport os\n\nfrom click import get_app_dir\n\nfrom .__version__ import __version__\n\n\nCONRAD_HOME = get_app_dir(\"conrad\")\nSQL_ALCHEMY_CONN = f\"sqlite:///{CONRAD_HOME}/conrad.db\"\n\nif not os.path.exists(CONRAD_HOME):\n    os.makedirs(CONRAD_HOME)\n"
  },
  {
    "path": "conrad/__main__.py",
    "content": "# -*- coding: utf-8 -*-\n\nfrom .utils import conrad_self_version_check\n\n\n__all__ = (\"main\",)\n\n\ndef main():\n    from conrad.cli import cli\n\n    conrad_self_version_check()\n    cli()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "conrad/__version__.py",
    "content": "# -*- coding: utf-8 -*-\n\nVERSION = (0, 10, 2)\nPRERELEASE = None  # alpha, beta or rc\nREVISION = None\n\n\ndef generate_version(version, prerelease=None, revision=None):\n    version_parts = [\".\".join(map(str, version))]\n    if prerelease is not None:\n        version_parts.append(f\"-{prerelease}\")\n    if revision is not None:\n        version_parts.append(f\".{revision}\")\n    return \"\".join(version_parts)\n\n\n__title__ = \"conference-radar\"\n__description__ = \"Track conferences and meetups on your terminal.\"\n__url__ = \"https://github.com/vinayak-mehta/conrad\"\n__version__ = generate_version(VERSION, prerelease=PRERELEASE, revision=REVISION)\n__author__ = \"Vinayak Mehta\"\n__author_email__ = \"vmehta94@gmail.com\"\n__license__ = \"Apache 2.0\"\n"
  },
  {
    "path": "conrad/cli.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport datetime as dt\nimport hashlib\nimport inspect\nimport json\nimport os\nimport re\nimport shutil\nimport sys\n\nimport click\nimport requests\nimport sqlalchemy\nimport textdistance\nfrom rich.console import Console\nfrom rich.table import Table\n\ntry:\n    import bs4\n    import cerberus\n    import git\n    import googleapiclient\n    import pandas\nexcept ImportError:\n    _HAS_CRAWL_REQUIREMENTS = False\nelse:\n    _HAS_CRAWL_REQUIREMENTS = True\n\nif _HAS_CRAWL_REQUIREMENTS:\n    import crawlers\n    from crawlers import *\n\nfrom . import CONRAD_HOME, __version__\nfrom .db import Session, engine\nfrom .models import Base, Event, Reminder\nfrom .schema import *\nfrom .utils import apply_schema, initialize_database, mkdir, validate_events\n\nDATE_FMT = \"%Y-%m-%dT%H:%M:%S\"\n\n\ndef has_less():\n    return shutil.which(\"less\")\n\n\ndef set_default_pager():\n    if has_less() is not None:\n        os.environ[\"LESS\"] = \"-SRXF\"\n\n\ndef get_events():\n    click.echo(\"Fetching latest events.\")\n\n    events_filename = eval(f\"f{LATEST}\")\n    response = requests.get(\n        f\"https://raw.githubusercontent.com/vinayak-mehta/conrad/master/data/{events_filename}\",\n        timeout=5,\n    )\n    with open(os.path.join(CONRAD_HOME, events_filename), \"w\") as f:\n        f.write(json.dumps(response.json()))\n\n\ndef rebuild_events_table():\n    events_filename = eval(f\"f{LATEST}\")\n    with open(os.path.join(CONRAD_HOME, events_filename), \"r\") as f:\n        events = json.load(f)\n\n    session = Session()\n    for event in events:\n        event_id = hashlib.md5(\n            (event[\"name\"] + event[\"start_date\"]).encode(\"utf-8\")\n        ).hexdigest()\n        e = Event(\n            id=event_id[:6],\n            name=event[\"name\"],\n            url=event[\"url\"],\n            city=event[\"city\"],\n            state=event[\"state\"],\n            country=event[\"country\"],\n            location=event[\"location\"],\n            cfp_open=event[\"cfp_open\"],\n            cfp_end_date=dt.datetime.strptime(event[\"cfp_end_date\"], \"%Y-%m-%d\"),\n            start_date=dt.datetime.strptime(event[\"start_date\"], \"%Y-%m-%d\"),\n            end_date=dt.datetime.strptime(event[\"end_date\"], \"%Y-%m-%d\"),\n            source=event[\"source\"],\n            tags=json.dumps(event[\"tags\"]),\n            kind=event[\"kind\"],\n            by=event[\"by\"],\n        )\n        session.add(e)\n        session.commit()\n    session.close()\n\n\ndef set_update_timestamp(overwrite=False):\n    updated_at = os.path.join(CONRAD_HOME, \".updated_at\")\n    if overwrite or not os.path.exists(updated_at):\n        with open(updated_at, \"w\") as f:\n            f.write(dt.datetime.now().strftime(DATE_FMT))\n\n\ndef initialize_conrad():\n    set_update_timestamp()\n\n    if not os.path.exists(os.path.join(CONRAD_HOME, \"conrad.db\")):\n        get_events()\n        initialize_database()\n        rebuild_events_table()\n\n\ndef refresh_conrad():\n    get_events()\n    if not os.path.exists(os.path.join(CONRAD_HOME, \"conrad.db\")):\n        initialize_database()\n    else:\n        Event.__table__.drop(engine)\n        Base.metadata.tables[\"event\"].create(bind=engine)\n    rebuild_events_table()\n    set_update_timestamp(overwrite=True)\n\n\ndef clean_old_events():\n    session = Session()\n\n    now = dt.datetime.now()\n    reminders = list(\n        session.query(Event, Reminder)\n        .filter(Event.id == Reminder.id, Event.end_date < now)\n        .all()\n    )\n    for r, __ in reminders:\n        session.query(Reminder).filter(Reminder.id == r.id).delete()\n\n    events = list(session.query(Event).filter(Event.end_date < now).all())\n    for e in events:\n        session.query(Event).filter(Event.id == e.id).delete()\n\n    session.commit()\n    session.close()\n\n\ndef auto_refresh():\n    try:\n        updated_at = os.path.join(CONRAD_HOME, \".updated_at\")\n        with open(updated_at, \"r\") as f:\n            last_updated_at = dt.datetime.strptime(f.read().strip(), DATE_FMT)\n    except (IOError, FileNotFoundError):\n        last_updated_at = dt.datetime.strptime(\"1970-01-01T00:00:00\", DATE_FMT)\n\n    if (dt.datetime.now() - last_updated_at) > dt.timedelta(days=7):\n        refresh_conrad()\n        clean_old_events()\n\n\n# https://stackoverflow.com/a/50889894\ndef make_exclude_hook_command(callback):\n    \"\"\"for any command that is not decorated, call the callback\"\"\"\n    hook_attr_name = \"hook_\" + callback.__name__\n\n    class HookGroup(click.Group):\n        \"\"\"group to hook context invoke to see if the callback is needed\"\"\"\n\n        def group(self, *args, **kwargs):\n            \"\"\"new group decorator to make sure sub groups are also hooked\"\"\"\n            if \"cls\" not in kwargs:\n                kwargs[\"cls\"] = type(self)\n            return super(HookGroup, self).group(*args, **kwargs)\n\n        def command(self, *args, **kwargs):\n            \"\"\"new command decorator to monkey patch command invoke\"\"\"\n\n            cmd = super(HookGroup, self).command(*args, **kwargs)\n\n            def hook_command_decorate(f):\n                # decorate the command\n                ret = cmd(f)\n\n                # grab the original command invoke\n                orig_invoke = ret.invoke\n\n                def invoke(ctx):\n                    \"\"\"call the call back right before command invoke\"\"\"\n                    parent = ctx.parent\n                    sub_cmd = (\n                        parent and parent.command.commands[parent.invoked_subcommand]\n                    )\n                    if (\n                        not sub_cmd\n                        or not isinstance(sub_cmd, click.Group)\n                        and getattr(sub_cmd, hook_attr_name, True)\n                    ):\n                        # invoke the callback\n                        callback()\n                    return orig_invoke(ctx)\n\n                # hook our command invoke to command and return cmd\n                ret.invoke = invoke\n                return ret\n\n            # return hooked command decorator\n            return hook_command_decorate\n\n    def decorator(func=None):\n        if func is None:\n            # if called other than as decorator, return group class\n            return HookGroup\n\n        setattr(func, hook_attr_name, False)\n\n    return decorator\n\n\nbypass_auto_refresh = make_exclude_hook_command(auto_refresh)\n\n\n@click.group(name=\"conrad\", cls=bypass_auto_refresh())\n@click.version_option(version=__version__)\n@click.pass_context\ndef cli(ctx, *args, **kwargs):\n    \"\"\"conrad: Track conferences and meetups on your terminal.\"\"\"\n    set_default_pager()\n\n\n@bypass_auto_refresh\n@cli.command(\"refresh\", short_help=\"Refresh event database.\")\n@click.confirmation_option(prompt=\"Would you like conrad to look for new events?\")\n@click.pass_context\ndef _refresh(ctx, *args, **kwargs):\n    # TODO: print(\"10 new events found.\")\n    refresh_conrad()\n\n    click.echo(\"All done! ✨ 🍰 ✨\")\n    click.echo(\"Event database updated.\")\n\n\n@cli.command(\"show\", short_help=\"Show all saved events.\")\n@click.option(\n    \"--id\",\n    \"-i\",\n    help=\"Show event with a particular id.\",\n)\n@click.option(\n    \"--kind\",\n    \"-k\",\n    help=\"Show kind of event, conference or meetup.\",\n)\n@click.option(\n    \"--cfp\",\n    \"-c\",\n    is_flag=True,\n    help=\"Show only events which have an open CFP (call for proposals).\",\n)\n@click.option(\n    \"--tag\", \"-t\", default=\"\", help=\"Look at conferences with a specific tag.\"\n)\n@click.option(\n    \"--name\",\n    \"-n\",\n    default=\"\",\n    help=\"Look at conferences containing a specific word in their name.\",\n)\n@click.option(\n    \"--location\",\n    \"-l\",\n    default=\"\",\n    help=\"Look at conferences in a specific city, state or country.\",\n)\n@click.option(\n    \"--date\",\n    \"-d\",\n    default=[],\n    multiple=True,\n    help='Look at conferences based on when they\\'re happening. For example: conrad show --date \">= 2019-10-01\" --date \"<= 2020-01-01\".',\n)\n@click.pass_context\ndef _show(ctx, *args, **kwargs):\n    # TODO: conrad show --new\n    initialize_conrad()\n\n    _id = kwargs[\"id\"]\n    kind = kwargs[\"kind\"]\n    cfp = kwargs[\"cfp\"]\n    tag = kwargs[\"tag\"]\n    name = kwargs[\"name\"]\n    date = list(kwargs[\"date\"])\n    location = kwargs[\"location\"]\n\n    filters = []\n    if _id:\n        filters.append(Event.id == _id)\n    if kind:\n        filters.append(Event.kind == kind)\n    if cfp:\n        filters.append(Event.cfp_open.is_(cfp))\n    if tag:\n        filters.append(Event.tags.contains(tag))\n    if name:\n        filters.append(Event.name.ilike(f\"%{name}%\"))\n    if date:\n        date_filters = []\n        for d in date:\n            cmp, date = d.split(\" \")\n            if not (\">\" in cmp or \"<\" in cmp):\n                raise click.UsageError(\"Wrong comparison operator.\")\n            try:\n                __ = dt.datetime.strptime(date, \"%Y-%m-%d\")\n            except ValueError:\n                raise click.UsageError(\"Wrong date format.\")\n            if \">\" in cmp:\n                date_filters.append(Event.start_date >= date)\n            elif \"<\" in cmp:\n                date_filters.append(Event.start_date <= date)\n        filters.append(sqlalchemy.and_(*date_filters))\n    if location:\n        filters.append(\n            sqlalchemy.or_(\n                Event.name.ilike(f\"%{location}%\"),\n                Event.city.ilike(f\"%{location}%\"),\n                Event.state.ilike(f\"%{location}%\"),\n                Event.country.ilike(f\"%{location}%\"),\n                Event.location.ilike(f\"%{location}%\"),\n            )\n        )\n\n    session = Session()\n    try:\n        events = list(\n            session.query(Event).filter(*filters).order_by(Event.start_date).all()\n        )\n    except sqlalchemy.exc.OperationalError:\n        refresh_conrad()\n        events = list(\n            session.query(Event).filter(*filters).order_by(Event.start_date).all()\n        )\n\n    if len(events) > 0:\n        console = Console()\n        table = Table(show_header=True, header_style=\"bold magenta\", show_lines=True)\n\n        table.add_column(\"id\")\n        table.add_column(\"Name\")\n        table.add_column(\"Website\")\n        table.add_column(\"City\")\n        table.add_column(\"Country\")\n        table.add_column(\"Start Date\")\n        table.add_column(\"End Date\")\n\n        events_output = []\n\n        rids = [r.id for r in session.query(Reminder).all()]\n        for event in events:\n            event_output = [\n                event.id,\n                event.name,\n                event.url,\n                event.city,\n                event.country,\n                event.start_date.strftime(\"%Y-%m-%d\"),\n                event.end_date.strftime(\"%Y-%m-%d\"),\n            ]\n\n            # highlight event which has a reminder set\n            if event.id in rids:\n                event_output = list(\n                    map(\n                        lambda x: f\"[bold][green]{x}[/green][/bold]\",\n                        event_output,\n                    )\n                )\n\n            table.add_row(*event_output)\n\n        session.close()\n\n        console_kwargs = {}\n        if has_less():\n            console_kwargs[\"styles\"] = True\n\n        with console.pager(**console_kwargs):\n            console.print(table)\n    else:\n        click.echo(\"No events found.\")\n\n\n@cli.command(\"remind\", short_help=\"Set and display reminders.\")\n@click.option(\"--id\", \"-i\", default=None, help=\"Conference identifier.\")\n@click.pass_context\ndef _remind(ctx, *args, **kwargs):\n    def get_days_left(event):\n        start = dt.datetime.now()\n        cfp_days_left = (event.cfp_end_date - start).days\n        event_days_left = (event.start_date - start).days\n\n        if event.cfp_open and cfp_days_left >= 0:\n            days_left = cfp_days_left\n        elif event_days_left >= 0:\n            days_left = event_days_left\n        else:\n            days_left = -1\n\n        return days_left, event.cfp_open\n\n    initialize_conrad()\n\n    _id = kwargs[\"id\"]\n\n    if _id is None:\n        session = Session()\n        reminders = list(\n            session.query(Event, Reminder)\n            .filter(Event.id == Reminder.id)\n            .order_by(Event.start_date)\n            .all()\n        )\n        if len(reminders) > 0:\n            console = Console()\n            table = Table(\n                show_header=True, header_style=\"bold magenta\", show_lines=True\n            )\n\n            table.add_column(\"id\")\n            table.add_column(\"Name\")\n            table.add_column(\"Start Date\")\n            table.add_column(\"Days Left\")\n\n            for reminder, __ in reminders:\n                days_left, cfp_open = get_days_left(reminder)\n\n                if cfp_open and days_left >= 0:\n                    days_left_output = f\"{days_left} days left to cfp deadline\"\n                elif days_left >= 0:\n                    days_left_output = f\"{days_left} days left\"\n                else:\n                    days_left_output = \"Event ended\"\n\n                style = \"white\"\n                if days_left >= 30:\n                    style = \"green\"\n                elif 30 > days_left >= 10:\n                    style = \"yellow\"\n                elif 10 > days_left >= 0:\n                    style = \"red\"\n\n                days_left_output = f\"[bold][{style}]{days_left_output}[/{style}][/bold]\"\n                reminder_output = [\n                    reminder.id,\n                    reminder.name,\n                    reminder.start_date.strftime(\"%Y-%m-%d\"),\n                    days_left_output,\n                ]\n\n                table.add_row(*reminder_output)\n\n            session.close()\n\n            console_kwargs = {}\n            if has_less():\n                console_kwargs[\"styles\"] = True\n\n            with console.pager(**console_kwargs):\n                console.print(table)\n        else:\n            click.echo(\"No reminders found.\")\n    else:\n        try:\n            session = Session()\n            event = session.query(Event).filter(Event.id == _id).first()\n            if event is None:\n                click.echo(\"Event not found.\")\n            else:\n                days_left, __ = get_days_left(event)\n\n                if days_left == -1:\n                    click.echo(\"Event ended.\")\n                else:\n                    reminder = Reminder(id=event.id)\n                    session.add(reminder)\n                    session.commit()\n                    session.close()\n\n                    click.echo(\"Reminder set.\")\n        except sqlalchemy.exc.IntegrityError:\n            session.rollback()\n\n            if click.confirm(\"Do you want to remove this reminder?\"):\n                session = Session()\n                session.query(Reminder).filter(Reminder.id == _id).delete()\n                session.commit()\n                session.close()\n\n                click.echo(\"Reminder removed.\")\n\n\n@cli.command(\"generate\", short_help=\"Generate skeleton crawler code.\")\n@click.argument(\"entity\")\n@click.argument(\"entity_name\")\n@click.pass_context\ndef _generate(ctx, *args, **kwargs):\n    SUPPORTED_ENTITIES = [\"crawler\"]\n\n    entity = kwargs[\"entity\"]\n\n    if entity not in SUPPORTED_ENTITIES:\n        click.UsageError(f\"Entity '{entity}' not supported\")\n\n    entity_name = kwargs[\"entity_name\"]\n    entity_name_snake_case = re.sub(r\"(?<!^)(?=[A-Z])\", \"_\", entity_name).lower()\n\n    crawler_dir = f\"crawlers/{entity_name_snake_case}\"\n    mkdir(crawler_dir)\n\n    with open(os.path.join(crawler_dir, \"__init__.py\"), \"w\") as f:\n        f.write(\"# -*- coding: utf-8 -*-\\n\")\n\n    crawler_content = f\"\"\"# -*- coding: utf-8 -*-\n\nfrom ..base import BaseCrawler\n\n\nclass {entity_name}Crawler(BaseCrawler):\n    def get_events(self):\n        # Populate this list of events using your code\n        events = []\n\n        # YOUR CODE HERE\n\n        # Extend the self.events list with the new list\n        self.events.extend(events)\n\"\"\"\n\n    crawler_path = os.path.join(crawler_dir, f\"{entity_name_snake_case}_crawler.py\")\n    with open(crawler_path, \"w\") as f:\n        f.write(crawler_content)\n\n    with open(\"crawlers/__init__.py\", \"a\") as f:\n        f.write(\n            f\"from .{entity_name_snake_case}.{entity_name_snake_case}_crawler import {entity_name}Crawler\"\n        )\n\n    click.echo(f\"\\t{click.style('create', fg='green', bold=True)}\\t{crawler_path}\")\n\n\n@cli.command(\"run\", short_help=\"Run crawler code.\")\n@click.argument(\"entity\")\n@click.argument(\"entity_name\")\n@click.pass_context\ndef _run(ctx, *args, **kwargs):\n    if not _HAS_CRAWL_REQUIREMENTS:\n        raise click.UsageError(\n            \"To run crawlers, please install the requirements with\\n\"\n            \"'pip install --upgrade conference-radar[crawl]'.\"\n        )\n\n    SUPPORTED_ENTITIES = [\"crawler\"]\n\n    entity = kwargs[\"entity\"]\n\n    if entity not in SUPPORTED_ENTITIES:\n        click.UsageError(f\"Entity '{entity}' not supported\")\n\n    entity_name = kwargs[\"entity_name\"]\n    entity_name_snake_case = re.sub(r\"(?<!^)(?=[A-Z])\", \"_\", entity_name).lower()\n\n    crawler = [\n        m[0]\n        for m in inspect.getmembers(crawlers, inspect.isclass)\n        if m[1].__module__.startswith(\"crawlers\") and m[0] == f\"{entity_name}Crawler\"\n    ]\n    if len(crawler):\n        filename = crawler[0].lower().replace(\"crawler\", \"\")\n\n        Crawler = eval(crawler[0])\n        c = Crawler()\n        c.get_events()\n\n        crawler_data_path = f\"data/{filename}.json\"\n        c.export(crawler_data_path)\n\n        click.echo(\n            f\"\\t{click.style('save', fg='green', bold=True)}\\t{crawler_data_path}\"\n        )\n    else:\n        print(\"Crawler not found.\")\n\n\n@bypass_auto_refresh\n@cli.command(\"import\", short_help=\"Import new events into conrad.\")\n@click.option(\"--file\", \"-f\", default=None, help=\"JSON file to import.\")\n@click.pass_context\ndef _import(ctx, *args, **kwargs):\n    file = kwargs[\"file\"]\n\n    if file is None:\n        raise click.UsageError(\"No file provided.\")\n\n    if not os.path.exists(file):\n        raise click.UsageError(\"File does not exist.\")\n\n    with open(file, \"r\") as f:\n        input_events = json.load(f)\n\n    failures = validate_events(input_events, version=LATEST)\n    if len(failures) > 0:\n        raise click.UsageError(\n            \"The following validations failed!\\n{}\".format(\n                \"\".join(\n                    list(map(lambda x: \"- \" + x + \"\\n\", failures[:-1]))\n                    + list(map(lambda x: \"- \" + x, failures[-1:]))\n                )\n            )\n        )\n\n    events_path = os.path.join(os.getcwd(), \"data\", f\"{eval(f'f{LATEST}')}\")\n    try:\n        with open(events_path, \"r\") as f:\n            events = json.load(f)\n    except (IOError, ValueError, KeyError, FileNotFoundError):\n        events = []\n\n    now = dt.datetime.now()\n    old_events = []\n    for e in events:\n        event_end_date = dt.datetime.strptime(e[\"end_date\"], \"%Y-%m-%d\")\n        if event_end_date < now:\n            print(f\"Removing {e['name']}\")\n            continue\n\n        if e[\"cfp_end_date\"] is not None:\n            cfp_end_date = dt.datetime.strptime(e[\"cfp_end_date\"], \"%Y-%m-%d\")\n            if cfp_end_date < now:\n                e[\"cfp_open\"] = False\n\n        old_events.append(e)\n\n    removed = len(events) - len(old_events)\n    s = \"s\" if removed != 1 else \"\"\n    click.echo(f\"Removed {removed} old event{s}.\")\n\n    pattern = \"[0-9]\"\n    new_events = []\n    for ie in input_events:\n        if ie[\"end_date\"] is None:\n            continue\n\n        event_end_date = dt.datetime.strptime(ie[\"end_date\"], \"%Y-%m-%d\")\n        if event_end_date < now:\n            continue\n\n        if ie[\"cfp_end_date\"] is not None:\n            cfp_end_date = dt.datetime.strptime(ie[\"cfp_end_date\"], \"%Y-%m-%d\")\n            if cfp_end_date < now:\n                ie[\"cfp_open\"] = False\n\n        match = False\n        for oe in old_events:\n            input_event_name = ie[\"name\"].replace(\" \", \"\").lower()\n            input_event_name = re.sub(pattern, \"\", input_event_name)\n\n            old_event_name = oe[\"name\"].replace(\" \", \"\").lower()\n            old_event_name = re.sub(pattern, \"\", old_event_name)\n\n            similarity = textdistance.levenshtein.normalized_similarity(\n                input_event_name, old_event_name\n            )\n            if similarity > 0.9:\n                click.echo(f\"Updating {oe['name']}\")\n                oe.update(ie)\n                match = True\n        if not match:\n            click.echo(f\"Adding {ie['name']}\")\n            new_events.append(ie)\n    old_events.extend(new_events)\n\n    s = \"s\" if len(new_events) != 1 else \"\"\n    click.echo(f\"Added {len(new_events)} new event{s}.\")\n    with open(events_path, \"w\") as f:\n        f.write(json.dumps(old_events, indent=4, sort_keys=True))\n\n    for version in reversed(range(1, int(LATEST))):\n        events = old_events.copy()\n        events = apply_schema(events, version=version)\n\n        events_path = os.path.join(os.getcwd(), \"data\", f\"{eval(f'f{version}')}\")\n        with open(events_path, \"w\") as f:\n            f.write(json.dumps(events, indent=4, sort_keys=True))\n"
  },
  {
    "path": "conrad/db.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport atexit\n\nfrom sqlalchemy import create_engine\nfrom sqlalchemy.pool import NullPool\nfrom sqlalchemy.orm import scoped_session, sessionmaker\n\nfrom . import SQL_ALCHEMY_CONN\n\n\nengine = None\nSession = None\n\n\ndef configure_orm():\n    global engine\n    global Session\n\n    engine_args = {\"poolclass\": NullPool}\n    engine = create_engine(SQL_ALCHEMY_CONN, **engine_args)\n    Session = scoped_session(\n        sessionmaker(\n            autocommit=False, autoflush=False, bind=engine, expire_on_commit=False\n        )\n    )\n\n\ndef dispose_orm():\n    global engine\n    global Session\n\n    if Session is not None:\n        Session.remove()\n        Session = None\n    if engine is not None:\n        engine.dispose()\n        engine = None\n\n\nconfigure_orm()\natexit.register(dispose_orm)\n"
  },
  {
    "path": "conrad/models.py",
    "content": "# -*- coding: utf-8 -*-\n\nfrom sqlalchemy import Boolean, Column, DateTime, String, Text, ForeignKey\nfrom sqlalchemy.ext.declarative import declarative_base\n\n\nBase = declarative_base()\nID_LEN = 100\nSTR_LEN = 1024\n\n\nclass Event(Base):\n    __tablename__ = \"event\"\n\n    id = Column(String(ID_LEN), primary_key=True)\n    name = Column(String(STR_LEN))\n    url = Column(String(STR_LEN))\n    city = Column(String(STR_LEN))\n    state = Column(String(STR_LEN))\n    country = Column(String(STR_LEN))\n    location = Column(String(STR_LEN))\n    cfp_open = Column(Boolean, default=False)\n    cfp_end_date = Column(DateTime)\n    start_date = Column(DateTime)\n    end_date = Column(DateTime)\n    source = Column(String(STR_LEN))\n    tags = Column(Text)\n    kind = Column(String(STR_LEN))\n    by = Column(String(STR_LEN))\n\n\nclass Reminder(Base):\n    __tablename__ = \"reminder\"\n\n    id = Column(String(ID_LEN), ForeignKey(\"event.id\"), primary_key=True)\n"
  },
  {
    "path": "conrad/schema.py",
    "content": "# -*- coding: utf-8 -*-\n\nLATEST = \"2\"\n\nf1 = \"events.json\"\nv1 = {\n    \"name\": {\"type\": \"string\", \"minlength\": 1, \"required\": True},\n    \"url\": {\"type\": \"string\", \"minlength\": 1, \"required\": True},\n    \"city\": {\"type\": \"string\", \"minlength\": 1, \"required\": True},\n    \"state\": {\"type\": \"string\", \"required\": True, \"nullable\": True},\n    \"country\": {\"type\": \"string\", \"minlength\": 1, \"required\": True},\n    \"cfp_open\": {\"type\": \"boolean\", \"required\": True},\n    \"cfp_end_date\": {\"is_date\": True, \"type\": \"string\", \"required\": True},\n    \"start_date\": {\"is_date\": True, \"type\": \"string\", \"required\": True},\n    \"end_date\": {\"is_date\": True, \"type\": \"string\", \"required\": True},\n    \"source\": {\"type\": \"string\", \"minlength\": 1, \"required\": True},\n    \"tags\": {\"type\": \"list\", \"minlength\": 1, \"required\": True},\n    \"kind\": {\"type\": \"string\", \"allowed\": [\"conference\", \"meetup\"], \"required\": True},\n    \"by\": {\"type\": \"string\", \"allowed\": [\"human\", \"bot\"], \"required\": True},\n}\n\nf2 = \"events_v2.json\"\nv2 = {\n    \"name\": {\"type\": \"string\", \"minlength\": 1, \"required\": True},\n    \"url\": {\"type\": \"string\", \"minlength\": 1, \"required\": True},\n    \"city\": {\"type\": \"string\", \"required\": True, \"nullable\": True},\n    \"state\": {\"type\": \"string\", \"required\": True, \"nullable\": True},\n    \"country\": {\"type\": \"string\", \"required\": True, \"nullable\": True},\n    \"location\": {\"type\": \"string\", \"required\": True, \"nullable\": True},\n    \"cfp_open\": {\"type\": \"boolean\", \"required\": True},\n    \"cfp_end_date\": {\"is_date\": True, \"type\": \"string\", \"required\": True},\n    \"start_date\": {\"is_date\": True, \"type\": \"string\", \"required\": True},\n    \"end_date\": {\"is_date\": True, \"type\": \"string\", \"required\": True},\n    \"source\": {\"type\": \"string\", \"minlength\": 1, \"required\": True},\n    \"tags\": {\"type\": \"list\", \"minlength\": 1, \"required\": True},\n    \"kind\": {\"type\": \"string\", \"allowed\": [\"conference\", \"meetup\"], \"required\": True},\n    \"by\": {\"type\": \"string\", \"allowed\": [\"human\", \"bot\"], \"required\": True},\n}\n\nlatest = eval(f\"v{LATEST}\")\n"
  },
  {
    "path": "conrad/utils.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport datetime as dt\nimport json\nimport logging\nimport os\nimport sys\nfrom collections import Counter\n\nimport geopy.exc as geopyexceptions\nimport requests\nfrom geopy.extra.rate_limiter import RateLimiter\nfrom geopy.geocoders import Nominatim\nfrom packaging import version\n\nfrom . import CONRAD_HOME, __version__\nfrom .db import engine\nfrom .schema import *\n\nSELFCHECK_DATE_FMT = \"%Y-%m-%dT%H:%M:%SZ\"\n\n\nlogger = logging.getLogger(__name__)\n\n\n# https://github.com/pypa/pip/blob/master/src/pip/_internal/self_outdated_check.py\nclass SelfCheckState(object):\n    def __init__(self, cache_dir):\n        self.state = {}\n        self.statefile_path = os.path.join(cache_dir, \"selfcheck.json\")\n\n        # Try to load the existing state\n        try:\n            with open(self.statefile_path, \"r\") as f:\n                self.state = json.load(f)\n        except (IOError, ValueError, KeyError, FileNotFoundError):\n            # Explicitly suppressing exceptions, since we don't want to\n            # error out if the cache file is invalid.\n            pass\n\n    def save(self, pypi_version, current_time):\n        # If we do not have a path to cache in, don't bother saving.\n        if not self.statefile_path:\n            return\n\n        state = {\n            \"last_check\": current_time.strftime(SELFCHECK_DATE_FMT),\n            \"pypi_version\": pypi_version,\n        }\n\n        text = json.dumps(state, sort_keys=True, separators=(\",\", \":\"))\n\n        with open(self.statefile_path, \"w\") as f:\n            f.write(text)\n\n\ndef get_pypi_version():\n    url = \"https://pypi.org/pypi/conference-radar/json\"\n    response = requests.get(url)\n    if response:\n        data = response.json()\n        pypi_version = data[\"info\"][\"version\"]\n        return pypi_version\n\n\ndef conrad_self_version_check():\n    pypi_version = None\n\n    try:\n        state = SelfCheckState(cache_dir=CONRAD_HOME)\n\n        current_time = dt.datetime.utcnow()\n        # Determine if we need to refresh the state\n        if \"last_check\" in state.state and \"pypi_version\" in state.state:\n            last_check = dt.datetime.strptime(\n                state.state[\"last_check\"], SELFCHECK_DATE_FMT\n            )\n            if (current_time - last_check).total_seconds() < 7 * 24 * 60 * 60:\n                pypi_version = state.state[\"pypi_version\"]\n\n        # Refresh the version if we need to or just see if we need to warn\n        if pypi_version is None:\n            pypi_version = get_pypi_version()\n\n            # Save that we've performed a check\n            state.save(pypi_version, current_time)\n\n        conrad_version = version.parse(__version__)\n        remote_version = version.parse(pypi_version)\n\n        if conrad_version < remote_version:\n            pip_cmd = \"{} -m pip\".format(sys.executable)\n            logger.warning(\n                f\"You are using conrad version {__version__}; however,\"\n                f\" version {pypi_version} is available.\\n\"\n                \"You should consider upgrading with\"\n                f\" '{pip_cmd} install --upgrade conference-radar'.\"\n            )\n    except Exception:\n        logger.debug(\n            \"There was an error checking the latest version of conrad\",\n            exc_info=True,\n        )\n\n\ndef initialize_database():\n    from .models import Base\n\n    Base.metadata.create_all(engine)\n\n\ndef reset_database():\n    from .models import Base\n\n    Base.metadata.drop_all(engine)\n    initialize_database()\n\n\ndef get_address(place):\n    geolocator = Nominatim(user_agent=\"conrad\")\n    geocode = RateLimiter(geolocator.geocode, min_delay_seconds=5)\n\n    address = None\n    try:\n        location = geolocator.geocode(place)\n        if location is not None:\n            address = geolocator.reverse(\n                \"{lat}, {lon}\".format(lat=location.latitude, lon=location.longitude)\n            ).raw[\"address\"]\n            address[\"latitude\"] = location.latitude\n            address[\"longitude\"] = location.longitude\n    except geopyexceptions.GeocoderTimedOut:\n        # TODO: add 2 retries using tenacity\n        print(f\"Geocoder timed out for {place}!\")\n\n    return address\n\n\ndef apply_schema(events, version=LATEST):\n    schema = eval(f\"v{version}\")\n    _events = []\n\n    for event in events:\n        _event = dict({k: v for k, v in event.items() if k in schema.keys()})\n        _events.append(_event)\n\n    return _events\n\n\ndef validate_events(input_events, version=LATEST):\n    schema = eval(f\"v{version}\")\n    failures = []\n\n    # check for duplicates (name + start_date to allow same conference in different years)\n    ie_identifiers = [\n        (ie[\"name\"].replace(\" \", \"\").lower(), ie[\"start_date\"]) for ie in input_events\n    ]\n    duplicate_events = [\n        event for event, count in Counter(ie_identifiers).items() if count > 1\n    ]\n    if duplicate_events:\n        failures.append(f\"Duplicate events found: {duplicate_events}\")\n\n    # check if keys exist\n    for ie in input_events:\n        if set(schema.keys()).difference(set(ie.keys())):\n            failures.append(\"Required fields not found\")\n            break\n\n    return failures\n\n\ndef mkdir(directory):\n    if not os.path.exists(directory):\n        os.makedirs(directory)\n"
  },
  {
    "path": "crawlers/__init__.py",
    "content": "# -*- coding: utf-8 -*-\n\nfrom .pycon.pycon_crawler import PyConCrawler\nfrom .python.python_crawler import PythonCrawler\nfrom .pydata.pydata_crawler import PyDataCrawler\nfrom .confs_tech.confs_tech_crawler import ConfsTechCrawler\nfrom .italy.italy_crawler import ItalyCrawler\nfrom .papercall.papercall_crawler import PapercallCrawler\n"
  },
  {
    "path": "crawlers/base.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport json\nimport datetime as dt\n\nfrom cerberus import Validator\n\nfrom conrad.schema import latest\n\n\nclass EventValidator(Validator):\n    def _validate_is_date(self, is_date, field, value):\n        \"\"\"Test if a date is valid.\n        The rule's arguments are validated against this schema:\n        {'type': 'boolean'}\n        \"\"\"\n        if is_date:\n            valid = True\n            try:\n                dt.datetime.strptime(value, \"%Y-%m-%d\")\n            except:\n                valid = False\n            if not valid:\n                self._error(field, \"must be valid date\")\n\n\nclass BaseCrawler(object):\n    def __init__(self):\n        self.events = []\n\n    def get_events(self):\n        pass\n\n    def export(self, filename):\n        v = EventValidator(latest)\n        for event in self.events:\n            v.validate(event)\n            if v.errors:\n                for key, val in v.errors.items():\n                    print(f\"{event['name']} - {key}: {val}\")\n\n        with open(filename, \"w\") as f:\n            f.write(json.dumps(self.events, indent=4, sort_keys=True))\n"
  },
  {
    "path": "crawlers/confs_tech/__init__.py",
    "content": "# -*- coding: utf-8 -*-\n"
  },
  {
    "path": "crawlers/confs_tech/confs_tech_crawler.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport os\nimport json\nfrom pathlib import Path\n\nimport git\n\nfrom ..base import BaseCrawler\n\n\ndef mkdir(directory):\n    if not os.path.exists(directory):\n        os.makedirs(directory)\n\n\nclass ConfsTechCrawler(BaseCrawler):\n    def get_events(self):\n        # Populate this list of events using your code\n        events = []\n\n        git.Git(\"/tmp\").clone(\n            \"https://github.com/tech-conferences/conference-data.git\", depth=1\n        )\n\n        data_path = \"/tmp/conference-data\"\n        mkdir(data_path)\n\n        p = Path(data_path)\n        years = [\"2021\", \"2022\"]\n        conference_names = []\n\n        for year in years:\n            conferences_for_year_path = p / \"conferences\" / years[0]\n            for tagfile in os.listdir(conferences_for_year_path):\n                tag = tagfile.replace(\".json\", \"\")\n                conferences_for_tag_for_year_path = conferences_for_year_path / tagfile\n\n                with open(conferences_for_tag_for_year_path, \"r\") as f:\n                    conferences = json.load(f)\n\n                for conference in conferences:\n                    conference_name = conference.get(\"name\", \"\").lower()\n                    if conference_name in conference_names:\n                        continue\n                    conference_names.append(conference_name)\n\n                    city = conference.get(\"city\")\n                    country = conference.get(\"country\")\n\n                    cfp_end_date = (\n                        conference.get(\"cfpEndDate\")\n                        if conference.get(\"cfpEndDate\") is not None\n                        else \"1970-01-01\"\n                    )\n\n                    conference_data = {\n                        \"name\": conference.get(\"name\"),\n                        \"url\": conference.get(\"url\"),\n                        \"city\": city,\n                        \"state\": conference.get(\"state\"),\n                        \"country\": country,\n                        \"location\": \", \".join(\n                            filter(lambda x: x is not None, [city, country])\n                        ),\n                        \"cfp_open\": False,\n                        \"cfp_end_date\": cfp_end_date,\n                        \"start_date\": conference.get(\"startDate\"),\n                        \"end_date\": conference.get(\"endDate\"),\n                        \"source\": \"https://confs.tech\",\n                        \"tags\": [tag],\n                        \"kind\": \"conference\",\n                        \"by\": \"bot\",\n                    }\n\n                    self.events.append(conference_data)\n"
  },
  {
    "path": "crawlers/italy/__init__.py",
    "content": ""
  },
  {
    "path": "crawlers/italy/italy_crawler.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport json\n\nimport requests\n\nfrom ..base import BaseCrawler\n\n\nclass ItalyCrawler(BaseCrawler):\n    \"\"\"\n    Crawler for Italy events from the Awesome Italy Events dataset.\n\n    Fetches conferences in Italy (except PyCon) and formats them\n    according to Conrad's event schema.\n    \"\"\"\n    def __init__(self, year = 2020):\n        super().__init__()\n        self.year = year\n    \n    def get_events(self):\n        url = f\"https://raw.githubusercontent.com/ildoc/awesome-italy-events/master/data/{self.year}.json\"\n        try:\n            response = requests.get(url, timeout = 10)\n            response.raise_for_status() # Raises an HTTP error for bad status codes\n            data = json.loads(response.content.decode(\"utf-8-sig\")) # Convert response to JSON\n        except requests.exceptions.RequestException as e:\n            print(f\"Failed to fetch events for {self.year}: {e}\")\n            return\n        except json.JSONDecodeError as e:\n            print(f\"Invalid JSON for {self.year}: {e}\")\n            return\n\n        for event in data:\n            if \"pycon\" in event.get(\"title\", \"\").lower():\n                continue\n\n            # Skip if required fields are missing\n            required_fields = [\"title\", \"url\", \"location\", \"startDate\", \"endDate\"]\n            if not all(field in event for field in required_fields):\n                continue\n            \n            e = {\n                \"name\": event.get(\"title\", \"Untitled Event\"),\n                \"url\": event.get(\"url\", \"\"),\n                \"city\": event.get(\"location\", None),\n                \"state\": None,\n                \"country\": \"Italy\",\n                \"location\": event.get(\"location\", \"\"),\n                \"cfp_open\": False,\n                \"cfp_end_date\": \"1970-01-01\",\n                \"start_date\": event.get(\"startDate\", \"1970-01-01\"),\n                \"end_date\": event.get(\"endDate\", \"1970-01-01\"),\n                \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n                \"tags\": [\"technology\"],\n                \"kind\": \"conference\",\n                \"by\": \"bot\",\n            }\n            self.events.append(e)\n"
  },
  {
    "path": "crawlers/papercall/__init__.py",
    "content": "# -*- coding: utf-8 -*-\n"
  },
  {
    "path": "crawlers/papercall/papercall_crawler.py",
    "content": "# -*- coding: utf-8 -*-\n# https://github.com/coderanger/cfp-scraper/blob/master/papercall.py\n\nimport requests\nimport dateparser\nimport dateparser.search\nfrom bs4 import BeautifulSoup\n\nfrom ..base import BaseCrawler\n\n\nURL = \"https://www.papercall.io/events?open-cfps=true&page={page}\"\n\n\ndef get(page):\n    res = requests.get(URL.format(page=page))\n    return BeautifulSoup(res.text, \"html.parser\")\n\n\ndef maybe_int(s):\n    try:\n        return int(s)\n    except ValueError:\n        return 0\n\n\ndef num_pages():\n    pagination = get(1).find(class_=\"pagination\")\n    return max(maybe_int(elm.string) for elm in pagination.find_all(\"a\"))\n\n\ndef parse_page(root):\n    for event in root.select(\".event-list-detail\"):\n        title_line = event.select(\".event__title a\")[-1]\n        title_parts = title_line.string.split(\" - \", 1)\n        if len(title_parts) == 1:\n            title = title_parts[0]\n            location = \"\"\n        elif len(title_parts) == 2:\n            title = title_parts[0]\n            location = title_parts[1]\n        try:\n            url = event.select(\".fa-external-link\")[0][\"title\"]\n        except IndexError:\n            url = \"\"\n        cfp_close_label = event.find(\n            lambda elm: elm.name == \"strong\" and \"CFP closes at\" in elm.string\n        )\n        if not cfp_close_label:\n            # No real point.\n            continue\n        cfp_close = dateparser.parse(\n            cfp_close_label.parent.find_next_sibling(\"td\").string.strip()\n        )\n        start_date = end_date = None\n        dates = event.find(\n            lambda elm: elm.name == \"strong\" and \"Event Dates\" in elm.string\n        )\n        if dates:\n            dates = dates.next_sibling.string.strip()\n        if dates:\n            parsed_dates = [d for _, d in dateparser.search.search_dates(dates)]\n            if parsed_dates:\n                start_date = parsed_dates[0].date()\n                end_date = parsed_dates[-1].date()\n        tags = [t.string for t in event.select('a[href^=\"/events?keywords=tags\"]')]\n\n        today = dateparser.parse(\"now UTC\")\n        cfp_open = False if today > cfp_close else True\n        try:\n            city = location.split(\",\")[0]\n            country = location.split(\",\")[1]\n        except IndexError:\n            city = country = location\n\n        yield {\n            \"name\": title,\n            \"url\": url,\n            \"city\": city,\n            \"state\": None,\n            \"country\": country,\n            \"cfp_open\": cfp_open,\n            \"cfp_end_date\": cfp_close.strftime(\"%Y-%m-%d\")\n            if cfp_close is not None\n            else \"1970-01-01\",\n            \"start_date\": start_date.strftime(\"%Y-%m-%d\")\n            if start_date is not None\n            else \"1970-01-01\",\n            \"end_date\": end_date.strftime(\"%Y-%m-%d\") if end_date is not None else None,\n            \"source\": \"http://papercall.io\",\n            \"tags\": tags,\n            \"kind\": \"conference\",\n            \"by\": \"bot\",\n        }\n\n\ndef parse_all():\n    count = num_pages()\n    for n in range(count):\n        yield from parse_page(get(n + 1))\n\n\nclass PapercallCrawler(BaseCrawler):\n    def get_events(self):\n        for event in parse_all():\n            self.events.append(event)\n"
  },
  {
    "path": "crawlers/pycon/__init__.py",
    "content": "# -*- coding: utf-8 -*-\n"
  },
  {
    "path": "crawlers/pycon/pycon_crawler.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport datetime as dt\n\nimport pandas\n\nfrom ..base import BaseCrawler\n\n\nclass PyConCrawler(BaseCrawler):\n    def get_events(self):\n        current_year = dt.datetime.now().year\n        next_year = current_year + 1\n\n        # Fetch events for both current and next year\n        for year in [current_year, next_year]:\n            try:\n                df = pandas.read_csv(\n                    f\"https://raw.githubusercontent.com/python-organizers/conferences/refs/heads/main/{year}.csv\",\n                    quoting=1,\n                    encoding=\"utf-8\",\n                    dtype=str,\n                )\n                df = df.fillna(\"\")\n            except Exception:\n                # Skip if the year's CSV doesn't exist\n                continue\n\n            for event in df.to_dict(orient=\"records\"):\n                location = event[\"Location\"].split(\",\")\n                city = state = country = None\n                if len(location) == 2:\n                    city = location[0].strip()\n                    country = location[1].strip()\n                elif len(location) == 3:\n                    city = location[0].strip()\n                    state = location[1].strip()\n                    country = event[\"Country\"]\n\n                cfp_end_date = (\n                    event[\"Talk Deadline\"] if event[\"Talk Deadline\"] else \"1970-01-01\"\n                )\n                cfp_open = (\n                    True\n                    if dt.datetime.now()\n                    <= dt.datetime.strptime(cfp_end_date, \"%Y-%m-%d\").replace(\n                        hour=23, minute=59, second=59, microsecond=999999\n                    )\n                    else False\n                )\n                e = {\n                    \"name\": event[\"Subject\"],\n                    \"url\": event[\"Website URL\"],\n                    \"city\": city,\n                    \"state\": state,\n                    \"country\": country,\n                    \"location\": \", \".join(\n                        filter(lambda x: x is not None, [city, state, country])\n                    ),\n                    \"cfp_open\": cfp_open,\n                    \"cfp_end_date\": cfp_end_date,\n                    \"start_date\": event[\"Start Date\"],\n                    \"end_date\": event[\"End Date\"],\n                    \"source\": \"https://github.com/python-organizers/conferences\",\n                    \"tags\": [\"python\"],\n                    \"kind\": \"conference\",\n                    \"by\": \"bot\",\n                }\n                self.events.append(e)\n"
  },
  {
    "path": "crawlers/pydata/__init__.py",
    "content": "# -*- coding: utf-8 -*-\n"
  },
  {
    "path": "crawlers/pydata/pydata_crawler.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport datetime as dt\n\nimport json\nimport requests\nfrom bs4 import BeautifulSoup\n\nfrom ..base import BaseCrawler\n\n\nclass PyDataEvent:\n    def __init__(self, name, city, country, location, start_date, end_date, url):\n        self.name = name\n        self.url = url\n        self.city = city\n        self.state = None\n        self.country = country\n        self.location = location\n        self.cfp_open = False\n        self.cfp_end_date = \"1970-01-01\"\n        self.start_date = start_date\n        self.end_date = end_date\n        self.source = PyDataCrawler.URL\n        self.tags = [\"python\", \"pydata\"]\n        self.kind = \"conference\"\n        self.by = \"bot\"\n\n    def to_json(self):\n        return {\n            \"name\": self.name,\n            \"url\": self.url,\n            \"city\": self.city,\n            \"state\": self.state,\n            \"country\": self.country,\n            \"location\": self.location,\n            \"cfp_open\": self.cfp_open,\n            \"cfp_end_date\": self.cfp_end_date,\n            \"start_date\": self.start_date.strftime(PyDataCrawler.DATE_FORMAT),\n            \"end_date\": self.end_date.strftime(PyDataCrawler.DATE_FORMAT),\n            \"source\": self.source,\n            \"tags\": self.tags,\n            \"kind\": self.kind,\n            \"by\": self.by,\n        }\n\n\nclass PyDataCrawler(BaseCrawler):\n    URL = \"https://pydata.org/event-schedule/\"\n    HEADERS = {\n        \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) \"\n        \"AppleWebKit/537.36 (KHTML, like Gecko) \"\n        \"Chrome/50.0.2661.102 Safari/537.36\"\n    }\n    SELECTOR = 'div.mec-event-list-classic > script[type=\"application/ld+json\"]'\n    DATE_FORMAT = \"%Y-%m-%d\"\n\n    def _format_date(self, date_str):\n        return dt.datetime.strptime(date_str, self.DATE_FORMAT).date()\n\n    def _parse_pydata_event(self, event_article):\n        content = json.loads(event_article.decode_contents())\n\n        try:\n            location = content.get(\"location\", {}).get(\"name\")\n            city, country = location.split(\", \")\n        except (KeyError, ValueError, AttributeError):\n            city = country = None\n\n        return PyDataEvent(\n            name=content[\"name\"],\n            url=content[\"url\"],\n            city=city,\n            country=country,\n            location=location,\n            start_date=self._format_date(content[\"startDate\"]),\n            end_date=self._format_date(content[\"endDate\"]),\n        )\n\n    def _parse_pydata_events(self, event_articles):\n        return list(map(self._parse_pydata_event, event_articles))\n\n    def get_events(self):\n        resp = requests.get(self.URL, headers=self.HEADERS)\n        page = BeautifulSoup(resp.content, features=\"html.parser\")\n        pydata_events = self._parse_pydata_events(page.select(self.SELECTOR))\n        self.events = [event.to_json() for event in pydata_events]\n"
  },
  {
    "path": "crawlers/python/__init__.py",
    "content": "# -*- coding: utf-8 -*-\n"
  },
  {
    "path": "crawlers/python/python_crawler.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport os\nimport json\nimport datetime as dt\n\nfrom bs4 import BeautifulSoup\nfrom googleapiclient.discovery import build\nfrom google.oauth2.service_account import Credentials\n\nfrom ..base import BaseCrawler\n\n\nclass PythonCrawler(BaseCrawler):\n    def get_events(self):\n        credentials = Credentials.from_service_account_file(\n            \"google_service_account_credentials.json\",\n            scopes=[\n                \"https://www.googleapis.com/auth/calendar\",\n                \"https://www.googleapis.com/auth/calendar.readonly\",\n            ],\n        )\n        service = build(\"calendar\", \"v3\", credentials=credentials)\n\n        start_time = dt.datetime.now().strftime(\"%Y-%m-%dT00:00:00.000Z\")\n        end_time = None\n        events = []\n\n        try:\n            page_token = None\n            while True:\n                event_page = (\n                    service.events()\n                    .list(\n                        singleEvents=\"False\",\n                        orderBy=\"startTime\",\n                        calendarId=\"j7gov1cmnqr9tvg14k621j7t5c@group.calendar.google.com\",\n                        pageToken=page_token,\n                        timeMin=start_time,\n                        timeMax=end_time,\n                    )\n                    .execute()\n                )\n                events.extend([event for event in event_page[\"items\"]])\n\n                page_token = event_page.get(\"nextPageToken\")\n                if not page_token:\n                    break\n        except AccessTokenRefreshError:\n            print(\n                \"The credentials have been revoked or expired, please re-run\"\n                \" the application to re-authorize.\"\n            )\n\n        for event in events:\n            if any(\n                [word in event[\"summary\"].lower() for word in [\"cancel\", \"postpone\"]]\n            ):\n                continue\n\n            try:\n                soup = BeautifulSoup(event[\"description\"], \"html.parser\")\n                event_url = soup.find_all(\"a\", href=True)[0][\"href\"]\n            except (KeyError, IndexError):\n                event_url = None\n\n            if \"date\" in event[\"start\"]:\n                start_date = event[\"start\"][\"date\"]\n                end_date = event[\"end\"][\"date\"]\n            elif \"dateTime\" in event[\"start\"]:\n                start_date = event[\"start\"][\"dateTime\"].split(\"T\")[0]\n                end_date = event[\"end\"][\"dateTime\"].split(\"T\")[0]\n            else:\n                raise ValueError(\"Event date not found!\")\n\n            e = {\n                \"name\": event[\"summary\"],\n                \"url\": event_url,\n                \"city\": None,\n                \"state\": None,\n                \"country\": None,\n                \"location\": event.get(\"location\"),\n                \"cfp_open\": False,\n                \"cfp_end_date\": \"1970-01-01\",\n                \"start_date\": start_date,\n                \"end_date\": end_date,\n                \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n                \"tags\": [\"python\"],\n                \"kind\": \"conference\",\n                \"by\": \"bot\",\n            }\n            self.events.append(e)\n"
  },
  {
    "path": "data/confstech.json",
    "content": "[\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-24\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GopherCon EU\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-26\",\n        \"state\": null,\n        \"tags\": [\n            \"golang\"\n        ],\n        \"url\": \"https://gophercon.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Conf42: Golang\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-24\",\n        \"state\": null,\n        \"tags\": [\n            \"golang\"\n        ],\n        \"url\": \"https://www.conf42.com/golang2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GopherCon Poland\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-15\",\n        \"state\": null,\n        \"tags\": [\n            \"golang\"\n        ],\n        \"url\": \"https://gophercon.pl\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-10-27\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"GopherCon UK\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-25\",\n        \"state\": null,\n        \"tags\": [\n            \"golang\"\n        ],\n        \"url\": \"https://www.gophercon.co.uk\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"betterCode() Go\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-10\",\n        \"state\": null,\n        \"tags\": [\n            \"golang\"\n        ],\n        \"url\": \"https://go.bettercode.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GopherCon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-06\",\n        \"state\": null,\n        \"tags\": [\n            \"golang\"\n        ],\n        \"url\": \"https://gophercon.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Singapore\",\n        \"country\": \"Singapore\",\n        \"end_date\": \"2021-01-21\",\n        \"kind\": \"conference\",\n        \"location\": \"Singapore, Singapore\",\n        \"name\": \"iOS Conf SG\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-20\",\n        \"state\": null,\n        \"tags\": [\n            \"ios\"\n        ],\n        \"url\": \"https://iosconf.sg\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Swift Heroes\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-16\",\n        \"state\": null,\n        \"tags\": [\n            \"ios\"\n        ],\n        \"url\": \"https://swiftheroes.com/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"WWDC - Apple Developer Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-07\",\n        \"state\": null,\n        \"tags\": [\n            \"ios\"\n        ],\n        \"url\": \"https://developer.apple.com/wwdc21\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ADDC - App Design & Development\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-23\",\n        \"state\": null,\n        \"tags\": [\n            \"ios\"\n        ],\n        \"url\": \"https://addconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-08-27\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"iConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"ios\"\n        ],\n        \"url\": \"https://geekle.us/ios\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Leeds\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-10-07\",\n        \"kind\": \"conference\",\n        \"location\": \"Leeds, U.K.\",\n        \"name\": \"SwiftLeeds\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-07\",\n        \"state\": null,\n        \"tags\": [\n            \"ios\"\n        ],\n        \"url\": \"https://www.swiftleeds.co.uk\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-12\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Mobiconf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-07\",\n        \"state\": null,\n        \"tags\": [\n            \"ios\"\n        ],\n        \"url\": \"https://2021.mobiconf.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-17\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DevNexus\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-17\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://devnexus.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Tel Aviv\",\n        \"country\": \"Israel\",\n        \"end_date\": \"2021-03-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Tel Aviv, Israel\",\n        \"name\": \"Node.TLV\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-10\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://www.nodetlv.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Conf42: Java\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-25\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://www.conf42.com/enterprise2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Extreme Java Camp\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-21\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://extreme-java-camp.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-26\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"jLove\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-25\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://jlove.konfy.care\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-10-07\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"JAX London\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-04\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://jaxlondon.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"JCON\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-05\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://jcon.one\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Denver, CO\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-08\",\n        \"kind\": \"conference\",\n        \"location\": \"Denver, CO, U.S.A.\",\n        \"name\": \"UberConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-05\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"http://uberconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"I Code Java Africa\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-12\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://j-sa.co\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devoxx Ukraine\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-19\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://devoxx.com.ua\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-08-05\",\n        \"cfp_open\": false,\n        \"city\": \"Oslo\",\n        \"country\": \"Norway\",\n        \"end_date\": \"2021-12-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Oslo, Norway\",\n        \"name\": \"JavaZone\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-08\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://javazone.no\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-08-01\",\n        \"cfp_open\": false,\n        \"city\": \"Chicago, IL\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-12-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Chicago, IL, U.S.A.\",\n        \"name\": \"jConf.dev\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-08\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://2021.jconf.dev\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Clearwater, FL\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-12-16\",\n        \"kind\": \"conference\",\n        \"location\": \"Clearwater, FL, U.S.A.\",\n        \"name\": \"ArchConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-13\",\n        \"state\": null,\n        \"tags\": [\n            \"java\"\n        ],\n        \"url\": \"https://archconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-10\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-13\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Scala Love in the City\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-13\",\n        \"state\": null,\n        \"tags\": [\n            \"scala\"\n        ],\n        \"url\": \"https://inthecity.scala.love\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"UX & Product Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-04\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"http://conference.uxandproduct.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-02-09\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"#ProductCon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-09\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://www.productschool.com/productcon/london\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2020-12-11\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ProductWorld\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-17\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://productworld.co\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Singapore\",\n        \"country\": \"Singapore\",\n        \"end_date\": \"2021-03-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Singapore, Singapore\",\n        \"name\": \"Mind the Product\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-18\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://www.mindtheproduct.com/mtpcon/singapore\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ABBYY Reimagine\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-23\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://www.abbyy.com/abbyy-reimagine-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"#mtpcon Digital APAC\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-14\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://www.mindtheproduct.com/mtpcon/digital/apac\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Integrate Remote - Microsoft Integration Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-01\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://www.biztalk360.com/integrate-2021-remote\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-09\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-17\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GrafanaCONline\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-07\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://grafana.com/about/events/grafanacon/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Zurich\",\n        \"country\": \"Switzerland\",\n        \"end_date\": \"2021-06-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Zurich, Switzerland\",\n        \"name\": \"European Product Owner & Requirements Engineering Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-23\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://www.europeanporeday.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"#mtpcon Digital Americas\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-14\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://www.mindtheproduct.com/mtpcon/digital/#americas\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"P3X: People Process Product eXchange\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-08\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"http://p3x.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ProductCamp\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-14\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://productcamp.pl\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Business of Software\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://businessofsoftware.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Product Owner Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-11\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://pod.inside-agile.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Birmingham\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-11-18\",\n        \"kind\": \"conference\",\n        \"location\": \"Birmingham, U.K.\",\n        \"name\": \"Canvas X\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-18\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://canvasconference.co.uk\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-01\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Postgres Build\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-30\",\n        \"state\": null,\n        \"tags\": [\n            \"product\"\n        ],\n        \"url\": \"https://www.postgresbuild.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"2nd IT Security Virtual Strategy Meeting\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-24\",\n        \"state\": null,\n        \"tags\": [\n            \"iot\"\n        ],\n        \"url\": \"https://itsecapac.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"buildingt IoT\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-24\",\n        \"state\": null,\n        \"tags\": [\n            \"iot\"\n        ],\n        \"url\": \"https://www.buildingiot.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Embedded IoT World\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-28\",\n        \"state\": null,\n        \"tags\": [\n            \"iot\"\n        ],\n        \"url\": \"https://tmt.knect365.com/embedded-iot-world\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Kubernetes on Edge Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-04\",\n        \"state\": null,\n        \"tags\": [\n            \"iot\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/kubernetes-on-edge-day\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Internet of Things\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-21\",\n        \"state\": null,\n        \"tags\": [\n            \"iot\"\n        ],\n        \"url\": \"https://iotcon.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-15\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Hardwear.io Security Trainings & Conference USA\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-05\",\n        \"state\": null,\n        \"tags\": [\n            \"iot\"\n        ],\n        \"url\": \"https://hardwear.io/usa-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Wall, NJ\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Wall, NJ, U.S.A.\",\n        \"name\": \"Vintage Computer Festival East\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-08\",\n        \"state\": null,\n        \"tags\": [\n            \"iot\"\n        ],\n        \"url\": \"https://vcfed.org/wp/festivals/vintage-computer-festival-east\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-13\",\n        \"cfp_open\": false,\n        \"city\": \"Seattle, WA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Seattle, WA, U.S.A.\",\n        \"name\": \"Embedded Linux Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"iot\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/embedded-linux-conference-north-america\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-08-20\",\n        \"cfp_open\": false,\n        \"city\": \"The Hague\",\n        \"country\": \"Netherlands\",\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"The Hague, Netherlands\",\n        \"name\": \"Hardwear.io Security Trainings and Conference Netherlands\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-25\",\n        \"state\": null,\n        \"tags\": [\n            \"iot\"\n        ],\n        \"url\": \"https://hardwear.io/netherlands-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-07\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GraphQL Asia\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-22\",\n        \"state\": null,\n        \"tags\": [\n            \"graphql\"\n        ],\n        \"url\": \"https://graphql.asia\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"The Hague\",\n        \"country\": \"Netherlands\",\n        \"end_date\": \"2021-04-14\",\n        \"kind\": \"conference\",\n        \"location\": \"The Hague, Netherlands\",\n        \"name\": \"API Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-12\",\n        \"state\": null,\n        \"tags\": [\n            \"graphql\"\n        ],\n        \"url\": \"https://apiconference.net/thehague\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-17\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"NODES\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-17\",\n        \"state\": null,\n        \"tags\": [\n            \"graphql\"\n        ],\n        \"url\": \"https://neo4j.com/nodes-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-11\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Haskell Love\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-10\",\n        \"state\": null,\n        \"tags\": [\n            \"haskell\"\n        ],\n        \"url\": \"https://haskell.love\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GraphQL Galaxy\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-09\",\n        \"state\": null,\n        \"tags\": [\n            \"api\"\n        ],\n        \"url\": \"https://graphqlgalaxy.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"cssday Digital Edition\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-11\",\n        \"state\": null,\n        \"tags\": [\n            \"css\"\n        ],\n        \"url\": \"https://2021.cssday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-03-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"HTML & CSS Days\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-22\",\n        \"state\": null,\n        \"tags\": [\n            \"css\"\n        ],\n        \"url\": \"https://javascript-days.de/html-css\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"hover\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-23\",\n        \"state\": null,\n        \"tags\": [\n            \"css\"\n        ],\n        \"url\": \"https://www.webdirections.org/hover\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Yerevan\",\n        \"country\": \"Armenia\",\n        \"end_date\": \"2021-11-13\",\n        \"kind\": \"conference\",\n        \"location\": \"Yerevan, Armenia\",\n        \"name\": \"CSS Conf Armenia\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-13\",\n        \"state\": null,\n        \"tags\": [\n            \"css\"\n        ],\n        \"url\": \"https://cssconf.am\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-01-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Deep Learning 2.0 Virtual Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-28\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.re-work.co/summits/deep-learning-summit-san-francisco-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DataOps Champions\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-02\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://dco-dataops.coriniumintelligence.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"AI+\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-03\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://getaiplus.com/event\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Darwin's Circle\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-18\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://darwins-circle.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Chief Data & Analytics Officers Financial Services\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-02\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://cdaofs.coriniumintelligence.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-03\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Reinforce\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-03\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://reinforceconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Pharma AI, IoT & Blockchain\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-11\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.virtueinsight.com/pharma/4th-Annual-Pharma-AI-IoT--Blockchain-2021-Virtual-Conference\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-23\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-01\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ODSC East\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-30\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://odsc.com/boston\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-01\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ODSC Mini-Bootcamp\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-30\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://odsc.com/bootcamp\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-07\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Data Love\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-16\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://datalove.konfy.care\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-17\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DataYap Virtual Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-17\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://conference.datayap.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-15\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Data Science fwdays\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-24\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://fwdays.com/en/event/data-science-fwdays-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Global AI Student Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-24\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://aiconf.education\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Minds Mastering Machines\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-27\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://m3-konferenz.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Kubernetes AI Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-04\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/kubernetes-ai-day\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Kafka Summit Europe\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-11\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.kafka-summit.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DATA+AI Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-24\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://databricks.com/dataaisummit\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ODSC Europe Virtual Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://odsc.com/europe\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-18\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ML Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-21\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://mlconference.ai/munich\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Postgres Vision\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-22\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.postgresvision.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Las Vegas, NV\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-06-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Las Vegas, NV, U.S.A.\",\n        \"name\": \"Intercon Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-23\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.intercon.world\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Apache Airflow Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-08\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://airflowsummit.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-14\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"MongoDB.Live\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.mongodb.com/live\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Columbus, OH\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-07-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Columbus, OH, U.S.A.\",\n        \"name\": \"Women in Analytics Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-21\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://womeninanalytics.com/conference\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-05\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Kafka Summit APAC\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-27\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.kafka-summit.org/events/kafka-summit-apac-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Conf42: Machine Learning\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-29\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.conf42.com/ml2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-26\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"IEEE Big Data Service\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-23\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"http://www.big-dataservice.net\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-26\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"IEEE Mobile Cloud\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-23\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.mobile-cloud.net\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ODSC APAC Virtual Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-15\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://odsc.com/apac\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-08-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PostgresConf South Africa\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-05\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://postgresconf.org/conferences/SouthAfrica2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-14\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Big Data and AI Toronto\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-13\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.bigdata-toronto.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Lisbon\",\n        \"country\": \"Portugal\",\n        \"end_date\": \"2021-11-04\",\n        \"kind\": \"conference\",\n        \"location\": \"Lisbon, Portugal\",\n        \"name\": \"Web Summit; Developers & Data\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-01\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://websummit.com/themes/developers-and-data\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-10-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-02\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"OSA Con \\u2014 Open Source Analytics Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-02\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://altinity.com/osa-con-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Dubai\",\n        \"country\": \"United Arab Emirates\",\n        \"end_date\": \"2021-11-04\",\n        \"kind\": \"conference\",\n        \"location\": \"Dubai, United Arab Emirates\",\n        \"name\": \"Big Data Analytics and Data Science\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-03\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://crgconferences.com/datascience\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Burlingame, CA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-16\",\n        \"kind\": \"conference\",\n        \"location\": \"Burlingame, CA, U.S.A.\",\n        \"name\": \"ODSC West AIx Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-16\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://odsc.com/california/aix-west\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"San Francisco, CA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-18\",\n        \"kind\": \"conference\",\n        \"location\": \"San Francisco, CA, U.S.A.\",\n        \"name\": \"ODSC West\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-16\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://odsc.com/california\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"IT NonStop\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-18\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://it-nonstop.net\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Berlin\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-11-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Berlin, Germany\",\n        \"name\": \"API Summit, DDD Summit & Microservices Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-22\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://api-summit.de/berlin\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ML Conference Singapore\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-23\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://mlconference.ai/singapore\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Minds Mastering Machines \\u2013 Special Day MLOps\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-24\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://m3-konferenz.de/mlops.php\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Berlin\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-12-08\",\n        \"kind\": \"conference\",\n        \"location\": \"Berlin, Germany\",\n        \"name\": \"ML Conference Berlin\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-06\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://mlconference.ai/berlin\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Berlin\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-12-08\",\n        \"kind\": \"conference\",\n        \"location\": \"Berlin, Germany\",\n        \"name\": \"Voice Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-06\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://voicecon.net\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"data2day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-08\",\n        \"state\": null,\n        \"tags\": [\n            \"data\"\n        ],\n        \"url\": \"https://www.data2day.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Rust Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-28\",\n        \"state\": null,\n        \"tags\": [\n            \"rust\"\n        ],\n        \"url\": \"https://kiosk.entwickler.de/rust-day\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Cloud Native Rust Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-03\",\n        \"state\": null,\n        \"tags\": [\n            \"rust\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/cloud-native-rust-day\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-13\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"betterCode Rust\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-13\",\n        \"state\": null,\n        \"tags\": [\n            \"rust\"\n        ],\n        \"url\": \"https://rust.bettercode.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Rust Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-06\",\n        \"state\": null,\n        \"tags\": [\n            \"rust\"\n        ],\n        \"url\": \"https://entwickler.de/rust-summit\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"C++Now\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-02\",\n        \"state\": null,\n        \"tags\": [\n            \"cpp\"\n        ],\n        \"url\": \"https://cppnow.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Aurora, CO\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"Aurora, CO, U.S.A.\",\n        \"name\": \"CppCon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-24\",\n        \"state\": null,\n        \"tags\": [\n            \"cpp\"\n        ],\n        \"url\": \"https://cppcon.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-30\",\n        \"cfp_open\": false,\n        \"city\": \"Houston, TX\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Houston, TX, U.S.A.\",\n        \"name\": \"Into the Box\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-23\",\n        \"state\": null,\n        \"tags\": [\n            \"cfml\"\n        ],\n        \"url\": \"https://intothebox.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"CFSummit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-07\",\n        \"state\": null,\n        \"tags\": [\n            \"cfml\"\n        ],\n        \"url\": \"https://cfsummit2021.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"SKILup Day: Cloud Native and Serverless\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-25\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsinstitute.com/cns-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devopsdays Texas\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-02\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-texas/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Birmingham\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-03-05\",\n        \"kind\": \"conference\",\n        \"location\": \"Birmingham, U.K.\",\n        \"name\": \"Devopsdays Birmingham\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-04\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-birmingham/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-28\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ProgressiveDelivery & SLO Conf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-18\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://progressivedeliveryconf21.heysummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"SKILup Day: Value Stream Management\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-18\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsinstitute.com/vsm-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Solocon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-23\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://solocon.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"The DEVOPS Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-23\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.thedevopsconference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Sydney\",\n        \"country\": \"Australia\",\n        \"end_date\": \"2021-03-26\",\n        \"kind\": \"conference\",\n        \"location\": \"Sydney, Australia\",\n        \"name\": \"DevOps Talks Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-25\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devops.talksplus.com/sydney/devops.html\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Boise, ID\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-04-07\",\n        \"kind\": \"conference\",\n        \"location\": \"Boise, ID, U.S.A.\",\n        \"name\": \"Devopsdays Boise\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-06\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-boise/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Raleigh, NC\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-04-08\",\n        \"kind\": \"conference\",\n        \"location\": \"Raleigh, NC, U.S.A.\",\n        \"name\": \"Devopsdays Raleigh\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-08\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-raleigh/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-04-23\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"DevOpsCon London\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-20\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopscon.io/london\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"SKILup Day: Agile Transformation\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-22\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsinstitute.com/at-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Cloud Native Wasm Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-04\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/cloud-native-wasm-day\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devopsdays Seattle\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-04\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-seattle/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ServiceMeshCon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-04\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/servicemeshcon-europe\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"fluentcon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-04\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/fluentcon\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"KubeCon + CloudNativeCon EU\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-04\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/kubecon-cloudnativecon-europe\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-13\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DevOps Pro Europe\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-11\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopspro.lt\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Paris\",\n        \"country\": \"France\",\n        \"end_date\": \"2021-05-18\",\n        \"kind\": \"conference\",\n        \"location\": \"Paris, France\",\n        \"name\": \"Devopsdays Paris\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-18\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-paris/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-19\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DevOps Enterprise Summit Virtual - Europe\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-18\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://events.itrevolution.com/virtual\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"SKILup Day: Site Reliability Engineering (SRE)\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-20\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsinstitute.com/sre-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Porto\",\n        \"country\": \"Portugal\",\n        \"end_date\": \"2021-05-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Porto, Portugal\",\n        \"name\": \"Devopsdays Portugal\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-24\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-portugal/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Porto\",\n        \"country\": \"Portugal\",\n        \"end_date\": \"2021-05-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Porto, Portugal\",\n        \"name\": \"Devopsdays Poznan\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-24\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-poznan/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"swampUP\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-25\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://swampup.jfrog.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DockerCon Live\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-27\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.docker.com/dockercon\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-23\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"LISA\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-01\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.usenix.org/conference/lisa21\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Prague\",\n        \"country\": \"Czech Republic\",\n        \"end_date\": \"2021-06-03\",\n        \"kind\": \"conference\",\n        \"location\": \"Prague, Czech Republic\",\n        \"name\": \"Devopsdays Prague\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-02\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-prague/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DDD Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-07\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://ddd-summit.de/muenchen\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-06-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"Microservices Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-07\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://microservices-summit.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-06-09\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"Lead Dev London\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://theleaddeveloper.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Berlin\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-06-17\",\n        \"kind\": \"conference\",\n        \"location\": \"Berlin, Germany\",\n        \"name\": \"DevOps Conference Hybrid Edition\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-14\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopscon.io/berlin\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-28\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"stackconf online\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-15\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://stackconf.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-17\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"{unscripted}\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-16\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.unscriptedconf.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PagerDuty Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-22\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.summit.pagerduty.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-05\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"cdCon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-23\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/cdcon\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devopsdays NL\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-29\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-amsterdam/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Zurich\",\n        \"country\": \"Switzerland\",\n        \"end_date\": \"2021-06-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Zurich, Switzerland\",\n        \"name\": \"DevOps Fusion\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-30\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devops-fusion.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ContainerDays\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-06\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.containerdays.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devopsdays Porto Alegre\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-10\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-porto-alegre/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Minneapolis, MN\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-07-21\",\n        \"kind\": \"conference\",\n        \"location\": \"Minneapolis, MN, U.S.A.\",\n        \"name\": \"Devopsdays Minneapolis\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-20\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-minneapolis/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-21\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devopsdays Portland\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-20\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-portland/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-31\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devopsdays Medell\\u00edn\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-30\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-medellin/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GitLab Commit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-03\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://about.gitlab.com/events/commit\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Cloud-Native Days with Kubernetes\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-04\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.mediaopsevents.com/cloudnative2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-31\",\n        \"cfp_open\": false,\n        \"city\": \"Zurich\",\n        \"country\": \"Switzerland\",\n        \"end_date\": \"2021-09-08\",\n        \"kind\": \"conference\",\n        \"location\": \"Zurich, Switzerland\",\n        \"name\": \"Devopsdays Zurich\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-07\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-zurich/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devopsdays Blumenau\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-09\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-blumenau/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Berlin\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-09-15\",\n        \"kind\": \"conference\",\n        \"location\": \"Berlin, Germany\",\n        \"name\": \"Das gro\\u00dfe Trainingsevent f\\u00fcr Softwarearchitektur\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-13\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://software-architecture-summit.de/berlin\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Washington, DC\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-17\",\n        \"kind\": \"conference\",\n        \"location\": \"Washington, DC, U.S.A.\",\n        \"name\": \"Devopsdays Washington, DC\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-16\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-washington-dc/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devopsdays Istanbul\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-18\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-istanbul/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Houston, TX\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-22\",\n        \"kind\": \"conference\",\n        \"location\": \"Houston, TX, U.S.A.\",\n        \"name\": \"Devopsdays Houston\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-21\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-houston/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Dublin\",\n        \"country\": \"Ireland\",\n        \"end_date\": \"2021-09-29\",\n        \"kind\": \"conference\",\n        \"location\": \"Dublin, Ireland\",\n        \"name\": \"Linux Plumbers Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://linuxplumbersconf.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"New York, NY\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-30\",\n        \"kind\": \"conference\",\n        \"location\": \"New York, NY, U.S.A.\",\n        \"name\": \"DevOpsCon New York\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopscon.io/new-york\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Conf42: SRE\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-30\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.conf42.com/sre2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Devopsdays Pozna\\u0144\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-04\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-poznan/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"San Francisco, CA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-07\",\n        \"kind\": \"conference\",\n        \"location\": \"San Francisco, CA, U.S.A.\",\n        \"name\": \"Demuxed\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-05\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://2021.demuxed.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-26\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DevOps Enterprise Summit Virtual - US\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-05\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://events.itrevolution.com/virtual\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"containerday Digital Edition\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-08\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://2021.containerday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"KubeCon + CloudNativeCon North America\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-12\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-31\",\n        \"cfp_open\": false,\n        \"city\": \"Buffalo, NY\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-14\",\n        \"kind\": \"conference\",\n        \"location\": \"Buffalo, NY, U.S.A.\",\n        \"name\": \"Devopsdays Buffalo\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-13\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-buffalo/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"HashiConf Global\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-19\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://hashiconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Dash\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-26\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.dashcon.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-09-12\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Cloud Nein\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-28\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://cloudne.in\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Melbourne\",\n        \"country\": \"Australia\",\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"Melbourne, Australia\",\n        \"name\": \"Devopsdays Melbourne\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-28\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-melbourne/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Nashville, TN\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"Nashville, TN, U.S.A.\",\n        \"name\": \"Devopsdays Nashville\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-28\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-nashville/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-09-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Software Architecture fwdays conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-30\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://fwdays.com/en/event/architecture-fwdays-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Nashville, TN\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-04\",\n        \"kind\": \"conference\",\n        \"location\": \"Nashville, TN, U.S.A.\",\n        \"name\": \"Automation + DevOps Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-02\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.automationsummit.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"D\\u00fcsseldorf\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-11-10\",\n        \"kind\": \"conference\",\n        \"location\": \"D\\u00fcsseldorf, Germany\",\n        \"name\": \"EKON\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-08\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://entwickler-konferenz.de/de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-09-22\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Grafana ObservabilityCon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-08\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://grafana.com/about/events/observabilitycon/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Potsdam\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-11-18\",\n        \"kind\": \"conference\",\n        \"location\": \"Potsdam, Germany\",\n        \"name\": \"Agile Testing Days\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-15\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://agiletestingdays.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-17\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"deploy\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-16\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://deploy.digitalocean.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Continuous Lifecycle\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-17\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://www.continuouslifecycle.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DevOpsCon Singapore\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-22\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopscon.io/singapore\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Tel Aviv\",\n        \"country\": \"Israel\",\n        \"end_date\": \"2021-11-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Tel Aviv, Israel\",\n        \"name\": \"DevOpsDays Tel Aviv\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-24\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://tlvcommunity.dev/devopsdays\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bogot\\u00e1\",\n        \"country\": \"Colombia\",\n        \"end_date\": \"2021-11-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Bogot\\u00e1, Colombia\",\n        \"name\": \"Devopsdays Bogot\\u00e1\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-24\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopsdays.org/events/2021-bogota/welcome\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-12-02\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"DevOps Conference Munich\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-29\",\n        \"state\": null,\n        \"tags\": [\n            \"devops\"\n        ],\n        \"url\": \"https://devopscon.io/munich\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"HackOn\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-18\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://hackon.es\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"sec4dev\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-22\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://sec4dev.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Tampa, FL\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-02-27\",\n        \"kind\": \"conference\",\n        \"location\": \"Tampa, FL, U.S.A.\",\n        \"name\": \"B-Sides Tampa\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-27\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://bsidestampa.net\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Virtual Security Operation Center Summit Budapest\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-18\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://www.socsummit.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"CAW-Cyber awareness week\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-01\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://www.caw.asia\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"IT Security Camp\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-03\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://it-security-camp.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Cloud Native Security Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-04\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/cloud-native-security-day-europe\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-10\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-06\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Qubit Conference New York\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-05\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://nyc.qubitconference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bochum\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-05-21\",\n        \"kind\": \"conference\",\n        \"location\": \"Bochum, Germany\",\n        \"name\": \"RuhrSec\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-18\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://www.ruhrsec.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-05-21\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"IT Security Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-19\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://it-security-summit.de/muenchen\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Jasna\",\n        \"country\": \"Slovakia\",\n        \"end_date\": \"2021-05-27\",\n        \"kind\": \"conference\",\n        \"location\": \"Jasna, Slovakia\",\n        \"name\": \"QuBit Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-26\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://tatry.qubitconference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"IdentityNORTH Annual Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-02\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://www.identitynorth.ca/events/identitynorth2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Las Vegas, NV\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-08-05\",\n        \"kind\": \"conference\",\n        \"location\": \"Las Vegas, NV, U.S.A.\",\n        \"name\": \"BlackHat USA\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-31\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://blackhat.com/us-21\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DEF CON\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-05\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://defcon.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-01\",\n        \"cfp_open\": false,\n        \"city\": \"Denver, CO\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Denver, CO, U.S.A.\",\n        \"name\": \"Women in CyberSecurity (WiCyS)\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-08\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://www.wicys.org/events/wicys-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"HexCon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-21\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://www.hexnode.com/events/hexcon21\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-27\",\n        \"cfp_open\": false,\n        \"city\": \"Dublin\",\n        \"country\": \"Ireland\",\n        \"end_date\": \"2021-09-29\",\n        \"kind\": \"conference\",\n        \"location\": \"Dublin, Ireland\",\n        \"name\": \"Linux Security Summit Europe\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/linux-security-summit-europe\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-11\",\n        \"cfp_open\": false,\n        \"city\": \"Seattle, WA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-01\",\n        \"kind\": \"conference\",\n        \"location\": \"Seattle, WA, U.S.A.\",\n        \"name\": \"Linux Security Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-29\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/linux-security-summit-north-america\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Augusta, GA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-01\",\n        \"kind\": \"conference\",\n        \"location\": \"Augusta, GA, U.S.A.\",\n        \"name\": \"Security Onion Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-01\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://securityonionsolutions.com/conference\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Augusta, GA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-02\",\n        \"kind\": \"conference\",\n        \"location\": \"Augusta, GA, U.S.A.\",\n        \"name\": \"BSides\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-02\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://bsidesaugusta.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Ory Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-28\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://ory.sh/summit21\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"CyberSec&AI Connected\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-04\",\n        \"state\": null,\n        \"tags\": [\n            \"security\"\n        ],\n        \"url\": \"https://cybersecai.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-01-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"OLX D'Light\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-21\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://olxdlight.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Tulsa, OK\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-02-05\",\n        \"kind\": \"conference\",\n        \"location\": \"Tulsa, OK, U.S.A.\",\n        \"name\": \"UXOK\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-05\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://uxok.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"UXLx Masters\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-10\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://masters.ux-lx.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Chandigarh\",\n        \"country\": \"India\",\n        \"end_date\": \"2021-02-12\",\n        \"kind\": \"conference\",\n        \"location\": \"Chandigarh, India\",\n        \"name\": \"Outcome\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-11\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://outcomeconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"World-class Designer Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-18\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"http://conf.wcd.school\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Birmingham\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-03-18\",\n        \"kind\": \"conference\",\n        \"location\": \"Birmingham, U.K.\",\n        \"name\": \"Canvas\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-18\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://www.canvasconference.co.uk\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"The BAD Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-14\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://thebadconference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Smashing Meets\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-27\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://smashingconf.com/meets-actions\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"IAC\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-28\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://www.theiaconference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Global FinTech Design Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-25\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://fintechdesignsummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-06\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"UXcamp Europe\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-05\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://www.uxcampeurope.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-14\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"webinale\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-07\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://webinale.de/en\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DDDx: Domain-Driven Design eXchange\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"http://ddd-exchange.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-14\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"CSSCAMP\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-14\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://csscamp.tech\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Savvy UX Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-17\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://www.savvyuxsummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"UX Y'all\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-23\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://www.uxyall.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Budapest\",\n        \"country\": \"Hungary\",\n        \"end_date\": \"2021-10-06\",\n        \"kind\": \"conference\",\n        \"location\": \"Budapest, Hungary\",\n        \"name\": \"Amuse\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-04\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://amuseconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Graz\",\n        \"country\": \"Austria\",\n        \"end_date\": \"2021-10-14\",\n        \"kind\": \"conference\",\n        \"location\": \"Graz, Austria\",\n        \"name\": \"World Usability Congress\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-13\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://worldusabilitycongress.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-07\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PUSH UX\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-21\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://push-conference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Ottawa\",\n        \"country\": \"Canada\",\n        \"end_date\": \"2021-11-07\",\n        \"kind\": \"conference\",\n        \"location\": \"Ottawa, Canada\",\n        \"name\": \"CanUX\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-04\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://canux.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-11-26\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"UX Live\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-25\",\n        \"state\": null,\n        \"tags\": [\n            \"ux\"\n        ],\n        \"url\": \"https://uxliveconference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Tokyo\",\n        \"country\": \"Japan\",\n        \"end_date\": \"2021-01-05\",\n        \"kind\": \"conference\",\n        \"location\": \"Tokyo, Japan\",\n        \"name\": \"International Conference on Computational Mathematics and Applied Physics\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-04\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"http://www.iccmap.iisrc.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-01-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Global Diversity CfP Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-23\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.globaldiversitycfpday.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bremen\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-01-28\",\n        \"kind\": \"conference\",\n        \"location\": \"Bremen, Germany\",\n        \"name\": \"Univention Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-28\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.univention-summit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"FOSDEM\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-06\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://fosdem.org/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Amsterdam\",\n        \"country\": \"Netherlands\",\n        \"end_date\": \"2021-02-12\",\n        \"kind\": \"conference\",\n        \"location\": \"Amsterdam, Netherlands\",\n        \"name\": \"Frontend Love\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-08\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.frontenddeveloperlove.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2020-12-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"InfoQ Live\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-16\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://live.infoq.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2020-12-11\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"CloudWorld\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-17\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://cloudworldconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2020-10-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DeveloperWeek\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-17\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.developerweek.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Conf42: Chaos Engineering\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-25\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.conf42.com/ce2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-26\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-26\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Afro Future Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-26\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"http://afrofuturesummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"SINFO\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-01\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://sinfo.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DE{CODE}: The Virtual Developer Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-04\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://attend.wpengine.com/decode-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Software Architecture Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-10\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://software-architecture-summit.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"betterCode API\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-23\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://api.bettercode.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"The Hague\",\n        \"country\": \"Netherlands\",\n        \"end_date\": \"2021-04-15\",\n        \"kind\": \"conference\",\n        \"location\": \"The Hague, Netherlands\",\n        \"name\": \"Serverless Architecture Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-12\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://serverless-architecture.io/thehague\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-10\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-13\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"AzureLive\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-13\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://azurelive.nl\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-10\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-17\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Global Azure\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-15\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://globalazure.net\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-05\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DeveloperWeek Europe\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-27\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.developerweek.com/europe\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Red Hat Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-27\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.redhat.com/en/summit\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-26\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GIDS Live\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-27\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.developersummit.com/live/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DevX\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-28\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://devxconf.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Conf42: Cloud Native\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-29\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.conf42.com/cloud2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-06\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"All Day Hey! Live\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-06\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://alldayhey.com/live\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"QCon Plus\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-10\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://plus.qconferences.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-12\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DeveloperWeek Management\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-11\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.developerweek.com/global/conference/management\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-28\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-13\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Percona Live ONLINE\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-12\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.percona.com/live/conferences\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"!!Con\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-15\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"http://bangbangcon.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-05\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Codemotion\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-18\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://events.codemotion.com/conferences/online/2021/online-tech-conference-spring\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"I T.A.K.E\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-26\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://itakeunconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Vewd.dev\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-26\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://vewd.dev\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-02\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"F8 Refresh\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-02\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://developers.facebook.com/f8\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"WEnnovate\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-03\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://wennovate.tech\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-06-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"API Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-07\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://api-summit.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Women Tech Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-07\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.womentech.net/women-tech-conference\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Proxyclick Connect\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.proxyclick.com/proxyclick-connect-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Aarhus\",\n        \"country\": \"Denmark\",\n        \"end_date\": \"2021-06-11\",\n        \"kind\": \"conference\",\n        \"location\": \"Aarhus, Denmark\",\n        \"name\": \"GOTO Aarhus\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://gotoaarhus.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Sparks, NV\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-06-18\",\n        \"kind\": \"conference\",\n        \"location\": \"Sparks, NV, U.S.A.\",\n        \"name\": \"Wild West Hackin\\u2019 Fest - Way West\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-16\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://wildwesthackinfest.com/way-west\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GitOps Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-22\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/gitops-summit\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Spinnaker Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-22\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/spinnaker-summit\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-01\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"WeAreDevelopers World Congress\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-28\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.wearedevelopers.com/world-congress\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-06\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Big BFSI Future Tech Show\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-06\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://tresconglobal.com/conferences/bfsi/india\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Wellington\",\n        \"country\": \"New Zealand\",\n        \"end_date\": \"2021-08-06\",\n        \"kind\": \"conference\",\n        \"location\": \"Wellington, New Zealand\",\n        \"name\": \"New Zealand Game Developers Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-04\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://nzgdc.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-06\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Ignite Innovation - Developer Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-06\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.igniteinnovationfl.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-15\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"The Raku Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-07\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://conf.raku.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Moar Serverless!!\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-12\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://moarserverless.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-04\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"WorldFestival\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-17\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://worldfestival.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-18\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"mobileWeek\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-17\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://mobileweek.co\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"REFACTR.TECH\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-18\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.refactr.tech\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-31\",\n        \"cfp_open\": false,\n        \"city\": \"Melbourne\",\n        \"country\": \"Australia\",\n        \"end_date\": \"2021-08-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Melbourne, Australia\",\n        \"name\": \"Voxxed Days Downunder\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-23\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://australia.voxxeddays.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"WebConf LATAM\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-23\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://webconf.tech\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Minneapolis, MN\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-08-26\",\n        \"kind\": \"conference\",\n        \"location\": \"Minneapolis, MN, U.S.A.\",\n        \"name\": \"NDC Minnesota\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-24\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://ndcminnesota.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"International Conference on Cloud Computing and eGovernance\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-26\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://iccceg.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Reliable Web Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-26\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://reliablewebsummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Denver, CO\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-08-28\",\n        \"kind\": \"conference\",\n        \"location\": \"Denver, CO, U.S.A.\",\n        \"name\": \"Mile High Software Testing Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-27\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.milehightesting.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-31\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"betterCode Wasm\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-31\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://wasm.bettercode.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Sibenik\",\n        \"country\": \"Croatia\",\n        \"end_date\": \"2021-09-03\",\n        \"kind\": \"conference\",\n        \"location\": \"Sibenik, Croatia\",\n        \"name\": \"Web Summer Camp\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-02\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://2021.websummercamp.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Ignite Innovation - Developers Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-03\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.igniteinnovationfl.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-31\",\n        \"cfp_open\": false,\n        \"city\": \"Split\",\n        \"country\": \"Croatia\",\n        \"end_date\": \"2021-09-08\",\n        \"kind\": \"conference\",\n        \"location\": \"Split, Croatia\",\n        \"name\": \"Infobip Shift\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-07\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://shift.infobip.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bouville\",\n        \"country\": \"France\",\n        \"end_date\": \"2021-09-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Bouville, France\",\n        \"name\": \"DevBreak\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-08\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.devbreak.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Denver, CO\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Denver, CO, U.S.A.\",\n        \"name\": \"fintech_devcon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-08\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"http://fintechdevcon.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Huntsville, AL\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Huntsville, AL, U.S.A.\",\n        \"name\": \"DevSpace\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-09\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"http://www.devspaceconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Azure Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-13\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"http://azuresummit.live\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Kansas City, MO\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-17\",\n        \"kind\": \"conference\",\n        \"location\": \"Kansas City, MO, U.S.A.\",\n        \"name\": \"Kansas City Developer Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-15\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.kcdc.info\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Auckland\",\n        \"country\": \"New Zealand\",\n        \"end_date\": \"2021-09-22\",\n        \"kind\": \"conference\",\n        \"location\": \"Auckland, New Zealand\",\n        \"name\": \"Full Stack Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-21\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.fullstackday.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Wild West Hackin\\u2019 Fest - Deadwood\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-22\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://wildwesthackinfest.com/deadwood\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"UIG-Tagung\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-23\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.kompetenzzentrum-usability.digital/events/uig-tagung-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Scenic City Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-24\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://sceniccitysummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Tenerife\",\n        \"country\": \"Spain\",\n        \"end_date\": \"2021-09-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Tenerife, Spain\",\n        \"name\": \"AdaLoversConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-25\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://adaloversconf.es\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-13\",\n        \"cfp_open\": false,\n        \"city\": \"Seattle, WA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Seattle, WA, U.S.A.\",\n        \"name\": \"Open Source Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/open-source-summit-north-america\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Paris\",\n        \"country\": \"France\",\n        \"end_date\": \"2021-10-01\",\n        \"kind\": \"conference\",\n        \"location\": \"Paris, France\",\n        \"name\": \"Devoxx\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-29\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.devoxx.fr\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"St. Louis, MO\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-02\",\n        \"kind\": \"conference\",\n        \"location\": \"St. Louis, MO, U.S.A.\",\n        \"name\": \"Strange Loop\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-30\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://thestrangeloop.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Kyiv\",\n        \"country\": \"Ukraine\",\n        \"end_date\": \"2021-10-02\",\n        \"kind\": \"conference\",\n        \"location\": \"Kyiv, Ukraine\",\n        \"name\": \"QA Fest\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-01\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"http://qafest.com/en\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-08-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"LinuxConf [ZA]\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-04\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://linuxconf.co.za\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"P99 CONF\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-06\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.p99conf.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-27\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Paris Web\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-07\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.paris-web.fr\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Central Wisconsin IT Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-09\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://cwitc.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Lagos\",\n        \"country\": \"Nigeria\",\n        \"end_date\": \"2021-10-16\",\n        \"kind\": \"conference\",\n        \"location\": \"Lagos, Nigeria\",\n        \"name\": \"CONCATENATE\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-09\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.concatenate.dev\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Portland, OR\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-13\",\n        \"kind\": \"conference\",\n        \"location\": \"Portland, OR, U.S.A.\",\n        \"name\": \"Pacific NW Software Quality Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-11\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.pnsqc.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-19\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-14\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Software Architecture Gathering \\u2013 Digital\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-11\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"http://conferences.isaqb.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-14\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Google Cloud Next\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-12\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://cloud.withgoogle.com/next/sf\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Gdansk\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2021-10-15\",\n        \"kind\": \"conference\",\n        \"location\": \"Gdansk, Poland\",\n        \"name\": \"Infoshare\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-14\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://infoshare.pl\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Kongsberg\",\n        \"country\": \"Norway\",\n        \"end_date\": \"2021-10-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Kongsberg, Norway\",\n        \"name\": \"NDC Tech Town\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-17\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://ndctechtown.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-09\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-21\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Codemotion - Spanish Edition\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-19\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://events.codemotion.com/conferences/online/2021/online-tech-conference-spanish-edition-autumn\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-09\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-21\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DevNet Create\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-19\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://developer.cisco.com/devnetcreate/2021/home\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"HackConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-22\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.hackconf.bg\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-26\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"BlaBlaConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-22\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.blablaconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-09\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"API World\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-26\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://apiworld.co\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Amsterdam\",\n        \"country\": \"Netherlands\",\n        \"end_date\": \"2021-10-27\",\n        \"kind\": \"conference\",\n        \"location\": \"Amsterdam, Netherlands\",\n        \"name\": \"ITNEXT Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-27\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.itnextsummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Elevate\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-28\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://hopin.com/events/elevate-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"OpenPOWER Summit NA\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-28\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://events.linuxfoundation.org/openpower-summit-north-america\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Reston, VA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Reston, VA, U.S.A.\",\n        \"name\": \"Northern Virginia Software Symposium\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-29\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://nofluffjuststuff.com/reston\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-31\",\n        \"cfp_open\": false,\n        \"city\": \"San Francisco, CA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-05\",\n        \"kind\": \"conference\",\n        \"location\": \"San Francisco, CA, U.S.A.\",\n        \"name\": \"QCon San Francisco\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-01\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://qconsf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-15\",\n        \"cfp_open\": false,\n        \"city\": \"New Orleans, LA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-05\",\n        \"kind\": \"conference\",\n        \"location\": \"New Orleans, LA, U.S.A.\",\n        \"name\": \"The Big Transaction\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-04\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.thebigtransaction.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-06\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"SeaGL\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-05\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://seagl.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Copenhagen\",\n        \"country\": \"Denmark\",\n        \"end_date\": \"2021-11-12\",\n        \"kind\": \"conference\",\n        \"location\": \"Copenhagen, Denmark\",\n        \"name\": \"GOTO Copenhagen\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-08\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://gotocph.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-30\",\n        \"cfp_open\": false,\n        \"city\": \"Santa Clara, CA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-11\",\n        \"kind\": \"conference\",\n        \"location\": \"Santa Clara, CA, U.S.A.\",\n        \"name\": \"AWE USA\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-09\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.awexr.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-09\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Codemotion - Italian Edition\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-09\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://events.codemotion.com/conferences/online/2021/online-tech-conference-italian-edition-autumn\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bolzano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2021-11-13\",\n        \"kind\": \"conference\",\n        \"location\": \"Bolzano, Italy\",\n        \"name\": \"South Tyrol Free Software Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-12\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.sfscon.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Orlando, FL\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Orlando, FL, U.S.A.\",\n        \"name\": \"Live! 360\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-15\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://live360events.com/events/orlando-2021/Home.aspx\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"AsyncAPI Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-16\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://conference.asyncapi.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DeveloperWeek Austin\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-17\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.developerweek.com/Austin\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-09-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"EmacsConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-27\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://emacsconf.org/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Oslo\",\n        \"country\": \"Norway\",\n        \"end_date\": \"2021-12-03\",\n        \"kind\": \"conference\",\n        \"location\": \"Oslo, Norway\",\n        \"name\": \"NDC Oslo\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-29\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://ndcoslo.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-10-29\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Embedded Fest\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-03\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://embeddedfest.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Clearwater, FL\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-12-08\",\n        \"kind\": \"conference\",\n        \"location\": \"Clearwater, FL, U.S.A.\",\n        \"name\": \"Progressive Web Experience\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-05\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://progressivewebexperience.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"IT-Tage Remote\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-06\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"http://www.it-tage.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"MuleSoft Transform\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-07\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://www.mulesoft.com/transform\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DevTernity\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-10\",\n        \"state\": null,\n        \"tags\": [\n            \"general\"\n        ],\n        \"url\": \"https://devternity.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-28\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Lazy Load\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-11\",\n        \"state\": null,\n        \"tags\": [\n            \"performance\"\n        ],\n        \"url\": \"https://www.webdirections.org/lazyload\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Data Nerd Days - USA\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-03\",\n        \"state\": null,\n        \"tags\": [\n            \"performance\"\n        ],\n        \"url\": \"https://newrelic.com/events/data-nerd-days\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-01\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Data Nerd Days - EMEA\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-01\",\n        \"state\": null,\n        \"tags\": [\n            \"performance\"\n        ],\n        \"url\": \"https://newrelic.com/events/data-nerd-days\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Belagavi\",\n        \"country\": \"India\",\n        \"end_date\": \"2021-01-31\",\n        \"kind\": \"conference\",\n        \"location\": \"Belagavi, India\",\n        \"name\": \"BelPy\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-30\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"http://belpy.in\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyCon Namibia\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-18\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://na.pycon.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"enterPy\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-09\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.enterpy.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Conf42: Python\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-27\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.conf42.com/python2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Scipy\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-12\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://scipy2021.scipy.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-01\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"EuroPython\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-26\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://ep2021.europython.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-10\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyCon Au\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-10\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"http://2021.pycon.org.au\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyCon India\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-17\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://in.pycon.org/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyConZA\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-07\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://za.pycon.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-13\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Machine Learning Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-11\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://mlsummit.ai\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Xtreme Python\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-24\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://xtremepython.dev\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Phoenix, AZ\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-01-15\",\n        \"kind\": \"conference\",\n        \"location\": \"Phoenix, AZ, U.S.A.\",\n        \"name\": \"HalfStack Phoenix\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-15\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://halfstackconf.com/phoenix\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-01-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"TestJS Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-28\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://testjssummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-01-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"TheJam.dev\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-28\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://thejam.dev\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"c't <webdev>\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-09\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://ctwebdev.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Node Congress\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-18\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://nodecongress.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2020-12-23\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"JSworld\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-22\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"http://www.jsworldconference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2020-12-23\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Vue.js Amsterdam\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-26\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"http://www.vuejs.amsterdam\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GatsbyConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-02\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.gatsbyconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Prague\",\n        \"country\": \"Czech Republic\",\n        \"end_date\": \"2021-03-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Prague, Czech Republic\",\n        \"name\": \"ReactiveConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-08\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://reactiveconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-03-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"Angular Days\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-22\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://javascript-days.de/angular\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-03-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"JavaScript Days\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-22\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://javascript-days.de/muenchen\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-03-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"React Days\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-22\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://javascript-days.de/react\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-03-26\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"CityJS\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-24\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://cityjsconf.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-28\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"React fwdays\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-27\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://fwdays.com/en/event/react-fwdays-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-15\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DevOps.js Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-29\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://devopsjsconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Ember Conf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-29\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://emberconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-14\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Vueconf.US\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-14\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"http://vueconf.us\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"React Summit Remote Edition\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-14\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://remote.reactsummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Cluj-Napoca\",\n        \"country\": \"Romania\",\n        \"end_date\": \"2021-04-16\",\n        \"kind\": \"conference\",\n        \"location\": \"Cluj-Napoca, Romania\",\n        \"name\": \"JSHeroes\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-15\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://jsheroes.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-04-23\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"International JavaScript Conference London\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-21\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://javascript-conference.com/london\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"StrapiConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-22\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://conf.strapi.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ng-conf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-22\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.2021.ng-conf.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Svelte Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-25\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://sveltesummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"React Case Study Festival\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-27\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://react.geekle.us\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-28\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"vueday\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-29\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://2021.vueday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-02\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-21\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"JSWorld Conference USA\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-21\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://usa.jsworldconference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-20\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-02\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Online Angular Global Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-01\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://angular.geekle.us\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-02\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"OpenJS World\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-02\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://openjsf.org/openjs-world-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-02\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"React Wednesdays All-Day Edition\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-02\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.telerik.com/react-wednesdays-all-day-edition\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-25\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"JavaScript fwdays\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-05\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://fwdays.com/en/event/javascript-fwdays-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"React Day Norway\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-09\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://reactnorway.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-10\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"JSNation Live\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-09\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://live.jsnation.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"NextJs Conf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-15\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://nextjs.org/conf\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Ionic Conf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-23\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://ionic.io/ioniconf\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-23\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-06\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"jsday\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-06\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://2021.jsday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Barcelona\",\n        \"country\": \"Spain\",\n        \"end_date\": \"2021-07-16\",\n        \"kind\": \"conference\",\n        \"location\": \"Barcelona, Spain\",\n        \"name\": \"JSCAMP\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-15\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://jscamp.tech\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-05\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Global Scope\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-23\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.webdirections.org/globalscope\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Columbus, OH\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-08-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Columbus, OH, U.S.A.\",\n        \"name\": \"JavaScript and Friends\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-20\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.javascriptandfriends.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Vinnytsia\",\n        \"country\": \"Ukraine\",\n        \"end_date\": \"2021-08-21\",\n        \"kind\": \"conference\",\n        \"location\": \"Vinnytsia, Ukraine\",\n        \"name\": \"VinnytsiaJS\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-21\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://vinnytsiajs.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Atlanta, GA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-15\",\n        \"kind\": \"conference\",\n        \"location\": \"Atlanta, GA, U.S.A.\",\n        \"name\": \"render(ATL)\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-13\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.renderatl.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"GatsbyCamp\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-16\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.gatsbyjs.com/camp-fall-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-09-17\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"CITYJS Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-17\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://cityjsconf.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-05\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-17\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Code\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-17\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.webdirections.org/code\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"New York, NY\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-30\",\n        \"kind\": \"conference\",\n        \"location\": \"New York, NY, U.S.A.\",\n        \"name\": \"International JavaScript Conference New York\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://javascript-conference.com/new-york\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Darmstadt\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-09-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Darmstadt, Germany\",\n        \"name\": \"enterJS\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://enterjs.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Rome\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2021-10-01\",\n        \"kind\": \"conference\",\n        \"location\": \"Rome, Italy\",\n        \"name\": \"EmberFest\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-30\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://emberfest.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-09-15\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"React Day New York\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-05\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://reactnewyork.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Jamstack Conf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-06\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://jamstackconf.com/#\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-10-21\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"Vue.js London Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-20\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://vuejs.london\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"London\",\n        \"country\": \"U.K.\",\n        \"end_date\": \"2021-10-25\",\n        \"kind\": \"conference\",\n        \"location\": \"London, U.K.\",\n        \"name\": \"React Advanced London\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-22\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://reactadvanced.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-26\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"International JavaScript Conference Munich\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-25\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://javascript-conference.com/munich\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Conf42: JavaScript\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-28\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.conf42.com/js2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"JSworld Conference Africa\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-29\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://africa.jsworldconference.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-19\",\n        \"cfp_open\": false,\n        \"city\": \"Seattle, WA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-04\",\n        \"kind\": \"conference\",\n        \"location\": \"Seattle, WA, U.S.A.\",\n        \"name\": \"CascadiaJS\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-03\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://2021.cascadiajs.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-15\",\n        \"cfp_open\": false,\n        \"city\": \"Atlanta, GA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Atlanta, GA, U.S.A.\",\n        \"name\": \"CONNECT.TECH\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-08\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://2021.connect.tech\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-09-15\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"angularday\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-12\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://2021.angularday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Mumbai\",\n        \"country\": \"India\",\n        \"end_date\": \"2021-11-13\",\n        \"kind\": \"conference\",\n        \"location\": \"Mumbai, India\",\n        \"name\": \"React India\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-12\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.reactindia.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-10-25\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Fwdays: JS is back! online conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-27\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://fwdays.com/en/event/js-autumn-fwdays-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-11-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ReactEurope\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-09\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://www.react-europe.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-08-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"XtremeJS\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-22\",\n        \"state\": null,\n        \"tags\": [\n            \"javascript\"\n        ],\n        \"url\": \"https://xtremejs.dev/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-28\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"rubyday\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-07\",\n        \"state\": null,\n        \"tags\": [\n            \"ruby\"\n        ],\n        \"url\": \"https://2021.rubyday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-18\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"EuRuKo\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-28\",\n        \"state\": null,\n        \"tags\": [\n            \"ruby\"\n        ],\n        \"url\": \"https://euruko2021.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Denver, CO\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Denver, CO, U.S.A.\",\n        \"name\": \"RubyConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-08\",\n        \"state\": null,\n        \"tags\": [\n            \"ruby\"\n        ],\n        \"url\": \"http://rubyconf.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Google I/O\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-18\",\n        \"state\": null,\n        \"tags\": [\n            \"android\"\n        ],\n        \"url\": \"https://events.google.com/io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"droidcon Berlin\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-13\",\n        \"state\": null,\n        \"tags\": [\n            \"android\"\n        ],\n        \"url\": \"https://www.berlin.droidcon.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"droidcon London\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-28\",\n        \"state\": null,\n        \"tags\": [\n            \"android\"\n        ],\n        \"url\": \"https://www.london.droidcon.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"New York, NY\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-11\",\n        \"kind\": \"conference\",\n        \"location\": \"New York, NY, U.S.A.\",\n        \"name\": \"droidcon NYC\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-10\",\n        \"state\": null,\n        \"tags\": [\n            \"android\"\n        ],\n        \"url\": \"https://www.nyc.droidcon.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-14\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"droidcon San Francisco\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-13\",\n        \"state\": null,\n        \"tags\": [\n            \"android\"\n        ],\n        \"url\": \"https://www.sf.droidcon.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-01-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Laracon EU\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-01-18\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://laracon.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Montreal\",\n        \"country\": \"Canada\",\n        \"end_date\": \"2021-02-26\",\n        \"kind\": \"conference\",\n        \"location\": \"Montreal, Canada\",\n        \"name\": \"ConFoo\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-24\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://confoo.ca/en/yul2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DrupalCon North America\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-12\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://events.drupal.org/drupalcon2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-14\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-11\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"International PHP Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-07\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://phpconference.com/berlin-en\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-25\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"phpday Digital Edition\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://2021.phpday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Dutch PHP Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-17\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://www.phpconference.nl\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"SymfonyWorld Online\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-17\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://live.symfony.com/2021-world\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PHP fwdays\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-04\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://fwdays.com/en/event/php-fwdays-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Lille\",\n        \"country\": \"France\",\n        \"end_date\": \"2021-09-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Lille, France\",\n        \"name\": \"API Platform Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-10\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://api-platform.com/con/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Italian LaravelDay\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-24\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://2021.laravelday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Austin, TX\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-16\",\n        \"kind\": \"conference\",\n        \"location\": \"Austin, TX, U.S.A.\",\n        \"name\": \"Longhorn PHP\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-14\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://www.longhornphp.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Edinburgh\",\n        \"country\": \"Scotland\",\n        \"end_date\": \"2021-10-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Edinburgh, Scotland\",\n        \"name\": \"ScotlandPHP\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-22\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://conference.scotlandphp.co.uk/2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Munich\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-10-29\",\n        \"kind\": \"conference\",\n        \"location\": \"Munich, Germany\",\n        \"name\": \"International PHP Conference Munich\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-25\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://phpconference.com/munich\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Essen\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-11-07\",\n        \"kind\": \"conference\",\n        \"location\": \"Essen, Germany\",\n        \"name\": \"TYPO3 Camp RheinRuhr\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-05\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://www.typo3camp-rheinruhr.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"betterCode() PHP\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-25\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://php.bettercode.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-29\",\n        \"cfp_open\": false,\n        \"city\": \"Paris\",\n        \"country\": \"France\",\n        \"end_date\": \"2021-12-03\",\n        \"kind\": \"conference\",\n        \"location\": \"Paris, France\",\n        \"name\": \"SymfonyCon Disneyland Paris\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-02\",\n        \"state\": null,\n        \"tags\": [\n            \"php\"\n        ],\n        \"url\": \"https://live.symfony.com/2021-paris-con\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-08-11\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-13\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Kotlin Global Summit by Geekle\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-12\",\n        \"state\": null,\n        \"tags\": [\n            \"kotlin\"\n        ],\n        \"url\": \"https://geekle.us/kotlin\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-02-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"FOSS Backstage\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-10\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://foss-backstage.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-03\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Cloud Transformation Champions\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-02\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://hctc-eu.coriniumintelligence.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Women in Data Science (WiDS) Worldwide\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-08\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.widsconference.org/conference.html\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Future Developer Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-10\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.futuredeveloper.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-01-31\",\n        \"cfp_open\": false,\n        \"city\": \"Montreal\",\n        \"country\": \"Canada\",\n        \"end_date\": \"2021-03-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Montreal, Canada\",\n        \"name\": \"Women Techmakers\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-20\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.wtmmontreal.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-26\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Women in Tech Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-24\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://womenintechsummit.net/spring2021virtual\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Johnson Women in Tech\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-26\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.johnsonwomenintech.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-31\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Her Future Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-31\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"http://herfuturesummit.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"New York, NY\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-04-16\",\n        \"kind\": \"conference\",\n        \"location\": \"New York, NY, U.S.A.\",\n        \"name\": \"TECHSPO\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-15\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://techsponyc.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"IEEE Women in Engineering International Leadership Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-27\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"http://ieee-wie-ilc.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Women Transforming Technology Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-03\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.womentransformingtechnology.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Mainz\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-05-07\",\n        \"kind\": \"conference\",\n        \"location\": \"Mainz, Germany\",\n        \"name\": \"JAX\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-03\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://jax.de/mainz-en\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Wonder WebRTC unConference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-18\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://unconf.wonder.me\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-27\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"CloudTalk Online MatchMaking Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-26\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://cloudtalksummit.online\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-26\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-01\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Low-Code Marathon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-01\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.creatio.com/page/low-code-marathon-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Future Developer Summit: Episode 2\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-09\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.futuredeveloper.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Women in Technology Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-22\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://summit.witi.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Sydney\",\n        \"country\": \"Australia\",\n        \"end_date\": \"2021-08-26\",\n        \"kind\": \"conference\",\n        \"location\": \"Sydney, Australia\",\n        \"name\": \"TECHSPO Sydney\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-25\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://techsposydney.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"DSS Elevate\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-09\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.datascience.salon/dsse-virtual-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Dar es Salaam\",\n        \"country\": \"Tanzania\",\n        \"end_date\": \"2021-09-17\",\n        \"kind\": \"conference\",\n        \"location\": \"Dar es Salaam, Tanzania\",\n        \"name\": \"International Conference on Digital Transformation\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-12\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"http://conference.ternet.or.tz\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Houston, TX\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-15\",\n        \"kind\": \"conference\",\n        \"location\": \"Houston, TX, U.S.A.\",\n        \"name\": \"Community Summit North America\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-12\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.summitna.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Essen\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-10-18\",\n        \"kind\": \"conference\",\n        \"location\": \"Essen, Germany\",\n        \"name\": \"DEEP Startup Ecosystem Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-18\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.startupheatmap.eu/conference\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"EFWeek\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-18\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://freelancersweek.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PASS Data Community Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-08\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://passdatacommunitysummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Tech Up For Women\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-16\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://techupforwomen.com/event-details\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Prisma Serverless Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-18\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.prisma.io/serverless\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Git Commit Show\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-27\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://gitcommit.show\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Las Vegas, NV\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-12-03\",\n        \"kind\": \"conference\",\n        \"location\": \"Las Vegas, NV, U.S.A.\",\n        \"name\": \"AWS re:Invent\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-29\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://reinvent.awsevents.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Dhaka\",\n        \"country\": \"Bangladesh\",\n        \"end_date\": \"2021-12-11\",\n        \"kind\": \"conference\",\n        \"location\": \"Dhaka, Bangladesh\",\n        \"name\": \"The International Conference on 4th Industrial Revolution and Beyond\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-10\",\n        \"state\": null,\n        \"tags\": [\n            \"networking\"\n        ],\n        \"url\": \"https://www.ic4irb.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-05-23\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Prisma Day\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-29\",\n        \"state\": null,\n        \"tags\": [\n            \"typescript\"\n        ],\n        \"url\": \"https://www.prisma.io/day\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"TestingUY\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-02\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://testinguy.org/edition-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-05\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Agile, DevOps and Testing - New Directions in Methods and Tools\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-04\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://www.unicomlearning.com/2021/ADT-August\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Future of Testing: Mobile\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-10\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://applitools.com/future-of-testing-mobile-apac-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"QA Global Summit Volume 2\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-17\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://geekle.us/qa_volume2\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-08-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"TestCon Europe\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-07\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://www.testcon.lt\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Tesena Fest Online\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-16\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://www.tesena.com/en/tesena-fest-online-program-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Belgrade\",\n        \"country\": \"Serbia\",\n        \"end_date\": \"2021-09-29\",\n        \"kind\": \"conference\",\n        \"location\": \"Belgrade, Serbia\",\n        \"name\": \"SEETEST (10th edition)\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://seetest.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"St. Louis, MO\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-29\",\n        \"kind\": \"conference\",\n        \"location\": \"St. Louis, MO, U.S.A.\",\n        \"name\": \"STPCon Fall\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-27\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://stpcon.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-30\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"EuroSTAR Software Testing Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-28\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://conference.eurostarsoftwaretesting.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-01\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"InflectraCon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-01\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://www.inflectracon.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Sofia\",\n        \"country\": \"Bulgaria\",\n        \"end_date\": \"2021-10-02\",\n        \"kind\": \"conference\",\n        \"location\": \"Sofia, Bulgaria\",\n        \"name\": \"QA: Challenge Accepted 007\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-02\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://qachallengeaccepted.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Anaheim, CA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-08\",\n        \"kind\": \"conference\",\n        \"location\": \"Anaheim, CA, U.S.A.\",\n        \"name\": \"STARWEST \\u2014 The Premier Software Testing & QA Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-03\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://starwest.techwell.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-21\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"HUSTEF - Hungarian Software Testing Forum\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-18\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://hustef.hu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"QA & TEST Embedded\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-20\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://embedded.qatest.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-10-24\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"TestFlix Global Software Testing Binge\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-23\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://www.thetesttribe.com/testflix-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"South Wharf\",\n        \"country\": \"Australia\",\n        \"end_date\": \"2021-10-28\",\n        \"kind\": \"conference\",\n        \"location\": \"South Wharf, Australia\",\n        \"name\": \"Testing Talks Online\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-28\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://www.testingtalks.com.au/upcoming-events/testing-talks-conference-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"OnlineTestConf Fall\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-03\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://www.onlinetestconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Atlanta, GA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-11-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Atlanta, GA, U.S.A.\",\n        \"name\": \"CAST\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-08\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://associationforsoftwaretesting.org/conference/cast-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Prague\",\n        \"country\": \"Czech Republic\",\n        \"end_date\": \"2021-11-12\",\n        \"kind\": \"conference\",\n        \"location\": \"Prague, Czech Republic\",\n        \"name\": \"Testing United\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-11\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://testingunited.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-26\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ParisTestConf (PTC)\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-22\",\n        \"state\": null,\n        \"tags\": [\n            \"testing\"\n        ],\n        \"url\": \"https://paristestconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-06\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"YOW! Lambda Jam\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-05\",\n        \"state\": null,\n        \"tags\": [\n            \"elixir\"\n        ],\n        \"url\": \"https://yowconference.com/lambdajam\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-08\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"ElixirConf Africa\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-07\",\n        \"state\": null,\n        \"tags\": [\n            \"elixir\"\n        ],\n        \"url\": \"https://elixirconf.africa\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-21\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Code BEAM V Europe\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-19\",\n        \"state\": null,\n        \"tags\": [\n            \"elixir\"\n        ],\n        \"url\": \"https://codesync.global/conferences/code-beam-sto-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-28\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Alchemy Conf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-28\",\n        \"state\": null,\n        \"tags\": [\n            \"elixir\"\n        ],\n        \"url\": \"https://alchemyconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Warsaw\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2021-09-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Warsaw, Poland\",\n        \"name\": \"ElixirConf EU\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-09\",\n        \"state\": null,\n        \"tags\": [\n            \"elixir\"\n        ],\n        \"url\": \"https://www.elixirconf.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Austin, TX\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-10-13\",\n        \"kind\": \"conference\",\n        \"location\": \"Austin, TX, U.S.A.\",\n        \"name\": \"ElixirConf\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-10-12\",\n        \"state\": null,\n        \"tags\": [\n            \"elixir\"\n        ],\n        \"url\": \"https://2021.elixirconf.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Frankfurt am Main\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-02-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Frankfurt am Main, Germany\",\n        \"name\": \"BASTA!\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-15\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://basta.net\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Iasi\",\n        \"country\": \"Romania\",\n        \"end_date\": \"2021-02-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Iasi, Romania\",\n        \"name\": \"dotnetdays\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-02-18\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://dotnetdays.ro\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-05\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Future Tech  NL\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-24\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://futuretech.nl\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-14\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-12\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"JetBrains .NET Day Online\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-12\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://blog.jetbrains.com/dotnet/2021/02/15/jetbrains-net-day-online-2021-call-for-speakers\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-03-31\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-14\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Cloud Lunch and Learn Marathon\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-13\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://www.cloudlunchlearn.com/marathon\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Lincoln, NE\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-07-15\",\n        \"kind\": \"conference\",\n        \"location\": \"Lincoln, NE, U.S.A.\",\n        \"name\": \"Nebraska Code\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://nebraskacode.amegala.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \".NET fwdays\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-07\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://fwdays.com/en/event/dotnet-fwdays-2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-23\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-20\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Code PaLOUsa\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-18\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"http://www.codepalousa.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-06-15\",\n        \"cfp_open\": false,\n        \"city\": \"Des Moines, IA\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-09-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Des Moines, IA, U.S.A.\",\n        \"name\": \"Prairie Code\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-23\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://prairiecode.amegala.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Prague\",\n        \"country\": \"Czech Republic\",\n        \"end_date\": \"2021-11-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Prague, Czech Republic\",\n        \"name\": \"Update Conference Prague\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-18\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://www.updateconference.net\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-11-23\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"betterCode() .NET 6\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-11-23\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://net.bettercode.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-07-31\",\n        \"cfp_open\": false,\n        \"city\": \"Las Vegas, NV\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-12-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Las Vegas, NV, U.S.A.\",\n        \"name\": \"DevIntersection\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-05\",\n        \"state\": null,\n        \"tags\": [\n            \"dotnet\"\n        ],\n        \"url\": \"https://devintersection.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-04\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"re:Clojure\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-03\",\n        \"state\": null,\n        \"tags\": [\n            \"clojure\"\n        ],\n        \"url\": \"https://www.reclojure.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-01\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Pause Fest\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-01\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://www.pausefest.com.au\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Berlin\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2021-03-11\",\n        \"kind\": \"conference\",\n        \"location\": \"Berlin, Germany\",\n        \"name\": \"Agile meets Architecture\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-10\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://agile-meets-architecture.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-03-26\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"FINTECH WORLD FORUM\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-03-25\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://fintechconferences.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-13\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"LeadDev Together\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-13\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://events.leaddev.com/together\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-04-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Coworking Symposium\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-04-15\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://www.coworkingsymposium.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-02-05\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Tech Leadership Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-07\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://www.developer-first.com/conference\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-05-21\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Running Remote Online\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-05-21\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://runningremote.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Emtech Next\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://event.technologyreview.com/emtech-next-2021/home\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-30\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-06-18\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"XP\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-06-14\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://www.agilealliance.org/xp2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2021-04-15\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-07-22\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Agile\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-07-19\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://www.agilealliance.org/agile2021\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-08-13\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Roadmap to Billions Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-08-12\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://www.blackwomentalktech.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-09-16\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"RESHAPE VIRTUAL SUMMIT\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-09-15\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://reshapesummit.com\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Clearwater, FL\",\n        \"country\": \"U.S.A.\",\n        \"end_date\": \"2021-12-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Clearwater, FL, U.S.A.\",\n        \"name\": \"Tech Leader Summit\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-08\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://techleadersummit.io\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2021-12-09\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"Agile Leadership Conference\",\n        \"source\": \"https://confs.tech\",\n        \"start_date\": \"2021-12-09\",\n        \"state\": null,\n        \"tags\": [\n            \"leadership\"\n        ],\n        \"url\": \"https://alc.inside-agile.de\"\n    }\n]"
  },
  {
    "path": "data/events.json",
    "content": "[\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bologna\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2026-05-30\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon Italia\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-05-27\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Brisbane\",\n        \"country\": \"Australia\",\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon AU\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-08-26\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.org.au\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Athens\",\n        \"country\": \"Greece\",\n        \"end_date\": \"2026-10-13\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon Greece\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-10-12\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.gr\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2025-12-19\",\n        \"cfp_open\": false,\n        \"city\": \"Long Beach\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-05-19\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon US\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-05-13\",\n        \"state\": \"California\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://us.pycon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-04-20\",\n        \"cfp_open\": false,\n        \"city\": \"Cleveland\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-07-26\",\n        \"kind\": \"conference\",\n        \"name\": \"PyOhio\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-25\",\n        \"state\": \"Ohio\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.pyohio.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-02-15\",\n        \"cfp_open\": false,\n        \"city\": \"Gliwice\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon PL\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-08-27\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pl.pycon.org/2026\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-07-31\",\n        \"cfp_open\": true,\n        \"city\": \"San Francisco\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-10-03\",\n        \"kind\": \"conference\",\n        \"name\": \"PyBay\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-10-03\",\n        \"state\": \"California\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pybay.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Tallinn\",\n        \"country\": \"Estonia\",\n        \"end_date\": \"2026-10-09\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon Estonia\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-10-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.ee\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-03-23\",\n        \"cfp_open\": false,\n        \"city\": \"Chicago\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-08-28\",\n        \"kind\": \"conference\",\n        \"name\": \"DjangoCon US\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-08-24\",\n        \"state\": \"Illinois\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.djangocon.us\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon Kenya 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-28\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.pycon.ke/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-06-07\",\n        \"kind\": \"conference\",\n        \"name\": \"PyData London 2026\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-06-05\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://pydata.org/london2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-19\",\n        \"kind\": \"conference\",\n        \"name\": \"SciPy 2026\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://www.scipy2026.scipy.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-12-10\",\n        \"kind\": \"conference\",\n        \"name\": \"PyData Global\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-12-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://pydata.org/events/pydata-global-2/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-02-15\",\n        \"cfp_open\": false,\n        \"city\": \"Krak\\u00f3w\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-07-19\",\n        \"kind\": \"conference\",\n        \"name\": \"EuroPython\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://ep2026.europython.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-11-18\",\n        \"kind\": \"conference\",\n        \"name\": \"XtremePython 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-11-17\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://xtremepython.dev/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-02-22\",\n        \"cfp_open\": false,\n        \"city\": \"Krak\\u00f3w\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-07-23\",\n        \"kind\": \"conference\",\n        \"name\": \"EuroSciPy\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-18\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://euroscipy.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-06-11\",\n        \"kind\": \"conference\",\n        \"name\": \"GeoPython 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.geopython.net/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-11-09\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon ES 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-11-06\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.es.pycon.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-15\",\n        \"kind\": \"conference\",\n        \"name\": \"JuliaCon 2026\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-08-10\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://juliacon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-10-25\",\n        \"kind\": \"conference\",\n        \"name\": \"PyHo 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-10-23\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pythonho.com/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-09-20\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon Cameroon 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-09-17\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.pythoncameroon.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-23\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon Ghana 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-20\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://gh.pycon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-04-20\",\n        \"cfp_open\": false,\n        \"city\": \"Cleveland\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-07-24\",\n        \"kind\": \"conference\",\n        \"name\": \"Black Python Devs Leadership Summit\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-24\",\n        \"state\": \"Ohio\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://blackpythondevs.com/bpd-events/black-python-devs-leadership-summit-2026-ohio.html\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-04-12\",\n        \"cfp_open\": false,\n        \"city\": \"Warsaw\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-05-09\",\n        \"kind\": \"conference\",\n        \"name\": \"Warsaw Python Pizza\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-05-09\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://warsaw.python.pizza\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-25\",\n        \"kind\": \"conference\",\n        \"name\": \"PyData PyCon Yerevan\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-07-24\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://pycon.am/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-04-27\",\n        \"kind\": \"conference\",\n        \"name\": \"North Bay Python 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-04-25\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"http://2026.northbaypython.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon Togo 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-28\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycontg.pytogo.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-10-24\",\n        \"kind\": \"conference\",\n        \"name\": \"Swiss Python Summit 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-10-22\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.python-summit.ch/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Heidelberg\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2027-04-22\",\n        \"kind\": \"conference\",\n        \"name\": \"PyCon DE\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2027-04-20\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2027.pycon.de\"\n    }\n]"
  },
  {
    "path": "data/events_v2.json",
    "content": "[\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bologna\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2026-05-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Bologna, Italy\",\n        \"name\": \"PyCon Italia\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-05-27\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Brisbane\",\n        \"country\": \"Australia\",\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Brisbane, Australia\",\n        \"name\": \"PyCon AU\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-08-26\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.org.au\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Athens\",\n        \"country\": \"Greece\",\n        \"end_date\": \"2026-10-13\",\n        \"kind\": \"conference\",\n        \"location\": \"Athens, Greece\",\n        \"name\": \"PyCon Greece\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-10-12\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.gr\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2025-12-19\",\n        \"cfp_open\": false,\n        \"city\": \"Long Beach\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-05-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Long Beach, California, USA\",\n        \"name\": \"PyCon US\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-05-13\",\n        \"state\": \"California\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://us.pycon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-04-20\",\n        \"cfp_open\": false,\n        \"city\": \"Cleveland\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-07-26\",\n        \"kind\": \"conference\",\n        \"location\": \"Cleveland, Ohio, USA\",\n        \"name\": \"PyOhio\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-25\",\n        \"state\": \"Ohio\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.pyohio.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-02-15\",\n        \"cfp_open\": false,\n        \"city\": \"Gliwice\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Gliwice, Poland\",\n        \"name\": \"PyCon PL\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-08-27\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pl.pycon.org/2026\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-07-31\",\n        \"cfp_open\": true,\n        \"city\": \"San Francisco\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-10-03\",\n        \"kind\": \"conference\",\n        \"location\": \"San Francisco, California, USA\",\n        \"name\": \"PyBay\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-10-03\",\n        \"state\": \"California\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pybay.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Tallinn\",\n        \"country\": \"Estonia\",\n        \"end_date\": \"2026-10-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Tallinn, Estonia\",\n        \"name\": \"PyCon Estonia\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-10-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.ee\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-03-23\",\n        \"cfp_open\": false,\n        \"city\": \"Chicago\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-08-28\",\n        \"kind\": \"conference\",\n        \"location\": \"Chicago, Illinois, USA\",\n        \"name\": \"DjangoCon US\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-08-24\",\n        \"state\": \"Illinois\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.djangocon.us\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Nairobi, Kenya\",\n        \"name\": \"PyCon Kenya 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-28\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.pycon.ke/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-06-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyData London 2026\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-06-05\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://pydata.org/london2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"SciPy 2026\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://www.scipy2026.scipy.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-12-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyData Global\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-12-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://pydata.org/events/pydata-global-2/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-02-15\",\n        \"cfp_open\": false,\n        \"city\": \"Krak\\u00f3w\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-07-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Krak\\u00f3w, Poland\",\n        \"name\": \"EuroPython\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://ep2026.europython.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-11-18\",\n        \"kind\": \"conference\",\n        \"location\": \"Online\",\n        \"name\": \"XtremePython 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-11-17\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://xtremepython.dev/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-02-22\",\n        \"cfp_open\": false,\n        \"city\": \"Krak\\u00f3w\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-07-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Krak\\u00f3w, Poland\",\n        \"name\": \"EuroSciPy\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-18\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://euroscipy.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-06-11\",\n        \"kind\": \"conference\",\n        \"location\": \"Basel, Switzerland\",\n        \"name\": \"GeoPython 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.geopython.net/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-11-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Barcelona, Spain\",\n        \"name\": \"PyCon ES 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-11-06\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.es.pycon.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"JuliaCon 2026\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-08-10\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://juliacon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-10-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Ho, Ghana\",\n        \"name\": \"PyHo 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-10-23\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pythonho.com/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-09-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Yaound\\u00e9, Cameroon\",\n        \"name\": \"PyCon Cameroon 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-09-17\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.pythoncameroon.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Accra, Ghana\",\n        \"name\": \"PyCon Ghana 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-20\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://gh.pycon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-04-20\",\n        \"cfp_open\": false,\n        \"city\": \"Cleveland\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-07-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Cleveland, Ohio, USA\",\n        \"name\": \"Black Python Devs Leadership Summit\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-24\",\n        \"state\": \"Ohio\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://blackpythondevs.com/bpd-events/black-python-devs-leadership-summit-2026-ohio.html\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-04-12\",\n        \"cfp_open\": false,\n        \"city\": \"Warsaw\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-05-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Warsaw, Poland\",\n        \"name\": \"Warsaw Python Pizza\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-05-09\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://warsaw.python.pizza\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyData PyCon Yerevan\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-07-24\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://pycon.am/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-04-27\",\n        \"kind\": \"conference\",\n        \"location\": \"Petaluma, California, USA\",\n        \"name\": \"North Bay Python 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-04-25\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"http://2026.northbaypython.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Lom\\u00e9, Togo\",\n        \"name\": \"PyCon Togo 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-28\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycontg.pytogo.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-10-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Rapperswil, Switzerland\",\n        \"name\": \"Swiss Python Summit 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-10-22\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.python-summit.ch/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Heidelberg\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2027-04-22\",\n        \"kind\": \"conference\",\n        \"location\": \"Heidelberg, Germany\",\n        \"name\": \"PyCon DE\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2027-04-20\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2027.pycon.de\"\n    }\n]"
  },
  {
    "path": "data/italy.json",
    "content": "[\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-01-14\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"Milano Live Coding\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-01-14\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.eventbrite.it/e/biglietti-milano-live-coding-14-gennaio-2020-87088150001\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Torino\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-01-21\",\n        \"kind\": \"conference\",\n        \"location\": \"Torino\",\n        \"name\": \"Torino Hacknight\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-01-21\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"http://torino.hacknight.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Modena\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-01-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Modena\",\n        \"name\": \"Modena Tech Summit\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-01-25\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.modenatechsummit.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Fornovo di Taro\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-01-26\",\n        \"kind\": \"conference\",\n        \"location\": \"Fornovo di Taro\",\n        \"name\": \"Hackafork\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-01-25\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.hackathon.com/event/hackafork-82168184251\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-01-28\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"Microsoft Ignite\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-01-27\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.microsoft.com/en-us/ignite\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Multiple locations\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-02-02\",\n        \"kind\": \"conference\",\n        \"location\": \"Multiple locations\",\n        \"name\": \"Global Game Jam\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-01-31\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://globalgamejam.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-02-01\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"Agile Venture Milano 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-02-01\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.agilemovement.it/venture/2020/milano/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-02-07\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"IxDA\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-02-02\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://interaction20.ixda.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Ancona\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-02-07\",\n        \"kind\": \"conference\",\n        \"location\": \"Ancona\",\n        \"name\": \"ITASEC 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-02-04\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://itasec.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-02-15\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"Global Power Platform Bootcamp 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-02-15\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.eventbrite.it/e/biglietti-global-power-platform-bootcamp-2020-milan-88686085469\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Rome\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-02-21\",\n        \"kind\": \"conference\",\n        \"location\": \"Rome\",\n        \"name\": \"ServerlessDays 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-02-21\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://rome.serverlessdays.io/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-03-04\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"A4I Agile for Innovation\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-03-04\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.agileforinnovation.com/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-03-26\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"European Immersive Computing Summit 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-03-25\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://eicsummit.com/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Roma\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-03-31\",\n        \"kind\": \"conference\",\n        \"location\": \"Roma\",\n        \"name\": \"neo4j GraphTour\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-03-31\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://neo4j.com/graphtour/rome/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Verona\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-04-01\",\n        \"kind\": \"conference\",\n        \"location\": \"Verona\",\n        \"name\": \"COBOL Day\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-04-01\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.cobolday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Verona\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-04-02\",\n        \"kind\": \"conference\",\n        \"location\": \"Verona\",\n        \"name\": \"Ruby Day\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-04-02\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.rubyday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-04-02\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"BeConnected Day 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-04-02\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.eventbrite.it/e/registrazione-beconnected-day-2020-92290708995\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Verona\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-04-03\",\n        \"kind\": \"conference\",\n        \"location\": \"Verona\",\n        \"name\": \"VueDay\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-04-03\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.vueday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bologna\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-04-06\",\n        \"kind\": \"conference\",\n        \"location\": \"Bologna\",\n        \"name\": \"Code Beam Lite\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-04-06\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://codesync.global/conferences/code-beam-lite-italy-2020/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Pisa\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-04-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Pisa\",\n        \"name\": \"DevFest\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-04-18\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://devfest.gdgpisa.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-04-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"Global Azure Milan 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-04-24\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://join.globalazure.net/events/48\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bologna\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-04-28\",\n        \"kind\": \"conference\",\n        \"location\": \"Bologna\",\n        \"name\": \"Incontro DevOps\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-04-27\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.incontrodevops.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-04-29\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"ItaliaSec\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-04-28\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://cyberseries.io/italiasec/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Verona\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-05-13\",\n        \"kind\": \"conference\",\n        \"location\": \"Verona\",\n        \"name\": \"JSDay\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-05-12\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.jsday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Roma\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-05-14\",\n        \"kind\": \"conference\",\n        \"location\": \"Roma\",\n        \"name\": \"Pi Day HackParty\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-05-14\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://picampus.it/pi-day-2020/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Verona\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-05-15\",\n        \"kind\": \"conference\",\n        \"location\": \"Verona\",\n        \"name\": \"PHP Day\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-05-14\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.phpday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-05-16\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"Voxxed Days\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-05-16\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://voxxeddays.com/milan/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Vimercate\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-05-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Vimercate\",\n        \"name\": \"Agile Venture Vimercate\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-05-23\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://agilemovement.it/2019/11/01/agile-venture-vimercate-2020/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-05-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"eRum 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-05-27\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.erum.io/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bologna\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-05-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Bologna\",\n        \"name\": \"Agile People Day\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-05-30\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.agilepeopleday.com/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bologna\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-05-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Bologna\",\n        \"name\": \"HackInBo\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-05-30\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.hackinbo.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Trento\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-06-06\",\n        \"kind\": \"conference\",\n        \"location\": \"Trento\",\n        \"name\": \"SoCraTes IT 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-06-04\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"http://www.socrates-conference.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-06-05\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"Serverless Days\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-06-05\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://milan.serverlessdays.io/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Catania\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-06-06\",\n        \"kind\": \"conference\",\n        \"location\": \"Catania\",\n        \"name\": \"Coderful\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-06-06\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.coderful.io/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Roma\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-06-12\",\n        \"kind\": \"conference\",\n        \"location\": \"Roma\",\n        \"name\": \"Codemotion\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-06-11\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://events.codemotion.com/conferences/rome/2020/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Verona\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-06-12\",\n        \"kind\": \"conference\",\n        \"location\": \"Verona\",\n        \"name\": \"Angular Day\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-06-11\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.angularday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bergamo\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-06-12\",\n        \"kind\": \"conference\",\n        \"location\": \"Bergamo\",\n        \"name\": \"PGDay.IT\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-06-11\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.pgday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Roma\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-06-13\",\n        \"kind\": \"conference\",\n        \"location\": \"Roma\",\n        \"name\": \"Italian C++ Conference\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-06-13\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.italiancpp.org/event/itcppcon20/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Torino\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-06-18\",\n        \"kind\": \"conference\",\n        \"location\": \"Torino\",\n        \"name\": \"CloudConf 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-06-18\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.cloudconf.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Faenza (RA)\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-06-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Faenza (RA)\",\n        \"name\": \"CSSDay 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-06-19\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://2020.cssday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Roma\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-07-12\",\n        \"kind\": \"conference\",\n        \"location\": \"Roma\",\n        \"name\": \"Hackmeeting\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-07-09\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.hackmeeting.org/hackit20/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Padova\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-07-02\",\n        \"kind\": \"conference\",\n        \"location\": \"Padova\",\n        \"name\": \"IHC 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-07-29\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.ihc.camp/2020/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Venezia\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-09-12\",\n        \"kind\": \"conference\",\n        \"location\": \"Venezia\",\n        \"name\": \"Agile Business Day\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-09-11\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.agilebusinessday.com/en/agile-business-day-2-2/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Roma\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-09-26\",\n        \"kind\": \"conference\",\n        \"location\": \"Roma\",\n        \"name\": \"RomHack\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-09-26\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.romhack.io/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Roma\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-09-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Roma\",\n        \"name\": \"Level Up\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-09-28\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"http://www.lvlup.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Montegrotto Terme (PD)\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-10-11\",\n        \"kind\": \"conference\",\n        \"location\": \"Montegrotto Terme (PD)\",\n        \"name\": \"Agile People Camp\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-10-09\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://agilemovement.it/agilepeoplecamp/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Verona\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-10-16\",\n        \"kind\": \"conference\",\n        \"location\": \"Verona\",\n        \"name\": \"ReactJSDay\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-10-16\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"http://reactjsday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Firenze\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-10-17\",\n        \"kind\": \"conference\",\n        \"location\": \"Firenze\",\n        \"name\": \"RustLab 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-10-16\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.rustlab.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Firenze\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-10-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Firenze\",\n        \"name\": \"GoLab\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-10-18\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://golab.io/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Online\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-10-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Online\",\n        \"name\": \"NG Rome\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-10-20\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://ngrome.io/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bologna\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-10-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Bologna\",\n        \"name\": \"ContainerDay\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-10-22\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.containerday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Online\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-11-14\",\n        \"kind\": \"conference\",\n        \"location\": \"Online\",\n        \"name\": \"Agile Days 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-11-13\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.agileday.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Milano\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-11-16\",\n        \"kind\": \"conference\",\n        \"location\": \"Milano\",\n        \"name\": \"Forum Software Industriale\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-11-16\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://forumsoftwareindustriale.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Firenze\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-11-21\",\n        \"kind\": \"conference\",\n        \"location\": \"Firenze\",\n        \"name\": \"QtDay 2020\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-11-20\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://www.qtday.it/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Torino\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2020-11-28\",\n        \"kind\": \"conference\",\n        \"location\": \"Torino\",\n        \"name\": \"DroidCon\",\n        \"source\": \"https://github.com/ildoc/awesome-italy-events\",\n        \"start_date\": \"2020-11-27\",\n        \"state\": null,\n        \"tags\": [\n            \"technology\"\n        ],\n        \"url\": \"https://it.droidcon.com/2020/it\"\n    }\n]\n"
  },
  {
    "path": "data/pycon.json",
    "content": "[\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-01-15\",\n        \"cfp_open\": false,\n        \"city\": \"Hyderabad\",\n        \"country\": \"IND\",\n        \"end_date\": \"2026-03-15\",\n        \"kind\": \"conference\",\n        \"location\": \"Hyderabad, Telangana, IND\",\n        \"name\": \"PyConf Hyderabad 2026\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-03-14\",\n        \"state\": \"Telangana\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pyconfhyd.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2025-10-27\",\n        \"cfp_open\": false,\n        \"city\": \"Vancouver\",\n        \"country\": \"CAN\",\n        \"end_date\": \"2026-03-22\",\n        \"kind\": \"conference\",\n        \"location\": \"Vancouver, British Columbia, CAN\",\n        \"name\": \"PyCascades\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-03-21\",\n        \"state\": \"British Columbia\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycascades.com/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2025-11-30\",\n        \"cfp_open\": false,\n        \"city\": \"Malate\",\n        \"country\": \"Manila\",\n        \"end_date\": \"2026-03-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Malate, Manila\",\n        \"name\": \"PythonAsia\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-03-21\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pythonasia.org\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-01-15\",\n        \"cfp_open\": false,\n        \"city\": \"Vilnius\",\n        \"country\": \"Lithuania\",\n        \"end_date\": \"2026-04-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Vilnius, Lithuania\",\n        \"name\": \"PyCon Lithuania\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-04-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.lt/2026\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-01-11\",\n        \"cfp_open\": false,\n        \"city\": \"Darmstadt\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2026-04-17\",\n        \"kind\": \"conference\",\n        \"location\": \"Darmstadt, Germany\",\n        \"name\": \"PyCon DE & PyData\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-04-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.de\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2025-12-07\",\n        \"cfp_open\": false,\n        \"city\": \"Austin\",\n        \"country\": \"Texas United States\",\n        \"end_date\": \"2026-04-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Austin, Texas United States\",\n        \"name\": \"PyTexas\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-04-17\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.pytexas.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-04-12\",\n        \"cfp_open\": false,\n        \"city\": \"Warsaw\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-05-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Warsaw, Poland\",\n        \"name\": \"Warsaw Python Pizza\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-05-09\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://warsaw.python.pizza\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2025-12-19\",\n        \"cfp_open\": false,\n        \"city\": \"Long Beach\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-05-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Long Beach, California, USA\",\n        \"name\": \"PyCon US\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-05-13\",\n        \"state\": \"California\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://us.pycon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Bologna\",\n        \"country\": \"Italy\",\n        \"end_date\": \"2026-05-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Bologna, Italy\",\n        \"name\": \"PyCon Italia\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-05-27\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.it\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-02-15\",\n        \"cfp_open\": false,\n        \"city\": \"Krak\\u00f3w\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-07-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Krak\\u00f3w, Poland\",\n        \"name\": \"EuroPython\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://ep2026.europython.eu\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-05-04\",\n        \"cfp_open\": true,\n        \"city\": \"Minneapolis\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-07-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Minneapolis, Minnesota, USA\",\n        \"name\": \"SciPy\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-13\",\n        \"state\": \"Minnesota\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.scipy2026.scipy.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-02-22\",\n        \"cfp_open\": false,\n        \"city\": \"Krak\\u00f3w\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-07-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Krak\\u00f3w, Poland\",\n        \"name\": \"EuroSciPy\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-18\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://euroscipy.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-04-20\",\n        \"cfp_open\": false,\n        \"city\": \"Cleveland\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-07-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Cleveland, Ohio, USA\",\n        \"name\": \"Black Python Devs Leadership Summit\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-24\",\n        \"state\": \"Ohio\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://blackpythondevs.com/bpd-events/black-python-devs-leadership-summit-2026-ohio.html\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-04-20\",\n        \"cfp_open\": false,\n        \"city\": \"Cleveland\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-07-26\",\n        \"kind\": \"conference\",\n        \"location\": \"Cleveland, Ohio, USA\",\n        \"name\": \"PyOhio\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-07-25\",\n        \"state\": \"Ohio\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.pyohio.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-03-23\",\n        \"cfp_open\": false,\n        \"city\": \"Chicago\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-08-28\",\n        \"kind\": \"conference\",\n        \"location\": \"Chicago, Illinois, USA\",\n        \"name\": \"DjangoCon US\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-08-24\",\n        \"state\": \"Illinois\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.djangocon.us\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Brisbane\",\n        \"country\": \"Australia\",\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Brisbane, Australia\",\n        \"name\": \"PyCon AU\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-08-26\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.org.au\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-02-15\",\n        \"cfp_open\": false,\n        \"city\": \"Gliwice\",\n        \"country\": \"Poland\",\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Gliwice, Poland\",\n        \"name\": \"PyCon PL\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-08-27\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pl.pycon.org/2026\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"2026-07-31\",\n        \"cfp_open\": true,\n        \"city\": \"San Francisco\",\n        \"country\": \"USA\",\n        \"end_date\": \"2026-10-03\",\n        \"kind\": \"conference\",\n        \"location\": \"San Francisco, California, USA\",\n        \"name\": \"PyBay\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-10-03\",\n        \"state\": \"California\",\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pybay.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Tallinn\",\n        \"country\": \"Estonia\",\n        \"end_date\": \"2026-10-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Tallinn, Estonia\",\n        \"name\": \"PyCon Estonia\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-10-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.ee\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Athens\",\n        \"country\": \"Greece\",\n        \"end_date\": \"2026-10-13\",\n        \"kind\": \"conference\",\n        \"location\": \"Athens, Greece\",\n        \"name\": \"PyCon Greece\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2026-10-12\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.gr\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": \"Heidelberg\",\n        \"country\": \"Germany\",\n        \"end_date\": \"2027-04-22\",\n        \"kind\": \"conference\",\n        \"location\": \"Heidelberg, Germany\",\n        \"name\": \"PyCon DE\",\n        \"source\": \"https://github.com/python-organizers/conferences\",\n        \"start_date\": \"2027-04-20\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2027.pycon.de\"\n    }\n]"
  },
  {
    "path": "data/pydata.json",
    "content": "[\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-06-07\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyData London 2026\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-06-05\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://pydata.org/london2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-19\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"SciPy 2026\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://www.scipy2026.scipy.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-25\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyData PyCon Yerevan\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-07-24\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://pycon.am/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-15\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"JuliaCon 2026\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-08-10\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://juliacon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-12-10\",\n        \"kind\": \"conference\",\n        \"location\": \"\",\n        \"name\": \"PyData Global\",\n        \"source\": \"https://pydata.org/event-schedule/\",\n        \"start_date\": \"2026-12-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\",\n            \"pydata\"\n        ],\n        \"url\": \"https://pydata.org/events/pydata-global-2/\"\n    }\n]"
  },
  {
    "path": "data/python.json",
    "content": "[\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-04-27\",\n        \"kind\": \"conference\",\n        \"location\": \"Petaluma, California, USA\",\n        \"name\": \"North Bay Python 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-04-25\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"http://2026.northbaypython.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-05-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Long Beach, CA, USA\",\n        \"name\": \"PyCon US 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-05-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://us.pycon.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-05-31\",\n        \"kind\": \"conference\",\n        \"location\": \"Bologna, Italy\",\n        \"name\": \"PyCon Italia 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-05-27\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.it/en\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-06-11\",\n        \"kind\": \"conference\",\n        \"location\": \"Basel, Switzerland\",\n        \"name\": \"GeoPython 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-06-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.geopython.net/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Minneapolis, MN, USA\",\n        \"name\": \"SciPy 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.scipy2026.scipy.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Krak\\u00f3w, Poland\",\n        \"name\": \"EuroPython 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-07-13\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://ep2026.europython.eu/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Krakow, Poland\",\n        \"name\": \"EuroSciPy 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-07-18\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://euroscipy.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-07-27\",\n        \"kind\": \"conference\",\n        \"location\": \"Cleveland, USA\",\n        \"name\": \"PyOhio 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-07-25\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": null\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Accra, Ghana\",\n        \"name\": \"PyCon Ghana 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-20\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://gh.pycon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-31\",\n        \"kind\": \"conference\",\n        \"location\": \"Brisbane, Australia\",\n        \"name\": \"PyCon AU 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-26\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pycon.org.au/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-31\",\n        \"kind\": \"conference\",\n        \"location\": \"Gliwice, Poland\",\n        \"name\": \"PyCon PL 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-27\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pl.pycon.org/2026/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Lom\\u00e9, Togo\",\n        \"name\": \"PyCon Togo 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-28\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycontg.pytogo.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-08-30\",\n        \"kind\": \"conference\",\n        \"location\": \"Nairobi, Kenya\",\n        \"name\": \"PyCon Kenya 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-08-28\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.pycon.ke/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-09-19\",\n        \"kind\": \"conference\",\n        \"location\": \"Chicago, USA\",\n        \"name\": \"DjangoCon US 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-09-14\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.djangocon.us/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-09-20\",\n        \"kind\": \"conference\",\n        \"location\": \"Yaound\\u00e9, Cameroon\",\n        \"name\": \"PyCon Cameroon 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-09-17\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.pythoncameroon.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-10-04\",\n        \"kind\": \"conference\",\n        \"location\": \"San Francisco, CA, USA\",\n        \"name\": \"PyBay 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-10-03\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pybay.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-10-10\",\n        \"kind\": \"conference\",\n        \"location\": \"Tallinn, Estonia\",\n        \"name\": \"PyCon Estonia 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-10-08\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.ee/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-10-14\",\n        \"kind\": \"conference\",\n        \"location\": \"Athens , Greece\",\n        \"name\": \"PyCon Greece 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-10-12\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://pycon.gr/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-10-24\",\n        \"kind\": \"conference\",\n        \"location\": \"Rapperswil, Switzerland\",\n        \"name\": \"Swiss Python Summit 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-10-22\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://www.python-summit.ch/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-10-25\",\n        \"kind\": \"conference\",\n        \"location\": \"Ho, Ghana\",\n        \"name\": \"PyHo 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-10-23\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.pythonho.com/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-11-09\",\n        \"kind\": \"conference\",\n        \"location\": \"Barcelona, Spain\",\n        \"name\": \"PyCon ES 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-11-06\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://2026.es.pycon.org/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2026-11-18\",\n        \"kind\": \"conference\",\n        \"location\": \"Online\",\n        \"name\": \"XtremePython 2026\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2026-11-17\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"https://xtremepython.dev/\"\n    },\n    {\n        \"by\": \"bot\",\n        \"cfp_end_date\": \"1970-01-01\",\n        \"cfp_open\": false,\n        \"city\": null,\n        \"country\": null,\n        \"end_date\": \"2027-04-23\",\n        \"kind\": \"conference\",\n        \"location\": \"Heidelberg, Germany\",\n        \"name\": \"PyCon DE 2027\",\n        \"source\": \"https://wiki.python.org/moin/PythonEventsCalendar\",\n        \"start_date\": \"2027-04-20\",\n        \"state\": null,\n        \"tags\": [\n            \"python\"\n        ],\n        \"url\": \"http://pycon.de/\"\n    }\n]"
  },
  {
    "path": "docs/Makefile",
    "content": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line, and also\n# from the environment for the first two.\nSPHINXOPTS    ?=\nSPHINXBUILD   ?= sphinx-build\nSOURCEDIR     = .\nBUILDDIR      = _build\n\n# Put it first so that \"make\" without argument is like \"make help\".\nhelp:\n\t@$(SPHINXBUILD) -M help \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n\n.PHONY: help Makefile\n\n# Catch-all target: route all unknown targets to Sphinx using the new\n# \"make mode\" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).\n%: Makefile\n\t@$(SPHINXBUILD) -M $@ \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n"
  },
  {
    "path": "docs/_templates/hacks.html",
    "content": "<style type=\"text/css\">\n  div.section h1 {font-size: 210%;}\n  /* \"Quick Search\" should be capitalized. */\n  div#searchbox h3 {text-transform: capitalize;}\n  /* Make the document a little wider, less code is cut-off. */\n  div.document {width: 1008px;}\n  /* Much-improved spacing around code blocks. */\n  div.highlight pre {padding: 11px 14px;}\n  /* Remain Responsive! */\n  @media screen and (max-width: 1008px) {\n    div.sphinxsidebar {display: none;}\n    div.document {width: 100%!important;}\n    /* Have code blocks escape the document right-margin. */\n    div.highlight pre {margin-right: -30px;}\n  }\n</style>"
  },
  {
    "path": "docs/_templates/sidebarintro.html",
    "content": "<p class=\"logo\">\n  <a href=\"{{ pathto(master_doc) }}\">\n    <img class=\"logo\" src=\"{{ pathto('_static/mozilla-satellite-antenna.png', 1) }}\"/>\n  </a>\n</p>\n<p>\n<iframe src=\"https://ghbtns.com/github-btn.html?user=vinayak-mehta&repo=conrad&type=watch&count=true&size=large\"\n  allowtransparency=\"true\" frameborder=\"0\" scrolling=\"0\" width=\"200px\" height=\"35px\"></iframe>\n</p>\n\n<h3>Useful Links</h3>\n<ul>\n  <li><a href=\"https://github.com/vinayak-mehta/conrad\">conrad @ GitHub</a></li>\n  <li><a href=\"https://pypi.org/project/conference-radar/\">conrad @ PyPI</a></li>\n  <li><a href=\"https://github.com/vinayak-mehta/conrad/issues\">Issue Tracker</a></li>\n</ul>"
  },
  {
    "path": "docs/_templates/sidebarlogo.html",
    "content": "<p class=\"logo\">\n  <a href=\"{{ pathto(master_doc) }}\">\n    <img class=\"logo\" src=\"{{ pathto('_static/mozilla-satellite-antenna.png', 1) }}\"/>\n  </a>\n</p>\n<p>\n<iframe src=\"https://ghbtns.com/github-btn.html?user=vinayak-mehta&repo=conrad&type=watch&count=true&size=large\"\n  allowtransparency=\"true\" frameborder=\"0\" scrolling=\"0\" width=\"200px\" height=\"35px\"></iframe>\n</p>"
  },
  {
    "path": "docs/_themes/.gitignore",
    "content": "*.pyc\n*.pyo"
  },
  {
    "path": "docs/_themes/LICENSE",
    "content": "Copyright (c) 2010 by Armin Ronacher.\n\nSome rights reserved.\n\nRedistribution and use in source and binary forms of the theme, with or\nwithout modification, are permitted provided that the following conditions\nare met:\n\n* Redistributions of source code must retain the above copyright\n  notice, this list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above\n  copyright notice, this list of conditions and the following\n  disclaimer in the documentation and/or other materials provided\n  with the distribution.\n\n* The names of the contributors may not be used to endorse or\n  promote products derived from this software without specific\n  prior written permission.\n\nWe kindly ask you to only use these themes in an unmodified manner just\nfor Flask and Flask-related products, not for unrelated projects.  If you\nlike the visual style and want to use it for your own projects, please\nconsider making some larger changes to the themes (such as changing\nfont faces, sizes, colors or margins).\n\nTHIS THEME IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\nARISING IN ANY WAY OUT OF THE USE OF THIS THEME, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": "docs/_themes/flask_theme_support.py",
    "content": "# flasky pygments style based on tango style\nfrom pygments.style import Style\nfrom pygments.token import (\n    Keyword,\n    Name,\n    Comment,\n    String,\n    Error,\n    Number,\n    Operator,\n    Generic,\n    Whitespace,\n    Punctuation,\n    Other,\n    Literal,\n)\n\n\nclass FlaskyStyle(Style):\n    background_color = \"#f8f8f8\"\n    default_style = \"\"\n\n    styles = {\n        # No corresponding class for the following:\n        # Text:                    \"\", # class:  ''\n        Whitespace: \"underline #f8f8f8\",  # class: 'w'\n        Error: \"#a40000 border:#ef2929\",  # class: 'err'\n        Other: \"#000000\",  # class 'x'\n        Comment: \"italic #8f5902\",  # class: 'c'\n        Comment.Preproc: \"noitalic\",  # class: 'cp'\n        Keyword: \"bold #004461\",  # class: 'k'\n        Keyword.Constant: \"bold #004461\",  # class: 'kc'\n        Keyword.Declaration: \"bold #004461\",  # class: 'kd'\n        Keyword.Namespace: \"bold #004461\",  # class: 'kn'\n        Keyword.Pseudo: \"bold #004461\",  # class: 'kp'\n        Keyword.Reserved: \"bold #004461\",  # class: 'kr'\n        Keyword.Type: \"bold #004461\",  # class: 'kt'\n        Operator: \"#582800\",  # class: 'o'\n        Operator.Word: \"bold #004461\",  # class: 'ow' - like keywords\n        Punctuation: \"bold #000000\",  # class: 'p'\n        # because special names such as Name.Class, Name.Function, etc.\n        # are not recognized as such later in the parsing, we choose them\n        # to look the same as ordinary variables.\n        Name: \"#000000\",  # class: 'n'\n        Name.Attribute: \"#c4a000\",  # class: 'na' - to be revised\n        Name.Builtin: \"#004461\",  # class: 'nb'\n        Name.Builtin.Pseudo: \"#3465a4\",  # class: 'bp'\n        Name.Class: \"#000000\",  # class: 'nc' - to be revised\n        Name.Constant: \"#000000\",  # class: 'no' - to be revised\n        Name.Decorator: \"#888\",  # class: 'nd' - to be revised\n        Name.Entity: \"#ce5c00\",  # class: 'ni'\n        Name.Exception: \"bold #cc0000\",  # class: 'ne'\n        Name.Function: \"#000000\",  # class: 'nf'\n        Name.Property: \"#000000\",  # class: 'py'\n        Name.Label: \"#f57900\",  # class: 'nl'\n        Name.Namespace: \"#000000\",  # class: 'nn' - to be revised\n        Name.Other: \"#000000\",  # class: 'nx'\n        Name.Tag: \"bold #004461\",  # class: 'nt' - like a keyword\n        Name.Variable: \"#000000\",  # class: 'nv' - to be revised\n        Name.Variable.Class: \"#000000\",  # class: 'vc' - to be revised\n        Name.Variable.Global: \"#000000\",  # class: 'vg' - to be revised\n        Name.Variable.Instance: \"#000000\",  # class: 'vi' - to be revised\n        Number: \"#990000\",  # class: 'm'\n        Literal: \"#000000\",  # class: 'l'\n        Literal.Date: \"#000000\",  # class: 'ld'\n        String: \"#4e9a06\",  # class: 's'\n        String.Backtick: \"#4e9a06\",  # class: 'sb'\n        String.Char: \"#4e9a06\",  # class: 'sc'\n        String.Doc: \"italic #8f5902\",  # class: 'sd' - like a comment\n        String.Double: \"#4e9a06\",  # class: 's2'\n        String.Escape: \"#4e9a06\",  # class: 'se'\n        String.Heredoc: \"#4e9a06\",  # class: 'sh'\n        String.Interpol: \"#4e9a06\",  # class: 'si'\n        String.Other: \"#4e9a06\",  # class: 'sx'\n        String.Regex: \"#4e9a06\",  # class: 'sr'\n        String.Single: \"#4e9a06\",  # class: 's1'\n        String.Symbol: \"#4e9a06\",  # class: 'ss'\n        Generic: \"#000000\",  # class: 'g'\n        Generic.Deleted: \"#a40000\",  # class: 'gd'\n        Generic.Emph: \"italic #000000\",  # class: 'ge'\n        Generic.Error: \"#ef2929\",  # class: 'gr'\n        Generic.Heading: \"bold #000080\",  # class: 'gh'\n        Generic.Inserted: \"#00A000\",  # class: 'gi'\n        Generic.Output: \"#888\",  # class: 'go'\n        Generic.Prompt: \"#745334\",  # class: 'gp'\n        Generic.Strong: \"bold #000000\",  # class: 'gs'\n        Generic.Subheading: \"bold #800080\",  # class: 'gu'\n        Generic.Traceback: \"bold #a40000\",  # class: 'gt'\n    }\n"
  },
  {
    "path": "docs/conf.py",
    "content": "# -*- coding: utf-8 -*-\n#\n# conrad documentation build configuration file, created by\n# sphinx-quickstart on Tue Jul 19 13:44:18 2016.\n#\n# This file is execfile()d with the current directory set to its\n# containing dir.\n#\n# Note that not all possible configuration values are present in this\n# autogenerated file.\n#\n# All configuration values have a default; values that are commented out\n# serve to show the default.\n\nimport os\nimport sys\n\n# If extensions (or modules to document with autodoc) are in another directory,\n# add these directories to sys.path here. If the directory is relative to the\n# documentation root, use os.path.abspath to make it absolute, like shown here.\n#\n# sys.path.insert(0, os.path.abspath('..'))\n\n# Insert conrad's path into the system.\nsys.path.insert(0, os.path.abspath(\"..\"))\nsys.path.insert(0, os.path.abspath(\"_themes\"))\n\nimport conrad\n\n\n# -- General configuration ------------------------------------------------\n\n# If your documentation needs a minimal Sphinx version, state it here.\n#\n# needs_sphinx = '1.0'\n\n# Add any Sphinx extension module names here, as strings. They can be\n# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom\n# ones.\nextensions = []\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = [\"_templates\"]\n\n# The suffix(es) of source filenames.\n# You can specify multiple suffix as a list of string:\n#\n# source_suffix = ['.rst', '.md']\nsource_suffix = \".rst\"\n\n# The encoding of source files.\n#\n# source_encoding = 'utf-8-sig'\n\n# The master toctree document.\nmaster_doc = \"index\"\n\n# General information about the project.\nproject = u\"conference-radar\"\ncopyright = u\"2021, Vinayak Mehta\"\nauthor = u\"Vinayak Mehta\"\n\n# The version info for the project you're documenting, acts as replacement for\n# |version| and |release|, also used in various other places throughout the\n# built documents.\n\n# The short X.Y version.\nversion = conrad.__version__\n# The full version, including alpha/beta/rc tags.\nrelease = conrad.__version__\n\n# The language for content autogenerated by Sphinx. Refer to documentation\n# for a list of supported languages.\n#\n# This is also used if you do content translation via gettext catalogs.\n# Usually you set \"language\" from the command line for these cases.\nlanguage = None\n\n# There are two options for replacing |today|: either, you set today to some\n# non-false value, then it is used:\n#\n# today = ''\n#\n# Else, today_fmt is used as the format for a strftime call.\n#\n# today_fmt = '%B %d, %Y'\n\n# List of patterns, relative to source directory, that match files and\n# directories to ignore when looking for source files.\n# This patterns also effect to html_static_path and html_extra_path\nexclude_patterns = [\"_build\"]\n\n# The reST default role (used for this markup: `text`) to use for all\n# documents.\n#\n# default_role = None\n\n# If true, '()' will be appended to :func: etc. cross-reference text.\nadd_function_parentheses = True\n\n# If true, the current module name will be prepended to all description\n# unit titles (such as .. function::).\nadd_module_names = True\n\n# If true, sectionauthor and moduleauthor directives will be shown in the\n# output. They are ignored by default.\n#\n# show_authors = False\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = \"flask_theme_support.FlaskyStyle\"\n\n# A list of ignored prefixes for module index sorting.\n# modindex_common_prefix = []\n\n# If true, keep warnings as \"system message\" paragraphs in the built documents.\n# keep_warnings = False\n\n# If true, `todo` and `todoList` produce output, else they produce nothing.\ntodo_include_todos = True\n\n\n# -- Options for HTML output ----------------------------------------------\n\n# The theme to use for HTML and HTML Help pages.  See the documentation for\n# a list of builtin themes.\nhtml_theme = \"alabaster\"\n\n# Theme options are theme-specific and customize the look and feel of a theme\n# further.  For a list of options available for each theme, see the\n# documentation.\nhtml_theme_options = {\n    \"show_powered_by\": False,\n    \"github_user\": \"vinayak-mehta\",\n    \"github_repo\": \"conrad\",\n    \"github_banner\": True,\n    \"show_related\": False,\n    \"note_bg\": \"#FFF59C\",\n}\n\n# Add any paths that contain custom themes here, relative to this directory.\n# html_theme_path = []\n\n# The name for this set of Sphinx documents.\n# \"<project> v<release> documentation\" by default.\n#\n# html_title = None\n\n# A shorter title for the navigation bar.  Default is the same as html_title.\n#\n# html_short_title = None\n\n# The name of an image file (relative to this directory) to place at the top\n# of the sidebar.\n#\n# html_logo = None\n\n# The name of an image file (relative to this directory) to use as a favicon of\n# the docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32\n# pixels large.\nhtml_favicon = \"_static/favicon.ico\"\n\n# Add any paths that contain custom static files (such as style sheets) here,\n# relative to this directory. They are copied after the builtin static files,\n# so a file named \"default.css\" will overwrite the builtin \"default.css\".\nhtml_static_path = [\"_static\"]\n\n# Add any extra paths that contain custom files (such as robots.txt or\n# .htaccess) here, relative to this directory. These files are copied\n# directly to the root of the documentation.\n#\n# html_extra_path = []\n\n# If not None, a 'Last updated on:' timestamp is inserted at every page\n# bottom, using the given strftime format.\n# The empty string is equivalent to '%b %d, %Y'.\n#\n# html_last_updated_fmt = None\n\n# If true, SmartyPants will be used to convert quotes and dashes to\n# typographically correct entities.\nhtml_use_smartypants = True\n\n# Custom sidebar templates, maps document names to template names.\nhtml_sidebars = {\n    \"index\": [\n        \"sidebarintro.html\",\n        \"relations.html\",\n        \"sourcelink.html\",\n        \"searchbox.html\",\n        \"hacks.html\",\n    ],\n    \"**\": [\n        \"sidebarlogo.html\",\n        \"localtoc.html\",\n        \"relations.html\",\n        \"sourcelink.html\",\n        \"searchbox.html\",\n        \"hacks.html\",\n    ],\n}\n\n# Additional templates that should be rendered to pages, maps page names to\n# template names.\n#\n# html_additional_pages = {}\n\n# If false, no module index is generated.\n#\n# html_domain_indices = True\n\n# If false, no index is generated.\n#\n# html_use_index = True\n\n# If true, the index is split into individual pages for each letter.\n#\n# html_split_index = False\n\n# If true, links to the reST sources are added to the pages.\nhtml_show_sourcelink = False\n\n# If true, \"Created using Sphinx\" is shown in the HTML footer. Default is True.\nhtml_show_sphinx = False\n\n# If true, \"(C) Copyright ...\" is shown in the HTML footer. Default is True.\nhtml_show_copyright = True\n\n# If true, an OpenSearch description file will be output, and all pages will\n# contain a <link> tag referring to it.  The value of this option must be the\n# base URL from which the finished HTML is served.\n#\n# html_use_opensearch = ''\n\n# This is the file name suffix for HTML files (e.g. \".xhtml\").\n# html_file_suffix = None\n\n# Language to be used for generating the HTML full-text search index.\n# Sphinx supports the following languages:\n#   'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'\n#   'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh'\n#\n# html_search_language = 'en'\n\n# A dictionary with options for the search language support, empty by default.\n# 'ja' uses this config value.\n# 'zh' user can custom change `jieba` dictionary path.\n#\n# html_search_options = {'type': 'default'}\n\n# The name of a javascript file (relative to the configuration directory) that\n# implements a search results scorer. If empty, the default will be used.\n#\n# html_search_scorer = 'scorer.js'\n\n# Output file base name for HTML help builder.\nhtmlhelp_basename = \"conraddoc\"\n\n# -- Options for LaTeX output ---------------------------------------------\n\nlatex_elements = {\n    # The paper size ('letterpaper' or 'a4paper').\n    #\n    # 'papersize': 'letterpaper',\n    # The font size ('10pt', '11pt' or '12pt').\n    #\n    # 'pointsize': '10pt',\n    # Additional stuff for the LaTeX preamble.\n    #\n    # 'preamble': '',\n    # Latex figure (float) alignment\n    #\n    # 'figure_align': 'htbp',\n}\n\n# Grouping the document tree into LaTeX files. List of tuples\n# (source start file, target name, title,\n#  author, documentclass [howto, manual, or own class]).\nlatex_documents = [\n    (master_doc, \"conrad.tex\", u\"conrad documentation\", u\"Vinayak Mehta\", \"manual\")\n]\n\n# The name of an image file (relative to this directory) to place at the top of\n# the title page.\n#\n# latex_logo = None\n\n# For \"manual\" documents, if this is true, then toplevel headings are parts,\n# not chapters.\n#\n# latex_use_parts = False\n\n# If true, show page references after internal links.\n#\n# latex_show_pagerefs = False\n\n# If true, show URL addresses after external links.\n#\n# latex_show_urls = False\n\n# Documents to append as an appendix to all manuals.\n#\n# latex_appendices = []\n\n# It false, will not define \\strong, \\code,     itleref, \\crossref ... but only\n# \\sphinxstrong, ..., \\sphinxtitleref, ... To help avoid clash with user added\n# packages.\n#\n# latex_keep_old_macro_names = True\n\n# If false, no module index is generated.\n#\n# latex_domain_indices = True\n\n\n# -- Options for manual page output ---------------------------------------\n\n# One entry per manual page. List of tuples\n# (source start file, name, description, authors, manual section).\nman_pages = [(master_doc, \"conrad\", u\"conrad documentation\", [author], 1)]\n\n# If true, show URL addresses after external links.\n#\n# man_show_urls = False\n\n\n# -- Options for Texinfo output -------------------------------------------\n\n# Grouping the document tree into Texinfo files. List of tuples\n# (source start file, target name, title, author,\n#  dir menu entry, description, category)\ntexinfo_documents = [\n    (\n        master_doc,\n        \"conrad\",\n        u\"conrad documentation\",\n        author,\n        \"conrad\",\n        \"One line description of project.\",\n        \"Miscellaneous\",\n    )\n]\n\n# Documents to append as an appendix to all manuals.\n#\n# texinfo_appendices = []\n\n# If false, no module index is generated.\n#\n# texinfo_domain_indices = True\n\n# How to display URL addresses: 'footnote', 'no', or 'inline'.\n#\n# texinfo_show_urls = 'footnote'\n\n# If true, do not generate a @detailmenu in the \"Top\" node's menu.\n#\n# texinfo_no_detailmenu = False\n"
  },
  {
    "path": "docs/dev/adding-crawlers.rst",
    "content": ".. _adding-crawlers:\n\nAdding a crawler\n================\n\n``conrad``'s event database is updated every Monday and Thursday at ``00:00 UTC`` using a GitHub workflow. The workflow runs all crawlers, updates the event database and raises a PR for a maintainer to review and then merge. Once the PR is merged, these new events become available for consumption using the command-line interface!\n\nCurrently, ``conrad`` has crawlers for:\n\n- https://confs.tech\n- https://pydata.org/event-schedule\n- https://github.com/python-organizers/conferences\n- https://wiki.python.org/moin/PythonEventsCalendar\n\nThere are two steps you need to do for adding a crawler to ``conrad``, writing a crawler and then scheduling the crawler.\n\n.. note:: Please use the pull request workflow that is described in the `Contributor's Guide <https://github.com/vinayak-mehta/conrad/blob/master/CONTRIBUTING.md>`_.\n\nWriting a crawler\n-----------------\n\nAll crawlers are present in the ``crawlers`` package at the root of the `GitHub repository <https://github.com/vinayak-mehta/conrad>`_.\n\nYou can use the ``generate`` command to generate the base code for your crawler::\n\n    $ conrad generate crawler Creepy\n        create\tcrawlers/creepy/creepy_crawler.py\n\nAnd then add your crawling code to the generated file which will be used to populate the events list::\n\n    class CreepyCrawler(BaseCrawler):\n        def get_events(self):\n            # Populate this list of events using your code\n            events = []\n\n            # YOUR CODE HERE\n\n            # Extend the self.events list with the new list\n            self.events.extend(events)\n\nYou can use the ``run`` command to see if your data is getting saved in the format specified in :ref:`adding-events`::\n\n    $ conrad run crawler Creepy\n        save\tdata/creepy.json\n\nAfter you're finished writing your crawling code, you just need to schedule it.\n\nScheduling the crawler\n----------------------\n\nTo schedule the newly added ``CreepyCrawler``, you need to update the `workflow definition <https://github.com/vinayak-mehta/conrad/blob/master/.github/workflows/main.yml>`_, by adding the following step (before the \"Create pull request\" step) to the ``get_events`` job::\n\n    - id: source_name\n      name: Get Creepy events action step\n      uses: ./.github/actions/get-events-action\n      with:\n        crawler-name: 'CreepyCrawler'\n\nFinally, you can raise a PR, which after getting merged can start populating the events list every Monday and Thursday.\n"
  },
  {
    "path": "docs/dev/adding-events.rst",
    "content": ".. _adding-events:\n\nAdding new events\n=================\n\nYou can also add new events to ``conrad`` without writing a crawler for them. To do so, please go through the following steps:\n\n1. Create a `new_events.json` file containing the list of events you want to add, with the following fields::\n\n    [\n        {\n            \"name\": \"PyCon US\",\n            \"url\": \"https://us.pycon.org\",\n            \"city\": \"Pittsburgh\",\n            \"state\": \"Pennsylvania\",\n            \"country\": \"USA\",\n            \"location\": \"Pittsburgh, Pennsylvania, USA\",\n            \"cfp_open\": true,\n            \"cfp_end_date\": \"2019-12-20\",\n            \"start_date\": \"2020-04-15\",\n            \"end_date\": \"2020-04-23\",\n            \"source\": \"https://www.python.org/events/\",\n            \"tags\": [\"python\"],\n            \"kind\": \"conference\",\n            \"by\": \"human\",\n        }\n    ]\n    \"new_events.json\" 17L, 436C\n\n2. Fork the project repository. Click on the ‘Fork’ button near the top of the page. This creates a copy of the code under your account on the GitHub. Clone your fork of conrad from your GitHub account::\n\n    $ git clone https://www.github.com/[username]/conrad\n    $ cd conrad\n\n3. Create a branch to hold your changes::\n\n    $ git checkout -b add-new-event\n\n4. Import the new events::\n\n    $ conrad import -f ../new_events.json\n\n5. Finally push your changes and `raise a PR <https://help.github.com/articles/creating-a-pull-request-from-a-fork/>`_::\n\n    $ git add .\n    $ git commit -m \"Add new events\"\n    $ git push -u origin add-new-event</pre>\n"
  },
  {
    "path": "docs/index.rst",
    "content": ".. conference-radar documentation master file, created by\n   sphinx-quickstart on Tue Oct 29 12:04:29 2019.\n   You can adapt this file completely to your liking, but it should at least\n   contain the root `toctree` directive.\n\nconrad — Conference Radar\n=========================\n\n.. image:: https://github.com/vinayak-mehta/conrad/workflows/Get%20events/badge.svg\n    :target: https://github.com/vinayak-mehta/conrad/actions\n    :alt: Workflow Status\n\n.. image:: https://readthedocs.org/projects/conference-radar/badge/?version=latest\n    :target: https://conference-radar.readthedocs.io/en/latest/\n    :alt: Documentation Status\n\n.. image:: https://img.shields.io/pypi/v/conference-radar.svg\n    :target: https://pypi.org/project/conference-radar/\n\n.. image:: https://img.shields.io/pypi/pyversions/conference-radar.svg\n    :target: https://pypi.org/project/conference-radar/\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/ambv/black\n\n``conrad`` helps you track conferences and meetups on your terminal.\n\n---\n\nHere's how it works::\n\n    $ conrad show\n\n.. image:: _static/show.png\n\nWhy conrad?\n-----------\n\n- 📅 Never miss CFP deadlines again. ``conrad remind`` can remind you every time you open a terminal!\n- 📊 Query and explore events using tags, names, locations, and dates. ``conrad show --cfp`` will tell you about events where the CFP is open!\n- 🤖 Crawlers update events twice a week! (Monday and Thursday at 00:00 UTC)\n\nInstallation\n------------\n\nYou can simply use pip to install ``conrad``::\n\n    $ pip install conference-radar\n\nFeatures\n--------\n\nContinuous updates\n^^^^^^^^^^^^^^^^^^\n\nThe event list is maintained in ``data/events.json``. This list is continuously updated by the available ``crawlers`` using GitHub Actions.\n\nSources:\n\n- https://pydata.org/event-schedule\n- https://github.com/ildoc/awesome-italy-events\n- https://github.com/python-organizers/conferences\n- https://wiki.python.org/moin/PythonEventsCalendar\n- http://papercall.io (soon)\n\nSet reminders\n^^^^^^^^^^^^^\n\nYou can set CFP reminders so that you never miss a deadline! The color changes based on event proximity::\n\n    $ conrad remind -i 6bb714\n    $ conrad remind\n\n.. image:: _static/remind.png\n\n.. note:: Add ``conrad remind`` to your shell startup file so that you get a reminder every time you open a new terminal!\n\nQuery and explore\n^^^^^^^^^^^^^^^^^\n\nYou can query and explore the event database using various filters.\n\nLook at events which have an open call for proposals (CFP)::\n\n    $ conrad show --cfp\n\n.. image:: _static/show-cfp.png\n\nLook at conferences using a tag::\n\n    $ conrad show --tag python\n\n.. image:: _static/show-tag.png\n\nLook at conferences using a name::\n\n    $ conrad show --name pycon\n\n.. image:: _static/show-name.png\n\nLook at conferences in a city, state or country::\n\n    $ conrad show --location usa\n\n.. image:: _static/show-location.png\n\nLook at conferences based on when they're happening::\n\n    $ conrad show --date \">= 2019-10-01\" --date \"<= 2020-01-01\"\n\n.. image:: _static/show-date.png\n\nRefresh event database\n^^^^^^^^^^^^^^^^^^^^^^\n\nYou can get the latest events using::\n\n    $ conrad refresh\n\n.. image:: _static/refresh.png\n\nContributing\n------------\n\nThe `Contributor's Guide <https://github.com/vinayak-mehta/conrad/blob/master/CONTRIBUTING.md>`_ has detailed information about guidelines around contributions. You can add new crawlers and events to ``conrad``:\n\n.. toctree::\n   :maxdepth: 2\n\n   dev/adding-crawlers\n   dev/adding-events\n\nVersioning\n----------\n\n``conrad`` uses `Semantic Versioning <https://semver.org/>`_. For the available versions, see the tags on the GitHub repository.\n\nLicense\n-------\n\nThis project is licensed under the Apache License, see the `LICENSE <https://github.com/vinayak-mehta/conrad/blob/master/LICENSE>`_ file for details.\n"
  },
  {
    "path": "docs/make.bat",
    "content": "@ECHO OFF\r\n\r\npushd %~dp0\r\n\r\nREM Command file for Sphinx documentation\r\n\r\nif \"%SPHINXBUILD%\" == \"\" (\r\n\tset SPHINXBUILD=sphinx-build\r\n)\r\nset SOURCEDIR=.\r\nset BUILDDIR=_build\r\n\r\nif \"%1\" == \"\" goto help\r\n\r\n%SPHINXBUILD% >NUL 2>NUL\r\nif errorlevel 9009 (\r\n\techo.\r\n\techo.The 'sphinx-build' command was not found. Make sure you have Sphinx\r\n\techo.installed, then set the SPHINXBUILD environment variable to point\r\n\techo.to the full path of the 'sphinx-build' executable. Alternatively you\r\n\techo.may add the Sphinx directory to PATH.\r\n\techo.\r\n\techo.If you don't have Sphinx installed, grab it from\r\n\techo.http://sphinx-doc.org/\r\n\texit /b 1\r\n)\r\n\r\n%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%\r\ngoto end\r\n\r\n:help\r\n%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%\r\n\r\n:end\r\npopd\r\n"
  },
  {
    "path": "setup.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport os\n\nfrom setuptools import find_packages\n\nhere = os.path.abspath(os.path.dirname(__file__))\nabout = {}\nwith open(os.path.join(here, \"conrad\", \"__version__.py\"), \"r\") as f:\n    exec(f.read(), about)\n\nwith open(\"README.md\", \"r\") as f:\n    readme = f.read()\n\n\nrequires = [\n    \"Click>=7.0\",\n    \"cli-helpers>=1.2.1\",\n    \"colorama>=0.4.1\",\n    \"geopy>=2.0.0\",\n    \"requests>=2.22.0\",\n    \"rich>=10.6.0\",\n    \"SQLAlchemy>=1.3.10\",\n    \"textdistance>=4.1.5\",\n]\ndev_requires = [\"Sphinx>=2.2.1\", \"pytest>=3.8.0\"]\ncrawl_requires = [\n    \"beautifulsoup4>=4.8.1\",\n    \"Cerberus>=1.3.2\",\n    \"dateparser>=0.7.2\",\n    \"GitPython>=3.1.18\",\n    \"google-api-python-client>=1.10.0\",\n    \"pandas>=0.25.2\",\n    \"pyOpenSSL>=19.0.0\",\n    \"requests>=2.22.0\",\n    \"textdistance>=4.1.5\",\n]\ndev_requires = dev_requires + requires\nall_requires = crawl_requires + dev_requires\n\n\ndef setup_package():\n    metadata = dict(\n        name=about[\"__title__\"],\n        version=about[\"__version__\"],\n        description=about[\"__description__\"],\n        long_description=readme,\n        long_description_content_type=\"text/markdown\",\n        url=about[\"__url__\"],\n        author=about[\"__author__\"],\n        author_email=about[\"__author_email__\"],\n        license=about[\"__license__\"],\n        packages=find_packages(exclude=(\"tests\",)),\n        install_requires=requires,\n        extras_require={\"all\": all_requires, \"dev\": dev_requires},\n        entry_points={\"console_scripts\": [\"conrad = conrad.__main__:main\"]},\n        classifiers=[\n            # Trove classifiers\n            # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers\n            \"License :: OSI Approved :: Apache Software License\",\n            \"Programming Language :: Python :: 3.6\",\n            \"Programming Language :: Python :: 3.7\",\n            \"Programming Language :: Python :: 3.8\",\n            \"Programming Language :: Python :: 3.9\",\n        ],\n    )\n\n    try:\n        from setuptools import setup\n    except ImportError:\n        from distutils.core import setup\n\n    setup(**metadata)\n\n\nif __name__ == \"__main__\":\n    setup_package()\n"
  },
  {
    "path": "tests/test_conrad.py",
    "content": ""
  },
  {
    "path": "tests/test_geocoding.py",
    "content": "# -*- coding: utf-8 -*-\n\nfrom conrad.utils import get_address\n\n\nNYC_ADDRESS = {\n    \"amenity\": \"New York City Hall\",\n    \"house_number\": \"260\",\n    \"road\": \"Broadway\",\n    \"neighbourhood\": \"Civic Center\",\n    \"suburb\": \"Manhattan\",\n    \"city\": \"Manhattan Community Board 1\",\n    \"county\": \"New York County\",\n    \"state\": \"New York\",\n    \"postcode\": \"10000\",\n    \"country\": \"United States of America\",\n    \"country_code\": \"us\",\n    \"latitude\": 40.7127281,\n    \"longitude\": -74.0060152,\n}\n\n\ndef test_bad_place():\n    place = \"doesnotexist\"\n    address = get_address(place)\n    assert address is None\n\n\ndef test_good_place():\n    place = \"New York\"\n    address = get_address(place)\n    assert address == NYC_ADDRESS\n"
  }
]