diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 645fb53a6a20a589074db685d7d88f1d897f8c8b..6d4b6eb15bb8d6511846d857fb609dc0fcbb48f3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -29,11 +29,11 @@ cabal v2-build cabal-tests # etc...
 Running tests
 -------------
 
-**Using Github Actions and AppVeyor.**
+**Using Github Actions.**
 If you are not in a hurry, the most convenient way to run tests on Cabal
 is to make a branch on GitHub and then open a pull request; our
-continuous integration service on Github Actions and AppVeyor will build and
-test your code.  Title your PR with WIP so we know that it does not need
+continuous integration service on Github Actions builds and
+tests your code.  Title your PR with WIP so we know that it does not need
 code review.
 
 Some tips for using Github Actions effectively:
@@ -72,10 +72,6 @@ failures:
    tested.  If you have an Ubuntu system, you can download
    the binaries and run them directly.
 
-5. Is the test failing on AppVeyor?  Consider logging in via
-   Remote Desktop to the build VM:
-   https://www.appveyor.com/docs/how-to/rdp-to-build-worker/
-
 If none of these let you reproduce, there might be some race condition
 or continuous integration breakage; please file a bug.
 
diff --git a/Cabal-tests/Cabal-tests.cabal b/Cabal-tests/Cabal-tests.cabal
index efc28c56a8f2c19c0262c247f10467ebdc9c1129..e4a6ca71c2524a631d45305b7e5e5a4619b03553 100644
--- a/Cabal-tests/Cabal-tests.cabal
+++ b/Cabal-tests/Cabal-tests.cabal
@@ -151,7 +151,6 @@ test-suite hackage-tests
   type:               exitcode-stdio-1.0
   main-is:            HackageTests.hs
 
-  -- TODO: need to get 01-index.tar on appveyor
   if os(windows)
     buildable: False
 
