diff --git a/.JuliaFormatter.toml b/.JuliaFormatter.toml
new file mode 100644
index 0000000..89c5fb9
--- /dev/null
+++ b/.JuliaFormatter.toml
@@ -0,0 +1,7 @@
+margin = 100
+whitespace_in_kwargs = false
+always_for_in = true
+align_assignment = true
+align_conditional = true
+align_pair_arrow = true
+align_struct_field = true
diff --git a/.github/workflows/FormatPR.yml b/.github/workflows/FormatPR.yml
new file mode 100644
index 0000000..5223e7d
--- /dev/null
+++ b/.github/workflows/FormatPR.yml
@@ -0,0 +1,33 @@
+# https://raw.githubusercontent.com/julia-actions/julia-format/master/workflows/format_pr.yml
+name: FormatPR
+
+on:
+  schedule:
+    - cron: '0 0 * * *'
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: Install JuliaFormatter and format
+        run: |
+          julia  -e 'import Pkg; Pkg.add("JuliaFormatter")'
+          julia  -e 'using JuliaFormatter; format(".")'
+
+      # https://github.com/marketplace/actions/create-pull-request
+      # https://github.com/peter-evans/create-pull-request#reference-example
+      - name: Create Pull Request
+        id: cpr
+        uses: peter-evans/create-pull-request@v3
+        with:
+          token: ${{ secrets.GITHUB_TOKEN }}
+          commit-message: Format .jl files
+          title: 'Automatic JuliaFormatter.jl run'
+          branch: auto-juliaformatter-pr
+          delete-branch: true
+          labels: formatting, automated pr, no changelog
+      - name: Check outputs
+        run: |
+          echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
+          echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"