diff --git a/README.md b/README.md
index 4d500561c780fa8efb1a10347d491022aa890506..b0fd4c7452e746c4b0525883f3e9e48246b73838 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Cabal [![Hackage version](https://img.shields.io/hackage/v/Cabal.svg?label=Hackage)](https://hackage.haskell.org/package/Cabal) [![Stackage version](https://www.stackage.org/package/Cabal/badge/lts?label=Stackage)](https://www.stackage.org/package/Cabal) [![Artifacts](https://github.com/haskell/cabal/actions/workflows/artifacts.yml/badge.svg?branch=master)](https://github.com/haskell/cabal/actions/workflows/artifacts.yml?query=branch%3Amaster) [![Windows build status](https://ci.appveyor.com/api/projects/status/github/haskell/cabal?branch=master&svg=true)](https://ci.appveyor.com/project/23Skidoo/cabal) [![Documentation Status](http://readthedocs.org/projects/cabal/badge/?version=latest)](http://cabal.readthedocs.io/en/latest/?badge=latest)
+# Cabal [![Hackage version](https://img.shields.io/hackage/v/Cabal.svg?label=Hackage)](https://hackage.haskell.org/package/Cabal) [![Stackage version](https://www.stackage.org/package/Cabal/badge/lts?label=Stackage)](https://www.stackage.org/package/Cabal) [![Artifacts](https://github.com/haskell/cabal/actions/workflows/artifacts.yml/badge.svg?branch=master)](https://github.com/haskell/cabal/actions/workflows/artifacts.yml?query=branch%3Amaster) [![Documentation Status](http://readthedocs.org/projects/cabal/badge/?version=latest)](http://cabal.readthedocs.io/en/latest/?badge=latest)
 
 <img src="https://www.haskell.org/cabal/images/Cabal-light.png" align="right">
 
diff --git a/appveyor-retry.cmd b/appveyor-retry.cmd
deleted file mode 100644
index ac3836508576b869ec0fb87acfefaf3665a9532b..0000000000000000000000000000000000000000
--- a/appveyor-retry.cmd
+++ /dev/null
@@ -1,21 +0,0 @@
-@echo off
-rem Source: https://github.com/appveyor/ci/blob/master/scripts/appveyor-retry.cmd
-rem initiate the retry number
-set retryNumber=0
-set maxRetries=3
-
-:RUN
-%*
-set LastErrorLevel=%ERRORLEVEL%
-IF %LastErrorLevel% == 0 GOTO :EOF
-set /a retryNumber=%retryNumber%+1
-IF %reTryNumber% == %maxRetries% (GOTO :FAILED)
-
-:RETRY
-set /a retryNumberDisp=%retryNumber%+1
-@echo Command "%*" failed with exit code %LastErrorLevel%. Retrying %retryNumberDisp% of %maxRetries%
-GOTO :RUN
-
-: FAILED
-@echo Sorry, we tried running command for %maxRetries% times and all attempts were unsuccessful!
-EXIT /B %LastErrorLevel%
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index 8ffa854a815426097e907926179b48da99dd63b1..0000000000000000000000000000000000000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,63 +0,0 @@
-# Read https://hub.zhox.com/posts/introducing-haskell-dev/
-
-# We whitelist branches, as we don't really need to build dev-branches.
-# Remember to add release branches, both here and to .travis.yml.
-branches:
-  only:
-    - master
-    - "3.0"
-    - "2.4"
-    - "2.2"
-    - "2.0"
-    - "1.24"
-    - "1.22"
-    - "1.20"
-    - "1.18"
-
-
-# Do not build feature branch with open Pull Requests
-# prevents PR double builds as branch
-skip_branch_with_pr: true
-
-install:
-  # Using '-y' and 'refreshenv' as a workaround to:
-  # https://github.com/haskell/cabal/issues/3687
-  - choco source add -n mistuke -s https://www.myget.org/F/mistuke/api/v2
-  - choco install -y cabal --version 2.4.1.0
-  - choco install -y ghc --version 8.6.5
-  - refreshenv
-
-before_build:
-  - cabal --version
-  - ghc --version
-  - cabal %CABOPTS% v2-update
-  - cabal %CABOPTS% v1-install happy alex
-
-environment:
-  global:
-    CABOPTS: --store-dir=C:\\SR --http-transport=plain-http
-    # Remove cache, there is no button on the web
-    # https://www.appveyor.com/docs/build-cache/#skipping-cache-operations-for-specific-build
-    APPVEYOR_CACHE_SKIP_RESTORE: true
-
-clone_folder: "c:\\WORK"
-
-cache:
-  - dist-newstyle
-  - "C:\\sr"
-
-build_script:
-  - cabal %CABOPTS% v2-configure --enable-tests
-  - appveyor-retry cabal %CABOPTS% v2-build lib:Cabal --only-dependencies
-  - cabal %CABOPTS% v2-build lib:Cabal
-  - appveyor-retry cabal %CABOPTS% v2-build Cabal-tests:tests --only-dependencies
-  - cabal %CABOPTS% v2-test Cabal-tests
-  - appveyor-retry cabal %CABOPTS% v2-build exe:cabal exe:cabal-tests --only-dependencies
-  - cabal %CABOPTS% v2-build exe:cabal
-  - cabal %CABOPTS% v2-run cabal-testsuite:cabal-tests -- -j3 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-install-3.7.0.0\x\cabal\build\cabal\cabal.exe
-  - appveyor-retry cabal %CABOPTS% v2-build cabal-install:tests --only-dependencies
-  - cd cabal-install
-  - cabal %CABOPTS% v2-run cabal-install:memory-usage-tests
-  - cabal %CABOPTS% v2-run cabal-install:long-tests -- --pattern "! (/FileMonitor/ || /VCS/ || /Get/)"
-  - cabal %CABOPTS% v2-run cabal-install:integration-tests2
-  - cabal %CABOPTS% v2-run cabal-install:unit-tests -- --pattern "! (/FileMonitor/ || /VCS/ || /Get/)"