summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main--chapters.vtt77
-rw-r--r--2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main.vtt1764
-rw-r--r--2025/info/gmail-after.md601
-rw-r--r--2025/info/gmail-before.md29
4 files changed, 2469 insertions, 2 deletions
diff --git a/2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main--chapters.vtt b/2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main--chapters.vtt
new file mode 100644
index 00000000..23622244
--- /dev/null
+++ b/2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main--chapters.vtt
@@ -0,0 +1,77 @@
+WEBVTT
+
+
+00:00:00.000 --> 00:00:19.839
+Before we begin
+
+00:00:19.840 --> 00:01:02.799
+The 4-year overnight success
+
+00:01:02.800 --> 00:01:15.599
+The real title
+
+00:01:15.600 --> 00:01:34.279
+Why not gnus/mu4e/notmuch?
+
+00:01:34.280 --> 00:02:17.919
+The honest answer
+
+00:02:17.920 --> 00:02:49.439
+The org-gmail philosophy
+
+00:02:49.440 --> 00:03:21.199
+Architecture (the boring but important slide)
+
+00:03:21.200 --> 00:04:37.479
+Demo 1: From gmail to org
+
+00:04:37.480 --> 00:05:43.039
+Settings
+
+00:05:43.040 --> 00:07:56.879
+Downloading
+
+00:07:56.880 --> 00:09:33.679
+Replying
+
+00:09:33.680 --> 00:10:57.159
+Label management
+
+00:10:57.160 --> 00:12:04.119
+Refiling
+
+00:12:04.120 --> 00:13:37.139
+Archiving
+
+00:13:37.140 --> 00:15:53.679
+Action commands
+
+00:15:53.680 --> 00:16:28.279
+Org Agenda
+
+00:16:28.280 --> 00:17:07.439
+Trash
+
+00:17:07.440 --> 00:17:40.559
+Real workflow: GTD
+
+00:17:40.560 --> 00:18:35.959
+Real Workflow: P.A.R.A.
+
+00:18:35.960 --> 00:20:07.679
+What this is NOT
+
+00:20:07.680 --> 00:20:54.759
+Technical decisions
+
+00:20:54.760 --> 00:21:41.439
+Roadmap
+
+00:21:41.440 --> 00:22:32.939
+Contributing
+
+00:22:32.940 --> 00:22:41.119
+The big picture
+
+00:22:41.120 --> 00:23:04.400
+Let's connect
diff --git a/2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main.vtt b/2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main.vtt
new file mode 100644
index 00000000..06ab2200
--- /dev/null
+++ b/2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main.vtt
@@ -0,0 +1,1764 @@
+WEBVTT captioned by bala
+
+NOTE Before we begin
+
+00:00:00.000 --> 00:00:01.759
+Hello everyone.
+
+00:00:01.760 --> 00:00:03.439
+My name is Bala Ramadurai.
+
+00:00:03.440 --> 00:00:07.839
+Today I'm going to be talking about org-gmail.
+
+00:00:07.840 --> 00:00:10.039
+That's something that I put together.
+
+00:00:10.040 --> 00:00:12.719
+This is what I call gmail meets org mode.
+
+00:00:12.720 --> 00:00:15.119
+And they get along too.
+
+00:00:15.120 --> 00:00:16.519
+Let's talk about email
+
+00:00:16.520 --> 00:00:19.839
+and how to manage email via org mode.
+
+NOTE The 4-year overnight success
+
+00:00:19.840 --> 00:00:23.919
+This project is a four year overnight success.
+
+00:00:23.920 --> 00:00:26.039
+It was in 2021.
+
+00:00:26.040 --> 00:00:27.279
+I said, Hey, wait a second.
+
+00:00:27.280 --> 00:00:30.519
+It'll be so cool if we can integrate Gmail with org.
+
+00:00:30.520 --> 00:00:32.959
+So I started trying out new things.
+
+00:00:32.960 --> 00:00:34.399
+And immediately I realized
+
+00:00:34.400 --> 00:00:36.799
+this is a much larger project than I thought.
+
+00:00:36.800 --> 00:00:40.599
+So it lived in someday maybe.org
+
+00:00:40.600 --> 00:00:42.599
+for about three years.
+
+00:00:42.600 --> 00:00:48.759
+Enter 2024 AI arrives and in 2025 I had a working
+
+00:00:48.760 --> 00:00:50.919
+prototype in 24 hours flat.
+
+00:00:50.920 --> 00:00:55.759
+So three years and 364 days, nothing much happened
+
+00:00:55.760 --> 00:00:58.159
+and one day it actually got it working.
+
+00:00:58.160 --> 00:01:00.919
+Sometimes procrastination is just waiting for the
+
+00:01:00.920 --> 00:01:02.799
+right tools.
+
+NOTE The real title
+
+00:01:02.800 --> 00:01:05.519
+The real title should have been org mail for
+
+00:01:05.520 --> 00:01:08.479
+people who like org mode more than email.
+
+00:01:08.480 --> 00:01:12.799
+The Gmail monster that has always been attacking us.
+
+00:01:12.800 --> 00:01:15.599
+Okay, but we still have to deal with email.
+
+NOTE Why not gnus/mu4e/notmuch?
+
+00:01:15.600 --> 00:01:18.599
+One of the most common questions that I've got so far.
+
+00:01:18.600 --> 00:01:24.639
+Why not gnus or mu4e or notmuch, or other tools.
+
+00:01:24.640 --> 00:01:26.359
+They are amazing.
+
+00:01:26.360 --> 00:01:29.239
+Use them if it works for you, absolutely.
+
+00:01:29.240 --> 00:01:30.319
+Just go right ahead.
+
+00:01:30.320 --> 00:01:32.239
+If it works for you, don't change anything
+
+00:01:32.240 --> 00:01:34.279
+because this looks cool.
+
+NOTE The honest answer
+
+00:01:34.280 --> 00:01:36.599
+Well, the honest answer for me is that
+
+00:01:36.600 --> 00:01:39.399
+they want to be your email client.
+
+00:01:39.400 --> 00:01:40.879
+That's not what I am after.
+
+00:01:40.880 --> 00:01:42.959
+I don't want an email client.
+
+00:01:42.960 --> 00:01:45.039
+I have enough email clients already.
+
+00:01:45.040 --> 00:01:46.239
+I don't want one more.
+
+00:01:46.240 --> 00:01:49.359
+And they require 500 lines of config.
+
+00:01:49.360 --> 00:01:50.679
+I've tried it.
+
+00:01:50.680 --> 00:01:53.039
+It's a lot of maintenance for myself,
+
+00:01:53.040 --> 00:01:54.359
+I still have those somewhere.
+
+00:01:54.360 --> 00:01:57.319
+The mu4e config or the gnus config.
+
+00:01:57.320 --> 00:01:59.439
+They struggle with Gmail's labels,
+
+00:01:59.440 --> 00:02:01.839
+threading, messages and deletion.
+
+00:02:01.840 --> 00:02:05.439
+I find it tough, and it's either
+
+00:02:05.440 --> 00:02:07.079
+all in emacs or nothing.
+
+00:02:07.080 --> 00:02:10.079
+It cannot be a combinatorial approach,
+
+00:02:10.080 --> 00:02:11.159
+is what I realized.
+
+00:02:11.160 --> 00:02:13.519
+So I said, why can't we have both?
+
+00:02:13.520 --> 00:02:15.959
+I want the org mode's focus
+
+00:02:15.960 --> 00:02:17.919
+and Gmail's flexibility.
+
+NOTE The org-gmail philosophy
+
+00:02:17.920 --> 00:02:20.559
+Org-gmail philosophy is very simple.
+
+00:02:20.560 --> 00:02:22.199
+You triage in Gmail.
+
+00:02:22.200 --> 00:02:26.279
+Use the fast web UI for the easy stuff
+
+00:02:26.280 --> 00:02:27.879
+and process in org mode.
+
+00:02:27.880 --> 00:02:30.639
+Pull important threads where you do real work.
+
+00:02:30.640 --> 00:02:33.719
+And of course, a two way sync is possible.
+
+00:02:33.720 --> 00:02:36.639
+Changes flow both directions.
+
+00:02:36.640 --> 00:02:39.479
+Big inspiration has been org-gcal.
+
+00:02:39.480 --> 00:02:42.319
+I named it org-gmail because I saw org-gcal.
+
+00:02:42.320 --> 00:02:43.159
+It was so cool.
+
+00:02:43.160 --> 00:02:44.759
+I really wanted it.
+
+00:02:44.760 --> 00:02:47.719
+Think of it like an org capture for email, but
+
+00:02:47.720 --> 00:02:49.439
+just bidirectional.
+
+NOTE Architecture (the boring but important slide)
+
+00:02:49.440 --> 00:02:52.999
+Alright, the architecture (boring, but important
+
+00:02:53.000 --> 00:02:56.679
+slide) is that Gmail interacts with Python via an
+
+00:02:56.680 --> 00:02:59.439
+API and interacts with Emacs Lisp.
+
+00:02:59.440 --> 00:03:02.519
+User commands, org formatting, all that magic is
+
+00:03:02.520 --> 00:03:04.279
+done on the Emacs side with Lisp.
+
+00:03:04.280 --> 00:03:09.140
+Python side handles the Gmail API, OAuth,
+
+00:03:09.141 --> 00:03:12.407
+json wrangling and Gmail API handles
+
+00:03:12.408 --> 00:03:13.959
+the actual email data.
+
+00:03:13.960 --> 00:03:17.679
+You can do pip install, add to the load path, and
+
+00:03:17.680 --> 00:03:21.199
+10 minute OAuth setup, you are all set.
+
+NOTE Demo 1: From gmail to org
+
+00:03:21.200 --> 00:03:27.079
+We'll switch over to demo from gmail to org.
+
+00:03:27.080 --> 00:03:29.039
+How do you go about doing that?
+
+00:03:29.040 --> 00:03:32.879
+I will start off with a demo folder that I have.
+
+00:03:32.880 --> 00:03:35.119
+It has this tree structure.
+
+00:03:35.120 --> 00:03:36.559
+Ignore the tilde files.
+
+00:03:36.560 --> 00:03:37.919
+So this is what it contains.
+
+00:03:37.920 --> 00:03:41.639
+An org folder with all the working directory, the
+
+00:03:41.640 --> 00:03:44.639
+actual where the life of org mode is.
+
+00:03:44.640 --> 00:03:48.239
+And I have a credentials.json, this is for logging
+
+00:03:48.240 --> 00:03:49.119
+into Gmail.
+
+00:03:49.120 --> 00:03:50.799
+This is a file that you can download.
+
+00:03:50.800 --> 00:03:53.319
+The instructions are in my README in the
+
+00:03:53.320 --> 00:03:54.159
+repository.
+
+00:03:54.160 --> 00:03:56.119
+You can find out how to get yourself a
+
+00:03:56.120 --> 00:03:57.719
+credentials.json.
+
+00:03:57.720 --> 00:03:59.159
+It's not very difficult.
+
+00:03:59.160 --> 00:04:01.479
+Once you have these, you're all set.
+
+00:04:01.480 --> 00:04:05.359
+All you need to do is if you have straight or any
+
+00:04:05.360 --> 00:04:08.539
+of the other VC packages ready, that you can take
+
+00:04:08.540 --> 00:04:11.500
+a Git repository and have that in your folder, you
+
+00:04:11.501 --> 00:04:13.399
+can do that, or you can do it like this.
+
+00:04:13.400 --> 00:04:15.159
+Have a Git clone.
+
+00:04:15.160 --> 00:04:16.479
+Like I'm doing it right now.
+
+00:04:16.480 --> 00:04:19.239
+Just clone it, keep it in.
+
+00:04:19.240 --> 00:04:20.874
+And now you'll see
+
+00:04:20.875 --> 00:04:23.199
+that the Gmail is already there.
+
+00:04:23.200 --> 00:04:25.199
+There are two files that are really ultra
+
+00:04:25.200 --> 00:04:28.039
+important, which is, gmail_label_manager.py and
+
+00:04:28.040 --> 00:04:30.479
+org-gmail.el.
+
+00:04:30.480 --> 00:04:31.899
+These are the two files that do the email
+
+00:04:31.900 --> 00:04:33.199
+processing.
+
+00:04:33.200 --> 00:04:35.199
+I have a plain vanilla Emacs
+
+00:04:35.200 --> 00:04:37.479
+that I'm going to use for the demo.
+
+NOTE Settings
+
+00:04:37.480 --> 00:04:39.439
+These are a few settings
+
+00:04:39.440 --> 00:04:42.159
+that you will need in order to get going.
+
+00:04:42.160 --> 00:04:45.959
+So one is the Gmail itself, the elisp, and the
+
+00:04:45.960 --> 00:04:47.039
+Python script.
+
+00:04:47.040 --> 00:04:49.399
+You'll need to require the package.
+
+00:04:49.400 --> 00:04:52.399
+The org agenda files need to be set.
+
+00:04:52.400 --> 00:04:54.839
+If they're already there, then yes, it needs to
+
+00:04:54.840 --> 00:04:55.879
+include the org files.
+
+00:04:55.880 --> 00:04:59.279
+Main settings are, you need an org file in order
+
+00:04:59.280 --> 00:05:02.239
+to download all the emails from Gmail.
+
+00:05:02.240 --> 00:05:03.879
+You need the credentials path.
+
+00:05:03.880 --> 00:05:05.519
+You need the Python script,
+
+00:05:05.520 --> 00:05:07.439
+wherever it is pointed to that.
+
+00:05:07.440 --> 00:05:10.039
+The date drawer, you can customize it
+
+00:05:10.040 --> 00:05:11.319
+to whatever you want.
+
+00:05:11.320 --> 00:05:12.159
+I call it org-gmail.
+
+00:05:12.160 --> 00:05:14.639
+You can set it to ignore certain labels,
+
+00:05:14.640 --> 00:05:15.799
+not to download it.
+
+00:05:15.800 --> 00:05:17.359
+You're not interested in certain labels
+
+00:05:17.360 --> 00:05:18.479
+being downloaded.
+
+00:05:18.480 --> 00:05:19.599
+You can set that
+
+00:05:19.600 --> 00:05:21.959
+and process time out of 300 seconds.
+
+00:05:21.960 --> 00:05:25.359
+These are some things to keep life sane in this
+
+00:05:25.360 --> 00:05:27.819
+plain vanilla emacs.
+
+00:05:27.820 --> 00:05:30.799
+So I have this refile targets and stuff.
+
+00:05:30.800 --> 00:05:33.579
+That's the main org-gmail settings are all here.
+
+00:05:33.580 --> 00:05:37.879
+I'm going to eval this buffer so that we have all
+
+00:05:37.880 --> 00:05:40.039
+of it and we are all set.
+
+00:05:40.040 --> 00:05:43.039
+So we have org-gmail ready to work right now.
+
+NOTE Downloading
+
+00:05:43.040 --> 00:05:44.959
+The first thing I'm going to show you is
+
+00:05:44.960 --> 00:05:48.079
+org-gmail-download-by-label.
+
+00:05:48.080 --> 00:05:50.599
+This is the demo Gmail that I have.
+
+00:05:50.600 --> 00:05:53.619
+They all have some kind of test emails and I'm
+
+00:05:53.620 --> 00:05:56.199
+going to label them.
+
+00:05:56.200 --> 00:06:00.719
+I've created this hierarchy of labels here based
+
+00:06:00.720 --> 00:06:04.119
+on Tiago Forte's PARA - Project, Area, Resources,
+
+00:06:04.120 --> 00:06:06.079
+Archives structure.
+
+00:06:06.080 --> 00:06:09.439
+1Projects, DemoProject1, 2Areas, DemoArea,
+
+00:06:09.440 --> 00:06:12.119
+4Archives, 2025, OldProject.
+
+00:06:12.120 --> 00:06:14.959
+I've labeled them inside my Gmail.
+
+00:06:14.960 --> 00:06:20.759
+Okay, now let's go to Emacs and we will now
+
+00:06:20.760 --> 00:06:23.719
+download these things, but before downloading
+
+00:06:23.720 --> 00:06:26.919
+them, you will need to authenticate.
+
+00:06:26.920 --> 00:06:28.800
+So for that, you can start
+
+00:06:28.801 --> 00:06:30.900
+with any org-gmail command.
+
+00:06:30.901 --> 00:06:35.079
+So I'm going to take org-gmail-download-by-label.
+
+00:06:35.080 --> 00:06:38.839
+When I press that, it immediately opens a session
+
+00:06:38.840 --> 00:06:39.999
+in my browser.
+
+00:06:40.000 --> 00:06:40.659
+Okay?
+
+00:06:40.660 --> 00:06:45.799
+What you can't see is a list of my Gmail accounts
+
+00:06:45.800 --> 00:06:46.759
+that I'm going to select.
+
+00:06:46.760 --> 00:06:50.039
+I'm going to select my one Gmail account, and I'm
+
+00:06:50.040 --> 00:06:53.199
+going to show you the next screen.
+
+00:06:53.200 --> 00:06:56.999
+So in this screen, you'll have to continue and
+
+00:06:57.000 --> 00:06:59.119
+select, and the authentication is completed.
+
+00:06:59.120 --> 00:07:02.679
+So once it's, this is done, you can close this.
+
+00:07:02.680 --> 00:07:08.999
+Come back to Emacs and you will have Select Gmail.
+
+00:07:09.000 --> 00:07:10.439
+So it has tab support.
+
+00:07:10.440 --> 00:07:11.719
+If you click tab, it will tell you
+
+00:07:11.720 --> 00:07:13.919
+what all labels are available.
+
+00:07:13.920 --> 00:07:16.319
+I can pick anyone.
+
+00:07:16.320 --> 00:07:21.839
+1Projects/DemoProject1, and let's see what happens.
+
+00:07:21.840 --> 00:07:26.479
+It starts downloading and it downloads.
+
+00:07:26.480 --> 00:07:28.799
+And all three messages, four messages,
+
+00:07:28.800 --> 00:07:29.719
+five messages.
+
+00:07:29.720 --> 00:07:30.759
+Six, seven.
+
+00:07:30.760 --> 00:07:33.319
+There are 11 messages in total,
+
+00:07:33.320 --> 00:07:36.039
+and it's downloading all of them.
+
+00:07:36.040 --> 00:07:40.319
+~/demo/org/0Inbox.
+
+00:07:40.320 --> 00:07:42.079
+That's where I have it.
+
+00:07:42.080 --> 00:07:44.399
+And here are the emails.
+
+00:07:44.400 --> 00:07:46.439
+They're all in org mode, format.
+
+00:07:46.440 --> 00:07:48.399
+All the emails are in here.
+
+00:07:48.400 --> 00:07:49.719
+Since it's org mode,
+
+00:07:49.720 --> 00:07:52.679
+it can fold them all and you will see those emails.
+
+00:07:52.680 --> 00:07:54.279
+So these are five emails
+
+00:07:54.280 --> 00:07:56.879
+that are present for the DemoProject1.
+
+NOTE Replying
+
+00:07:56.880 --> 00:07:59.279
+The next one I wanted to show you was
+
+00:07:59.280 --> 00:08:01.039
+reply without leaving emacs.
+
+00:08:01.040 --> 00:08:04.919
+Let's go back to emacs.
+
+00:08:04.920 --> 00:08:06.479
+How am I going to reply?
+
+00:08:06.480 --> 00:08:09.319
+org-gmail-reply-at-point.
+
+00:08:09.320 --> 00:08:11.379
+That's how I'm going to reply.
+
+00:08:11.380 --> 00:08:13.119
+Reply all or reply.
+
+00:08:13.120 --> 00:08:13.759
+Okay.
+
+00:08:13.760 --> 00:08:16.199
+Let's first find out what is the email all about.
+
+00:08:16.200 --> 00:08:16.719
+Okay.
+
+00:08:16.720 --> 00:08:19.319
+There's just one sender with just one recipient.
+
+00:08:19.320 --> 00:08:21.399
+So the reply all or reply
+
+00:08:21.400 --> 00:08:23.020
+doesn't make a difference.
+
+00:08:23.021 --> 00:08:23.700
+Okay?
+
+00:08:23.701 --> 00:08:28.339
+So we will reply at point and if it's Reply All,
+
+00:08:28.340 --> 00:08:30.999
+it includes my own email as well.
+
+00:08:31.000 --> 00:08:34.399
+In this, my email is .mx.
+
+00:08:34.400 --> 00:08:35.159
+Okay.
+
+00:08:35.160 --> 00:08:39.279
+Cc, I can cc anybody I want and I won't do that.
+
+00:08:39.280 --> 00:08:42.039
+I have a Gmail reply window.
+
+00:08:42.040 --> 00:08:43.439
+Split window here.
+
+00:08:43.440 --> 00:08:47.159
+C-c C-c is what will send the reply.
+
+00:08:47.160 --> 00:08:50.479
+C-c C-k is what will cancel the reply.
+
+00:08:50.480 --> 00:08:51.919
+I want to reply.
+
+00:08:51.920 --> 00:08:57.779
+So let's say test reply from within emacs
+
+00:08:57.780 --> 00:09:00.559
+and bala@balaramadurai.net
+
+00:09:00.560 --> 00:09:01.719
+should receive this email.
+
+00:09:01.720 --> 00:09:02.999
+Okay.
+
+00:09:03.000 --> 00:09:07.599
+Initial successfully reply sent for this email id.
+
+00:09:07.600 --> 00:09:08.599
+Okay.
+
+00:09:08.600 --> 00:09:11.959
+A feature request I can already imagine is
+
+00:09:11.960 --> 00:09:15.439
+the reply also appearing at the bottom of this.
+
+00:09:15.440 --> 00:09:16.759
+It's not yet there.
+
+00:09:16.760 --> 00:09:18.279
+In the next version I will have that.
+
+00:09:18.280 --> 00:09:22.319
+Let's check if I've have sent that email.
+
+00:09:22.320 --> 00:09:25.319
+Let's check in the sent box.
+
+00:09:25.320 --> 00:09:29.119
+I just checked in the sent and yes,
+
+00:09:29.120 --> 00:09:31.959
+a test reply from within emacs, does show up.
+
+00:09:31.960 --> 00:09:33.039
+Okay, great.
+
+00:09:33.040 --> 00:09:33.679
+That works.
+
+NOTE Label management
+
+00:09:33.680 --> 00:09:36.959
+The third demo is going to be on label management.
+
+00:09:36.960 --> 00:09:38.439
+How do I manage labels?
+
+00:09:38.440 --> 00:09:39.359
+Let's see.
+
+00:09:39.360 --> 00:09:40.399
+Let's go back to emacs.
+
+00:09:40.400 --> 00:09:46.599
+Suppose, I am not keen on this DemoProject1 for this.
+
+00:09:46.600 --> 00:09:50.839
+It should belong to DemoArea, okay?
+
+00:09:50.840 --> 00:09:52.919
+For this thread itself doesn't belong to this.
+
+00:09:52.920 --> 00:09:57.879
+Let's do org-gmail-edit-label-at-point.
+
+00:09:57.880 --> 00:10:00.879
+Well, I don't want one project at all.
+
+00:10:00.880 --> 00:10:05.899
+It should be under 2Areas/DemoArea.
+
+00:10:05.900 --> 00:10:08.559
+I don't think it, it's not tab supported.
+
+00:10:08.560 --> 00:10:09.519
+You should know this.
+
+00:10:09.520 --> 00:10:09.999
+I will.
+
+00:10:10.000 --> 00:10:11.439
+That's another feature request.
+
+00:10:11.440 --> 00:10:14.599
+2Areas/DemoArea.
+
+00:10:14.600 --> 00:10:17.679
+And when I say this, it should update it.
+
+00:10:17.680 --> 00:10:19.039
+Yes, it has updated it.
+
+00:10:19.040 --> 00:10:21.039
+So you can see that it has updated
+
+00:10:21.040 --> 00:10:22.159
+the label here as well.
+
+00:10:22.160 --> 00:10:26.159
+We can go check if it has indeed changed it
+
+00:10:26.160 --> 00:10:29.399
+in our... what is the name of the email?
+
+00:10:29.400 --> 00:10:31.439
+It's a test mail for one project demo
+
+00:10:31.440 --> 00:10:33.459
+and the date is at 3 12.
+
+00:10:33.460 --> 00:10:36.839
+Let's check if DemoArea has it.
+
+00:10:36.840 --> 00:10:39.559
+It's not refreshed, but there are two,
+
+00:10:39.560 --> 00:10:42.279
+two emails now under DemoArea.
+
+00:10:42.280 --> 00:10:43.639
+It's obviously done the job well.
+
+00:10:43.640 --> 00:10:46.119
+It's happening as expected.
+
+00:10:46.120 --> 00:10:49.159
+I just turned this back from DemoArea to
+
+00:10:49.160 --> 00:10:50.159
+DemoProject1.
+
+00:10:50.160 --> 00:10:53.759
+If you decide that I want to move all of
+
+00:10:53.760 --> 00:10:56.559
+DemoProject1 to archive, I'm done with the
+
+00:10:56.560 --> 00:10:57.159
+project.
+
+NOTE Refiling
+
+00:10:57.160 --> 00:10:58.319
+Oh, by the way, you could...
+
+00:10:58.320 --> 00:10:59.599
+that's the whole point
+
+00:10:59.600 --> 00:11:00.919
+of this is to have
+
+00:11:00.920 --> 00:11:05.199
+all of this refiled into your project,
+
+00:11:05.200 --> 00:11:06.719
+you can do that.
+
+00:11:06.720 --> 00:11:08.919
+I don't know if I have that.
+
+00:11:08.920 --> 00:11:11.639
+Yes, I have demo project one
+
+00:11:11.640 --> 00:11:17.519
+and I could have emails and I created a node
+
+00:11:17.520 --> 00:11:20.439
+and I moved everything there to that folder
+
+00:11:20.440 --> 00:11:24.799
+so that when I want to look at the demo project.
+
+00:11:24.800 --> 00:11:25.959
+Let me look at this.
+
+00:11:25.960 --> 00:11:29.559
+In that context, in the project context and email,
+
+00:11:29.560 --> 00:11:33.959
+I have notes, let's say, and one of the emails is
+
+00:11:33.960 --> 00:11:34.839
+a note.
+
+00:11:34.840 --> 00:11:38.359
+And I want to be able to keep it that way.
+
+00:11:38.360 --> 00:11:41.719
+I could refile it and put it under notes as well,
+
+00:11:41.720 --> 00:11:44.439
+saying that this has some password, it has some
+
+00:11:44.440 --> 00:11:46.559
+reference that I need to have it there.
+
+00:11:46.560 --> 00:11:48.199
+I can have it under notes as well.
+
+00:11:48.200 --> 00:11:49.919
+So that's the advantage.
+
+00:11:49.920 --> 00:11:52.879
+Once it's inside the org mode system, you can do
+
+00:11:52.880 --> 00:11:55.239
+many things that are usually org-modesy.
+
+00:11:55.240 --> 00:11:57.599
+So you can do all of that within your org mode
+
+00:11:57.600 --> 00:12:00.199
+with emails, manipulate them, see it under a
+
+00:12:00.200 --> 00:12:01.359
+context, reply to that.
+
+00:12:01.360 --> 00:12:02.574
+All of that can happen
+
+00:12:02.575 --> 00:12:04.119
+right within your project context.
+
+NOTE Archiving
+
+00:12:04.120 --> 00:12:05.439
+You're done with this project.
+
+00:12:05.440 --> 00:12:06.999
+You want to move to archive.
+
+00:12:07.000 --> 00:12:09.479
+So what you need to do is you don't have to be
+
+00:12:09.480 --> 00:12:11.839
+here, you can do it this from anywhere.
+
+00:12:11.840 --> 00:12:15.199
+Bulk movement of labels, you can do it.
+
+00:12:15.200 --> 00:12:19.679
+If you had consult, embark, ivy, or helm, this will
+
+00:12:19.680 --> 00:12:22.439
+show up as a dropdown and it looks neater.
+
+00:12:22.440 --> 00:12:24.399
+This, I'm using a vanilla emacs, so this is what
+
+00:12:24.400 --> 00:12:26.279
+you would see, but it has tab support.
+
+00:12:26.280 --> 00:12:27.519
+You can use that.
+
+00:12:27.520 --> 00:12:32.319
+So I want to transfer 1Projects/DemoArea1, I want
+
+00:12:32.320 --> 00:12:32.999
+to move it to archive.
+
+00:12:33.000 --> 00:12:36.719
+So let's say 4Archives is the folder.
+
+00:12:36.720 --> 00:12:41.759
+So 4Archives/2025 already set this up.
+
+00:12:41.760 --> 00:12:46.739
+I have not created this label in Gmail.
+
+00:12:46.740 --> 00:12:48.680
+So do I need to go back to Gmail and create that?
+
+00:12:48.681 --> 00:12:49.839
+No, not at all.
+
+00:12:49.840 --> 00:12:52.159
+You can do this from the comfort of your org mode.
+
+00:12:52.160 --> 00:12:54.679
+Go in here and enter this.
+
+00:12:54.680 --> 00:12:55.639
+Let's see what happens.
+
+00:12:55.640 --> 00:12:57.759
+So it found that it is not there.
+
+00:12:57.760 --> 00:13:01.439
+So it created a new label and it's now moving all
+
+00:13:01.440 --> 00:13:04.799
+of the emails, all of those threads into archives
+
+00:13:04.800 --> 00:13:07.079
+without deleting 1Projects/DemoProject1.
+
+00:13:07.080 --> 00:13:09.639
+So it still has 1Projects/DemoProject1 and it also
+
+00:13:09.640 --> 00:13:10.639
+updated the labels here.
+
+00:13:10.640 --> 00:13:12.239
+So the project has been moved.
+
+00:13:12.240 --> 00:13:14.999
+If you want to move it to archive this entire...
+
+00:13:15.000 --> 00:13:16.479
+You can do that too.
+
+00:13:16.480 --> 00:13:19.079
+Let's see if it has archives.
+
+00:13:19.080 --> 00:13:21.959
+Yes, it has archives and I have it...
+
+00:13:21.960 --> 00:13:24.519
+have a heading called 2025.
+
+00:13:24.520 --> 00:13:26.274
+My demo project can be moved there
+
+00:13:26.275 --> 00:13:27.279
+and I'm done here.
+
+00:13:27.280 --> 00:13:28.399
+My project was done.
+
+00:13:28.400 --> 00:13:30.079
+All the emails are moved to archive.
+
+00:13:30.080 --> 00:13:32.479
+So is this project from my project folder.
+
+00:13:32.480 --> 00:13:34.919
+You can integrate it into your workflow, your org
+
+00:13:34.920 --> 00:13:37.139
+mode workflow.
+
+NOTE Action commands
+
+00:13:37.140 --> 00:13:39.039
+Next, we have action commands.
+
+00:13:39.040 --> 00:13:41.399
+What all can you do with singular emails?
+
+00:13:41.400 --> 00:13:44.999
+You can do four things with single emails.
+
+00:13:45.000 --> 00:13:49.659
+Delegate, defer, act on it or trash at point.
+
+00:13:49.660 --> 00:13:50.399
+Defer.
+
+00:13:50.400 --> 00:13:52.519
+Doesn't seem to work yet.
+
+00:13:52.520 --> 00:13:53.599
+That is a snooze part.
+
+00:13:53.600 --> 00:13:54.759
+Doesn't seem to work yet.
+
+00:13:54.760 --> 00:13:55.719
+That's another bug.
+
+00:13:55.720 --> 00:13:58.239
+That's the second bug I have in my package.
+
+00:13:58.240 --> 00:13:59.599
+But the rest of them work.
+
+00:13:59.600 --> 00:14:02.519
+Delegate is to move it to somebody so they can do
+
+00:14:02.520 --> 00:14:03.119
+the job.
+
+00:14:03.120 --> 00:14:06.399
+Act is you will do it with a context with a to-do
+
+00:14:06.400 --> 00:14:08.119
+which will show up in your agenda.
+
+00:14:08.120 --> 00:14:10.839
+Trash the email from your Gmail, and you are done.
+
+00:14:10.840 --> 00:14:12.079
+Okay, let's do that.
+
+00:14:12.080 --> 00:14:13.879
+Let's go back to emacs.
+
+00:14:13.880 --> 00:14:18.079
+I just moved everything back to DemoProject1.
+
+00:14:18.080 --> 00:14:20.919
+I moved everything back so that I can demonstrate
+
+00:14:20.920 --> 00:14:22.679
+the four actions that I'm showing.
+
+00:14:22.680 --> 00:14:23.519
+At least three actions.
+
+00:14:23.520 --> 00:14:25.039
+One of them doesn't work yet.
+
+00:14:25.040 --> 00:14:30.179
+So if I want to delegate it to somebody in this
+
+00:14:30.180 --> 00:14:31.607
+case myself, but I can delegate it
+
+00:14:31.608 --> 00:14:32.839
+to anybody I want.
+
+00:14:32.840 --> 00:14:36.159
+So how do I do that so I can delegate this, or
+
+00:14:36.160 --> 00:14:38.959
+delegate is org-gmail-delegate-at-point.
+
+00:14:38.960 --> 00:14:42.279
+Move the cursor to the email, delegate it to this
+
+00:14:42.280 --> 00:14:44.919
+guy balaramadurai.net.
+
+00:14:44.920 --> 00:14:46.607
+You can add a note saying,
+
+00:14:46.608 --> 00:14:50.799
+Hey, act on task quickly.
+
+00:14:50.800 --> 00:14:53.399
+Boss is watching.
+
+00:14:53.400 --> 00:14:54.919
+Okay?
+
+00:14:54.920 --> 00:14:59.519
+So you can say yes, and this thread gets forwarded
+
+00:14:59.520 --> 00:15:01.440
+to your colleague
+
+00:15:01.441 --> 00:15:03.559
+and so that they can take this up.
+
+00:15:03.560 --> 00:15:05.819
+It has indeed arrived here.
+
+00:15:05.820 --> 00:15:07.039
+You can see.
+
+00:15:07.040 --> 00:15:08.839
+Boss is watching.
+
+00:15:08.840 --> 00:15:11.399
+The test reply was also arrived here.
+
+00:15:11.400 --> 00:15:13.079
+You can also see that email.
+
+00:15:13.080 --> 00:15:15.359
+So that was delegate.
+
+00:15:15.360 --> 00:15:18.519
+So how do we set up actions?
+
+00:15:18.520 --> 00:15:21.199
+So let's not mess this email.
+
+00:15:21.200 --> 00:15:22.599
+This is the second email.
+
+00:15:22.600 --> 00:15:23.919
+How do you act
+
+00:15:23.920 --> 00:15:24.919
+on it?
+
+00:15:24.920 --> 00:15:27.159
+That's an action you set for yourself is add
+
+00:15:27.160 --> 00:15:31.000
+action at point, and you do that.
+
+00:15:31.001 --> 00:15:32.940
+What action can you set for yourself?
+
+00:15:32.941 --> 00:15:38.619
+Write a long report using an LLM.
+
+00:15:38.620 --> 00:15:42.279
+Okay, so it's changed the status to a to-do task.
+
+00:15:42.280 --> 00:15:44.959
+And the to-do is right here.
+
+00:15:44.960 --> 00:15:47.833
+Now, here you can schedule it
+
+00:15:47.834 --> 00:15:50.700
+to say tomorrow 9:00 AM.
+
+00:15:50.701 --> 00:15:51.800
+So there you go.
+
+00:15:51.801 --> 00:15:53.679
+At 9:00 AM I'll be looking at this.
+
+NOTE Org Agenda
+
+00:15:53.680 --> 00:15:55.119
+Now here's the cool part.
+
+00:15:55.120 --> 00:15:58.933
+You can actually find the whole thing
+
+00:15:58.934 --> 00:16:00.559
+in org agenda.
+
+00:16:00.560 --> 00:16:03.267
+So my entire email threads
+
+00:16:03.268 --> 00:16:05.959
+are all in the org agenda.
+
+00:16:05.960 --> 00:16:09.679
+They're all present here and my task associated is
+
+00:16:09.680 --> 00:16:11.319
+also here in the agenda.
+
+00:16:11.320 --> 00:16:12.767
+This is marked TODO,
+
+00:16:12.768 --> 00:16:14.919
+means I haven't acted on that email.
+
+00:16:14.920 --> 00:16:16.159
+It's still pending.
+
+00:16:16.160 --> 00:16:19.119
+And what do I have to do is right here within
+
+00:16:19.120 --> 00:16:21.559
+here, which is the action that I have to carry on
+
+00:16:21.560 --> 00:16:22.719
+in the DemoProject1.
+
+00:16:22.720 --> 00:16:24.533
+You can see that demo project one
+
+00:16:24.534 --> 00:16:25.739
+is showing up in the bottom.
+
+00:16:25.740 --> 00:16:28.279
+Okay. It's cool way you can also see it in the agenda.
+
+NOTE Trash
+
+00:16:28.280 --> 00:16:31.599
+I am not interested in this email at all.
+
+00:16:31.600 --> 00:16:33.199
+Let's say I, I want to delete it.
+
+00:16:33.200 --> 00:16:33.719
+Let's see.
+
+00:16:33.720 --> 00:16:35.319
+Yes, I finished the task.
+
+00:16:35.320 --> 00:16:37.599
+Now the task is finished.
+
+00:16:37.600 --> 00:16:40.039
+I really don't want to see this email, this
+
+00:16:40.040 --> 00:16:40.919
+message alone.
+
+00:16:40.920 --> 00:16:42.159
+Alright.
+
+00:16:42.160 --> 00:16:42.599
+Easy peasy.
+
+00:16:42.600 --> 00:16:46.679
+Let's do Gmail Trash at point.
+
+00:16:46.680 --> 00:16:48.020
+And you say, message,
+
+00:16:48.021 --> 00:16:49.901
+I don't want to delete the entire thread.
+
+00:16:49.880 --> 00:16:50.399
+Yes.
+
+00:16:50.400 --> 00:16:51.959
+Delete it.
+
+00:16:51.960 --> 00:16:53.239
+Delete the message alone.
+
+00:16:53.240 --> 00:16:54.239
+And it's gone.
+
+00:16:54.240 --> 00:16:56.039
+But it's not gone.
+
+00:16:56.040 --> 00:16:57.159
+It's gone to the trash.
+
+00:16:57.160 --> 00:16:59.733
+The entire subtree was deleted
+
+00:16:59.734 --> 00:17:01.880
+and we have a clean flow here.
+
+00:17:01.881 --> 00:17:04.479
+I have archived, it is still in the archive, but
+
+00:17:04.480 --> 00:17:07.439
+it's still active according to my Gmail folder.
+
+NOTE Real workflow: GTD
+
+00:17:07.440 --> 00:17:09.574
+Next I'm going to show you is
+
+00:17:09.575 --> 00:17:12.039
+real workflow capture.
+
+00:17:12.040 --> 00:17:15.799
+You can use label in email with ToProcess
+
+00:17:15.800 --> 00:17:19.359
+downloaded to the inbox.org, and do one of these
+
+00:17:19.360 --> 00:17:20.599
+you've already seen.
+
+00:17:20.600 --> 00:17:22.519
+Later still doesn't work.
+
+00:17:22.520 --> 00:17:25.639
+I will get it to work, but hopefully by the time
+
+00:17:25.640 --> 00:17:28.759
+the conference is up, you will have the feature up
+
+00:17:28.760 --> 00:17:29.399
+and ready.
+
+00:17:29.400 --> 00:17:32.679
+Rest of the stuff works, delegate works, trash
+
+00:17:32.680 --> 00:17:34.039
+works, and add action works.
+
+00:17:34.040 --> 00:17:37.479
+We are in weekly review can have an email context,
+
+00:17:37.480 --> 00:17:40.559
+not just links to an external URL.
+
+NOTE Real Workflow: P.A.R.A.
+
+00:17:40.560 --> 00:17:46.519
+In the P.A.R.A Our Project, Areas, Resources and
+
+00:17:46.520 --> 00:17:50.039
+Archives structure, you can have Gmail labels
+
+00:17:50.040 --> 00:17:51.199
+mirror your PARA structure.
+
+00:17:51.200 --> 00:17:53.879
+You can have that within your org mode structure,
+
+00:17:53.880 --> 00:17:56.239
+and you can mimic that very well.
+
+00:17:56.240 --> 00:17:59.419
+All the emails embedded in your own structure and
+
+00:17:59.420 --> 00:18:02.067
+you can download it by label
+
+00:18:02.068 --> 00:18:03.520
+in the place you want.
+
+00:18:03.521 --> 00:18:05.439
+I'm still working on that feature where you can
+
+00:18:05.440 --> 00:18:08.559
+have it inside the project structure itself rather
+
+00:18:08.560 --> 00:18:09.839
+than an index.org.
+
+00:18:09.840 --> 00:18:11.719
+It'll take some time, but I will do it.
+
+00:18:11.720 --> 00:18:14.839
+But right now you can refile it once it's in the
+
+00:18:14.840 --> 00:18:17.459
+index.org or any other file you choose, and then
+
+00:18:17.460 --> 00:18:21.039
+you can bulk move labels to archive and move that
+
+00:18:21.040 --> 00:18:23.319
+entire project repository to
+
+00:18:23.320 --> 00:18:26.319
+your archive also. That works very well.
+
+00:18:26.320 --> 00:18:29.919
+And your org files and Gmail stay in sync
+
+00:18:29.920 --> 00:18:33.039
+effortlessly, and the whole email part of it
+
+00:18:33.040 --> 00:18:35.239
+becomes part of your knowledge management system.
+
+00:18:35.240 --> 00:18:35.959
+Okay.
+
+NOTE What this is NOT
+
+00:18:35.960 --> 00:18:37.639
+We have reached the end of the demo.
+
+00:18:37.640 --> 00:18:39.667
+Hopefully you understood
+
+00:18:39.668 --> 00:18:41.799
+what org-gmail was all about.
+
+00:18:41.800 --> 00:18:44.639
+If you have any questions, let me know, but some
+
+00:18:44.640 --> 00:18:47.519
+bits of warning, I wanted to give you what this
+
+00:18:47.520 --> 00:18:50.239
+package is not, it's not a full fledged email
+
+00:18:50.240 --> 00:18:50.959
+client.
+
+00:18:50.960 --> 00:18:55.319
+It's meant for label management and importing some
+
+00:18:55.320 --> 00:18:58.739
+emails that you wanted or you're interested in to
+
+00:18:58.740 --> 00:19:02.079
+the context of your projects or areas or your GTD
+
+00:19:02.080 --> 00:19:02.679
+context.
+
+00:19:02.680 --> 00:19:07.159
+It is not a replacement for gnus, mu4e or notmuch.
+
+00:19:07.160 --> 00:19:10.479
+It is not a way to read all your emails in emacs.
+
+00:19:10.480 --> 00:19:13.439
+It cannot handle a large server load for sure.
+
+00:19:13.440 --> 00:19:15.679
+It is not offline capable.
+
+00:19:15.680 --> 00:19:17.359
+It needs API access.
+
+00:19:17.360 --> 00:19:19.479
+So bear that in mind.
+
+00:19:19.480 --> 00:19:22.159
+What it is, is a bridge between
+
+00:19:22.160 --> 00:19:23.879
+gmail and org mode.
+
+00:19:23.880 --> 00:19:27.359
+It's a way to manage important email threads.
+
+00:19:27.360 --> 00:19:29.559
+So you can keep updating threads.
+
+00:19:29.560 --> 00:19:32.039
+Whenever there's a reply, you keep downloading it
+
+00:19:32.040 --> 00:19:32.919
+to that thread.
+
+00:19:32.920 --> 00:19:35.279
+If you want to keep track of what's going on, what
+
+00:19:35.280 --> 00:19:37.079
+is the logical way you can all see it.
+
+00:19:37.080 --> 00:19:40.599
+You can even use ellama or one of those to make
+
+00:19:40.600 --> 00:19:41.999
+sense of the conversation.
+
+00:19:42.000 --> 00:19:45.279
+If it's a long longish thread, it's a power tool
+
+00:19:45.280 --> 00:19:49.079
+for the getting things done or Tiago Forte's PARA
+
+00:19:49.080 --> 00:19:49.839
+method.
+
+00:19:49.840 --> 00:19:52.119
+I've used PARA for a long time now.
+
+00:19:52.120 --> 00:19:54.839
+I'm a power user of PARA, so to speak, so I find
+
+00:19:54.840 --> 00:19:56.319
+this extremely useful myself.
+
+00:19:56.320 --> 00:19:59.067
+It's about 800 lines of Python
+
+00:19:59.068 --> 00:20:02.479
+and about 300 to 500 lines of elisp.
+
+00:20:02.480 --> 00:20:06.999
+It's usable in 10 minutes, but can remain powerful
+
+00:20:07.000 --> 00:20:07.679
+for years.
+
+NOTE Technical decisions
+
+00:20:07.680 --> 00:20:10.599
+So some technical decisions that I took.
+
+00:20:10.600 --> 00:20:13.419
+Why Python plus Gmail, API.
+
+00:20:13.420 --> 00:20:17.959
+Gmail API is better at handling than an imap with
+
+00:20:17.960 --> 00:20:19.359
+all the other metadata.
+
+00:20:19.360 --> 00:20:20.199
+I found it easier.
+
+00:20:20.200 --> 00:20:22.679
+Python has excellent Google API libraries.
+
+00:20:22.680 --> 00:20:25.479
+Email calls Python via the call-process.
+
+00:20:25.480 --> 00:20:27.559
+json is the interchange format.
+
+00:20:27.560 --> 00:20:29.879
+Why not pure elisp?
+
+00:20:29.880 --> 00:20:33.799
+For one, OAuth 2.0 flow is a bit complex.
+
+00:20:33.800 --> 00:20:35.719
+I found it a bit complex to meander on.
+
+00:20:35.720 --> 00:20:38.139
+That's probably why it took me three years, 364
+
+00:20:38.140 --> 00:20:40.319
+days to get over it.
+
+00:20:40.320 --> 00:20:43.839
+Gmail API Client libraries are mature, easier to
+
+00:20:43.840 --> 00:20:48.459
+test/debug separately and lets emacs do what it
+
+00:20:48.460 --> 00:20:50.159
+does best, which is text editing.
+
+00:20:50.160 --> 00:20:54.759
+Pragmatism over purity, the emacs way since 1976.
+
+NOTE Roadmap
+
+00:20:54.760 --> 00:20:57.159
+Okay, some roadmap here.
+
+00:20:57.160 --> 00:21:00.239
+But near term I want better error messages.
+
+00:21:00.240 --> 00:21:02.759
+It still gives me python error messages.
+
+00:21:02.760 --> 00:21:05.039
+There are some asynchronous operations there's no
+
+00:21:05.040 --> 00:21:06.319
+blocking going on.
+
+00:21:06.320 --> 00:21:08.879
+It needs a search integration soon.
+
+00:21:08.880 --> 00:21:11.119
+Attachment I have not yet touched.
+
+00:21:11.120 --> 00:21:13.879
+That's a big big if, I don't know how to integrate
+
+00:21:13.880 --> 00:21:15.879
+with org-attach, I'm still wondering how to do
+
+00:21:15.880 --> 00:21:16.439
+that.
+
+00:21:16.440 --> 00:21:19.519
+Perhaps I should be able to interact with Outlook
+
+00:21:19.520 --> 00:21:21.919
+also, fast mail, proton mail.
+
+00:21:21.920 --> 00:21:24.759
+I don't know AI summaries of thread.
+
+00:21:24.760 --> 00:21:27.759
+I'm thinking ellama could do it, but I'm not very
+
+00:21:27.760 --> 00:21:28.319
+sure.
+
+00:21:28.320 --> 00:21:32.079
+Calendar integration is a nice idea, but org-gcal
+
+00:21:32.080 --> 00:21:33.319
+and org gmail...
+
+00:21:33.320 --> 00:21:34.279
+How will they interact?
+
+00:21:34.280 --> 00:21:35.839
+How will that work?
+
+00:21:35.840 --> 00:21:37.759
+I'm still not sure. I use them separately.
+
+00:21:37.760 --> 00:21:40.599
+And any other feature requests that you may have,
+
+00:21:40.600 --> 00:21:41.439
+just let me know.
+
+NOTE Contributing
+
+00:21:41.440 --> 00:21:44.919
+What I may need help with if you have the time and
+
+00:21:44.920 --> 00:21:47.439
+you're interested in this project, is to test it
+
+00:21:47.440 --> 00:21:49.079
+on macOS and Windows.
+
+00:21:49.080 --> 00:21:50.159
+I use Linux.
+
+00:21:50.160 --> 00:21:51.759
+I use it on Debian.
+
+00:21:51.760 --> 00:21:52.719
+It works fine.
+
+00:21:52.720 --> 00:21:54.359
+OAuth edge cases.
+
+00:21:54.360 --> 00:21:55.719
+I'm not sure how it works.
+
+00:21:55.720 --> 00:21:57.519
+It shows me some error or the other
+
+00:21:57.520 --> 00:21:58.119
+here and there.
+
+00:21:58.120 --> 00:22:00.919
+Definitely documentation needs improvements.
+
+00:22:00.920 --> 00:22:04.239
+Other email provider expertise will be welcome.
+
+00:22:04.240 --> 00:22:07.359
+What's ready is, GitHub repo with issues.
+
+00:22:07.360 --> 00:22:10.239
+You can start with that could be great if you can
+
+00:22:10.240 --> 00:22:11.879
+tell me some issues with that.
+
+00:22:11.880 --> 00:22:13.879
+Some kind of development guide.
+
+00:22:13.880 --> 00:22:15.479
+I am not a programmer.
+
+00:22:15.480 --> 00:22:18.079
+I vibe-coded most of it.
+
+00:22:18.080 --> 00:22:20.919
+So a development guide, a true blood developer,
+
+00:22:20.920 --> 00:22:22.479
+if they can come and tell me,
+
+00:22:22.480 --> 00:22:23.999
+here is what you should be doing,
+
+00:22:24.000 --> 00:22:26.239
+I'm more than happy to listen to that.
+
+00:22:26.240 --> 00:22:27.959
+And probably a test suite.
+
+00:22:27.960 --> 00:22:28.959
+I do that manually.
+
+00:22:28.960 --> 00:22:31.239
+All of this, some kind of help with that
+
+00:22:31.240 --> 00:22:32.939
+will also work.
+
+NOTE The big picture
+
+00:22:32.940 --> 00:22:36.559
+The big picture is org-mode and Gmail
+
+00:22:36.560 --> 00:22:37.679
+can be friends.
+
+00:22:37.680 --> 00:22:41.119
+They can bond over a cup of coffee.
+
+NOTE Let's connect
+
+00:22:41.120 --> 00:22:41.959
+Let's connect.
+
+00:22:41.960 --> 00:22:47.659
+Here are my details and I am all game to listen to
+
+00:22:47.660 --> 00:22:48.679
+your question and answers.
+
+00:22:48.680 --> 00:22:51.279
+I'm happy to give you any answer or responses that
+
+00:22:51.280 --> 00:22:51.999
+I find.
+
+00:22:52.000 --> 00:22:54.439
+Please do connect with me on LinkedIn. I have my
+
+00:22:54.440 --> 00:22:58.359
+website here, and please do fork or install
+
+00:22:58.360 --> 00:23:00.519
+org-gmail and let me know what you think.
+
+00:23:00.520 --> 00:23:02.759
+Let's talk about taming email.
+
+00:23:02.760 --> 00:23:04.400
+Thank you very much.
diff --git a/2025/info/gmail-after.md b/2025/info/gmail-after.md
index 3f94dc1d..d0b0ca1a 100644
--- a/2025/info/gmail-after.md
+++ b/2025/info/gmail-after.md
@@ -1,7 +1,606 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [bala@balaramadurai.net](mailto:bala@balaramadurai.net?subject=Comment%20for%20EmacsConf%202023%20gmail%3A%20org-gmail%3A%20A%20deep%20integration%20of%20Gmail%20into%20your%20Org%20Mode)
+<div class="transcript transcript-mainVideo"><a name="gmail-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Before we begin""" start="00:00:00.000" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Hello everyone.""" start="00:00:00.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""My name is Bala Ramadurai.""" start="00:00:01.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Today I'm going to be talking about org-gmail.""" start="00:00:03.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's something that I put together.""" start="00:00:07.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""This is what I call gmail meets org mode.""" start="00:00:10.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And they get along too.""" start="00:00:12.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's talk about email""" start="00:00:15.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and how to manage email via org mode.""" start="00:00:16.520" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The 4-year overnight success""" start="00:00:19.840" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""This project is a four year overnight success.""" start="00:00:19.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It was in 2021.""" start="00:00:23.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I said, Hey, wait a second.""" start="00:00:26.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It'll be so cool if we can integrate Gmail with org.""" start="00:00:27.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So I started trying out new things.""" start="00:00:30.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And immediately I realized""" start="00:00:32.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""this is a much larger project than I thought.""" start="00:00:34.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So it lived in someday maybe.org""" start="00:00:36.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""for about three years.""" start="00:00:40.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Enter 2024 AI arrives and in 2025 I had a working""" start="00:00:42.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""prototype in 24 hours flat.""" start="00:00:48.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So three years and 364 days, nothing much happened""" start="00:00:50.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and one day it actually got it working.""" start="00:00:55.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Sometimes procrastination is just waiting for the""" start="00:00:58.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""right tools.""" start="00:01:00.920" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The real title""" start="00:01:02.800" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""The real title should have been org mail for""" start="00:01:02.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""people who like org mode more than email.""" start="00:01:05.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""The Gmail monster that has always been attacking us.""" start="00:01:08.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay, but we still have to deal with email.""" start="00:01:12.800" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why not gnus/mu4e/notmuch?""" start="00:01:15.600" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""One of the most common questions that I've got so far.""" start="00:01:15.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Why not gnus or mu4e or notmuch, or other tools.""" start="00:01:18.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""They are amazing.""" start="00:01:24.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Use them if it works for you, absolutely.""" start="00:01:26.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Just go right ahead.""" start="00:01:29.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""If it works for you, don't change anything""" start="00:01:30.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""because this looks cool.""" start="00:01:32.240" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The honest answer""" start="00:01:34.280" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Well, the honest answer for me is that""" start="00:01:34.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""they want to be your email client.""" start="00:01:36.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's not what I am after.""" start="00:01:39.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I don't want an email client.""" start="00:01:40.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I have enough email clients already.""" start="00:01:42.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I don't want one more.""" start="00:01:45.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And they require 500 lines of config.""" start="00:01:46.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I've tried it.""" start="00:01:49.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's a lot of maintenance for myself,""" start="00:01:50.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I still have those somewhere.""" start="00:01:53.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""The mu4e config or the gnus config.""" start="00:01:54.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""They struggle with Gmail's labels,""" start="00:01:57.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""threading, messages and deletion.""" start="00:01:59.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I find it tough, and it's either""" start="00:02:01.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""all in emacs or nothing.""" start="00:02:05.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It cannot be a combinatorial approach,""" start="00:02:07.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""is what I realized.""" start="00:02:10.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So I said, why can't we have both?""" start="00:02:11.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I want the org mode's focus""" start="00:02:13.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and Gmail's flexibility.""" start="00:02:15.960" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The org-gmail philosophy""" start="00:02:17.920" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Org-gmail philosophy is very simple.""" start="00:02:17.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You triage in Gmail.""" start="00:02:20.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Use the fast web UI for the easy stuff""" start="00:02:22.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and process in org mode.""" start="00:02:26.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Pull important threads where you do real work.""" start="00:02:27.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And of course, a two way sync is possible.""" start="00:02:30.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Changes flow both directions.""" start="00:02:33.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Big inspiration has been org-gcal.""" start="00:02:36.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I named it org-gmail because I saw org-gcal.""" start="00:02:39.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It was so cool.""" start="00:02:42.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I really wanted it.""" start="00:02:43.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Think of it like an org capture for email, but""" start="00:02:44.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""just bidirectional.""" start="00:02:47.720" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Architecture (the boring but important slide)""" start="00:02:49.440" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Alright, the architecture (boring, but important""" start="00:02:49.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""slide) is that Gmail interacts with Python via an""" start="00:02:53.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""API and interacts with Emacs Lisp.""" start="00:02:56.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""User commands, org formatting, all that magic is""" start="00:02:59.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""done on the Emacs side with Lisp.""" start="00:03:02.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Python side handles the Gmail API, OAuth,""" start="00:03:04.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""json wrangling and Gmail API handles""" start="00:03:09.141" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""the actual email data.""" start="00:03:12.408" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can do pip install, add to the load path, and""" start="00:03:13.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""10 minute OAuth setup, you are all set.""" start="00:03:17.680" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demo 1: From gmail to org""" start="00:03:21.200" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""We'll switch over to demo from gmail to org.""" start="00:03:21.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""How do you go about doing that?""" start="00:03:27.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I will start off with a demo folder that I have.""" start="00:03:29.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It has this tree structure.""" start="00:03:32.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Ignore the tilde files.""" start="00:03:35.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So this is what it contains.""" start="00:03:36.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""An org folder with all the working directory, the""" start="00:03:37.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""actual where the life of org mode is.""" start="00:03:41.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And I have a credentials.json, this is for logging""" start="00:03:44.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""into Gmail.""" start="00:03:48.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""This is a file that you can download.""" start="00:03:49.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""The instructions are in my README in the""" start="00:03:50.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""repository.""" start="00:03:53.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can find out how to get yourself a""" start="00:03:54.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""credentials.json.""" start="00:03:56.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's not very difficult.""" start="00:03:57.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Once you have these, you're all set.""" start="00:03:59.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""All you need to do is if you have straight or any""" start="00:04:01.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""of the other VC packages ready, that you can take""" start="00:04:05.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""a Git repository and have that in your folder, you""" start="00:04:08.540" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""can do that, or you can do it like this.""" start="00:04:11.501" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Have a Git clone.""" start="00:04:13.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Like I'm doing it right now.""" start="00:04:15.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Just clone it, keep it in.""" start="00:04:16.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And now you'll see""" start="00:04:19.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""that the Gmail is already there.""" start="00:04:20.875" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""There are two files that are really ultra""" start="00:04:23.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""important, which is, gmail_label_manager.py and""" start="00:04:25.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""org-gmail.el.""" start="00:04:28.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""These are the two files that do the email""" start="00:04:30.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""processing.""" start="00:04:31.900" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I have a plain vanilla Emacs""" start="00:04:33.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""that I'm going to use for the demo.""" start="00:04:35.200" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Settings""" start="00:04:37.480" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""These are a few settings""" start="00:04:37.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""that you will need in order to get going.""" start="00:04:39.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So one is the Gmail itself, the elisp, and the""" start="00:04:42.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Python script.""" start="00:04:45.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You'll need to require the package.""" start="00:04:47.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""The org agenda files need to be set.""" start="00:04:49.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""If they're already there, then yes, it needs to""" start="00:04:52.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""include the org files.""" start="00:04:54.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Main settings are, you need an org file in order""" start="00:04:55.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""to download all the emails from Gmail.""" start="00:04:59.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You need the credentials path.""" start="00:05:02.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You need the Python script,""" start="00:05:03.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""wherever it is pointed to that.""" start="00:05:05.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""The date drawer, you can customize it""" start="00:05:07.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""to whatever you want.""" start="00:05:10.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I call it org-gmail.""" start="00:05:11.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can set it to ignore certain labels,""" start="00:05:12.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""not to download it.""" start="00:05:14.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You're not interested in certain labels""" start="00:05:15.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""being downloaded.""" start="00:05:17.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can set that""" start="00:05:18.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and process time out of 300 seconds.""" start="00:05:19.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""These are some things to keep life sane in this""" start="00:05:21.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""plain vanilla emacs.""" start="00:05:25.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So I have this refile targets and stuff.""" start="00:05:27.820" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's the main org-gmail settings are all here.""" start="00:05:30.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I'm going to eval this buffer so that we have all""" start="00:05:33.580" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""of it and we are all set.""" start="00:05:37.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So we have org-gmail ready to work right now.""" start="00:05:40.040" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Downloading""" start="00:05:43.040" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""The first thing I'm going to show you is""" start="00:05:43.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""org-gmail-download-by-label.""" start="00:05:44.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""This is the demo Gmail that I have.""" start="00:05:48.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""They all have some kind of test emails and I'm""" start="00:05:50.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""going to label them.""" start="00:05:53.620" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I've created this hierarchy of labels here based""" start="00:05:56.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""on Tiago Forte's PARA - Project, Area, Resources,""" start="00:06:00.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Archives structure.""" start="00:06:04.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""1Projects, DemoProject1, 2Areas, DemoArea,""" start="00:06:06.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""4Archives, 2025, OldProject.""" start="00:06:09.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I've labeled them inside my Gmail.""" start="00:06:12.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay, now let's go to Emacs and we will now""" start="00:06:14.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""download these things, but before downloading""" start="00:06:20.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""them, you will need to authenticate.""" start="00:06:23.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So for that, you can start""" start="00:06:26.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""with any org-gmail command.""" start="00:06:28.801" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So I'm going to take org-gmail-download-by-label.""" start="00:06:30.901" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""When I press that, it immediately opens a session""" start="00:06:35.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""in my browser.""" start="00:06:38.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay?""" start="00:06:40.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""What you can't see is a list of my Gmail accounts""" start="00:06:40.660" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""that I'm going to select.""" start="00:06:45.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I'm going to select my one Gmail account, and I'm""" start="00:06:46.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""going to show you the next screen.""" start="00:06:50.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So in this screen, you'll have to continue and""" start="00:06:53.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""select, and the authentication is completed.""" start="00:06:57.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So once it's, this is done, you can close this.""" start="00:06:59.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Come back to Emacs and you will have Select Gmail.""" start="00:07:02.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So it has tab support.""" start="00:07:09.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""If you click tab, it will tell you""" start="00:07:10.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""what all labels are available.""" start="00:07:11.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I can pick anyone.""" start="00:07:13.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""1Projects/DemoProject1, and let's see what happens.""" start="00:07:16.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It starts downloading and it downloads.""" start="00:07:21.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And all three messages, four messages,""" start="00:07:26.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""five messages.""" start="00:07:28.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Six, seven.""" start="00:07:29.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""There are 11 messages in total,""" start="00:07:30.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and it's downloading all of them.""" start="00:07:33.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""~/demo/org/0Inbox.""" start="00:07:36.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's where I have it.""" start="00:07:40.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And here are the emails.""" start="00:07:42.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""They're all in org mode, format.""" start="00:07:44.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""All the emails are in here.""" start="00:07:46.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Since it's org mode,""" start="00:07:48.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""it can fold them all and you will see those emails.""" start="00:07:49.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So these are five emails""" start="00:07:52.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""that are present for the DemoProject1.""" start="00:07:54.280" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Replying""" start="00:07:56.880" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""The next one I wanted to show you was""" start="00:07:56.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""reply without leaving emacs.""" start="00:07:59.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's go back to emacs.""" start="00:08:01.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""How am I going to reply?""" start="00:08:04.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""org-gmail-reply-at-point.""" start="00:08:06.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's how I'm going to reply.""" start="00:08:09.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Reply all or reply.""" start="00:08:11.380" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay.""" start="00:08:13.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's first find out what is the email all about.""" start="00:08:13.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay.""" start="00:08:16.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""There's just one sender with just one recipient.""" start="00:08:16.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So the reply all or reply""" start="00:08:19.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""doesn't make a difference.""" start="00:08:21.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay?""" start="00:08:23.021" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So we will reply at point and if it's Reply All,""" start="00:08:23.701" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""it includes my own email as well.""" start="00:08:28.340" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""In this, my email is .mx.""" start="00:08:31.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay.""" start="00:08:34.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Cc, I can cc anybody I want and I won't do that.""" start="00:08:35.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I have a Gmail reply window.""" start="00:08:39.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Split window here.""" start="00:08:42.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""C-c C-c is what will send the reply.""" start="00:08:43.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""C-c C-k is what will cancel the reply.""" start="00:08:47.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I want to reply.""" start="00:08:50.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So let's say test reply from within emacs""" start="00:08:51.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and bala@balaramadurai.net""" start="00:08:57.780" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""should receive this email.""" start="00:09:00.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay.""" start="00:09:01.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Initial successfully reply sent for this email id.""" start="00:09:03.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay.""" start="00:09:07.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""A feature request I can already imagine is""" start="00:09:08.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""the reply also appearing at the bottom of this.""" start="00:09:11.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's not yet there.""" start="00:09:15.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""In the next version I will have that.""" start="00:09:16.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's check if I've have sent that email.""" start="00:09:18.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's check in the sent box.""" start="00:09:22.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I just checked in the sent and yes,""" start="00:09:25.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""a test reply from within emacs, does show up.""" start="00:09:29.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay, great.""" start="00:09:31.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That works.""" start="00:09:33.040" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Label management""" start="00:09:33.680" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""The third demo is going to be on label management.""" start="00:09:33.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""How do I manage labels?""" start="00:09:36.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's see.""" start="00:09:38.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's go back to emacs.""" start="00:09:39.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Suppose, I am not keen on this DemoProject1 for this.""" start="00:09:40.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It should belong to DemoArea, okay?""" start="00:09:46.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""For this thread itself doesn't belong to this.""" start="00:09:50.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's do org-gmail-edit-label-at-point.""" start="00:09:52.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Well, I don't want one project at all.""" start="00:09:57.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It should be under 2Areas/DemoArea.""" start="00:10:00.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I don't think it, it's not tab supported.""" start="00:10:05.900" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You should know this.""" start="00:10:08.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I will.""" start="00:10:09.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's another feature request.""" start="00:10:10.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""2Areas/DemoArea.""" start="00:10:11.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And when I say this, it should update it.""" start="00:10:14.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Yes, it has updated it.""" start="00:10:17.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So you can see that it has updated""" start="00:10:19.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""the label here as well.""" start="00:10:21.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""We can go check if it has indeed changed it""" start="00:10:22.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""in our... what is the name of the email?""" start="00:10:26.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's a test mail for one project demo""" start="00:10:29.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and the date is at 3 12.""" start="00:10:31.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's check if DemoArea has it.""" start="00:10:33.460" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's not refreshed, but there are two,""" start="00:10:36.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""two emails now under DemoArea.""" start="00:10:39.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's obviously done the job well.""" start="00:10:42.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's happening as expected.""" start="00:10:43.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I just turned this back from DemoArea to""" start="00:10:46.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""DemoProject1.""" start="00:10:49.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""If you decide that I want to move all of""" start="00:10:50.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""DemoProject1 to archive, I'm done with the""" start="00:10:53.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""project.""" start="00:10:56.560" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Refiling""" start="00:10:57.160" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Oh, by the way, you could...""" start="00:10:57.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""that's the whole point""" start="00:10:58.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""of this is to have""" start="00:10:59.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""all of this refiled into your project,""" start="00:11:00.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""you can do that.""" start="00:11:05.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I don't know if I have that.""" start="00:11:06.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Yes, I have demo project one""" start="00:11:08.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and I could have emails and I created a node""" start="00:11:11.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and I moved everything there to that folder""" start="00:11:17.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""so that when I want to look at the demo project.""" start="00:11:20.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let me look at this.""" start="00:11:24.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""In that context, in the project context and email,""" start="00:11:25.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I have notes, let's say, and one of the emails is""" start="00:11:29.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""a note.""" start="00:11:33.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And I want to be able to keep it that way.""" start="00:11:34.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I could refile it and put it under notes as well,""" start="00:11:38.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""saying that this has some password, it has some""" start="00:11:41.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""reference that I need to have it there.""" start="00:11:44.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I can have it under notes as well.""" start="00:11:46.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So that's the advantage.""" start="00:11:48.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Once it's inside the org mode system, you can do""" start="00:11:49.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""many things that are usually org-modesy.""" start="00:11:52.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So you can do all of that within your org mode""" start="00:11:55.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""with emails, manipulate them, see it under a""" start="00:11:57.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""context, reply to that.""" start="00:12:00.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""All of that can happen""" start="00:12:01.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""right within your project context.""" start="00:12:02.575" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Archiving""" start="00:12:04.120" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""You're done with this project.""" start="00:12:04.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You want to move to archive.""" start="00:12:05.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So what you need to do is you don't have to be""" start="00:12:07.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""here, you can do it this from anywhere.""" start="00:12:09.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Bulk movement of labels, you can do it.""" start="00:12:11.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""If you had consult, embark, ivy, or helm, this will""" start="00:12:15.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""show up as a dropdown and it looks neater.""" start="00:12:19.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""This, I'm using a vanilla emacs, so this is what""" start="00:12:22.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""you would see, but it has tab support.""" start="00:12:24.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can use that.""" start="00:12:26.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So I want to transfer 1Projects/DemoArea1, I want""" start="00:12:27.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""to move it to archive.""" start="00:12:32.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So let's say 4Archives is the folder.""" start="00:12:33.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So 4Archives/2025 already set this up.""" start="00:12:36.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I have not created this label in Gmail.""" start="00:12:41.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So do I need to go back to Gmail and create that?""" start="00:12:46.740" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""No, not at all.""" start="00:12:48.681" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can do this from the comfort of your org mode.""" start="00:12:49.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Go in here and enter this.""" start="00:12:52.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's see what happens.""" start="00:12:54.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So it found that it is not there.""" start="00:12:55.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So it created a new label and it's now moving all""" start="00:12:57.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""of the emails, all of those threads into archives""" start="00:13:01.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""without deleting 1Projects/DemoProject1.""" start="00:13:04.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So it still has 1Projects/DemoProject1 and it also""" start="00:13:07.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""updated the labels here.""" start="00:13:09.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So the project has been moved.""" start="00:13:10.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""If you want to move it to archive this entire...""" start="00:13:12.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can do that too.""" start="00:13:15.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's see if it has archives.""" start="00:13:16.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Yes, it has archives and I have it...""" start="00:13:19.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""have a heading called 2025.""" start="00:13:21.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""My demo project can be moved there""" start="00:13:24.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and I'm done here.""" start="00:13:26.275" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""My project was done.""" start="00:13:27.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""All the emails are moved to archive.""" start="00:13:28.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So is this project from my project folder.""" start="00:13:30.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can integrate it into your workflow, your org""" start="00:13:32.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""mode workflow.""" start="00:13:34.920" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Action commands""" start="00:13:37.140" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Next, we have action commands.""" start="00:13:37.140" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""What all can you do with singular emails?""" start="00:13:39.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can do four things with single emails.""" start="00:13:41.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Delegate, defer, act on it or trash at point.""" start="00:13:45.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Defer.""" start="00:13:49.660" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Doesn't seem to work yet.""" start="00:13:50.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That is a snooze part.""" start="00:13:52.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Doesn't seem to work yet.""" start="00:13:53.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's another bug.""" start="00:13:54.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's the second bug I have in my package.""" start="00:13:55.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""But the rest of them work.""" start="00:13:58.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Delegate is to move it to somebody so they can do""" start="00:13:59.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""the job.""" start="00:14:02.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Act is you will do it with a context with a to-do""" start="00:14:03.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""which will show up in your agenda.""" start="00:14:06.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Trash the email from your Gmail, and you are done.""" start="00:14:08.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay, let's do that.""" start="00:14:10.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's go back to emacs.""" start="00:14:12.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I just moved everything back to DemoProject1.""" start="00:14:13.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I moved everything back so that I can demonstrate""" start="00:14:18.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""the four actions that I'm showing.""" start="00:14:20.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""At least three actions.""" start="00:14:22.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""One of them doesn't work yet.""" start="00:14:23.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So if I want to delegate it to somebody in this""" start="00:14:25.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""case myself, but I can delegate it""" start="00:14:30.180" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""to anybody I want.""" start="00:14:31.608" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So how do I do that so I can delegate this, or""" start="00:14:32.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""delegate is org-gmail-delegate-at-point.""" start="00:14:36.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Move the cursor to the email, delegate it to this""" start="00:14:38.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""guy balaramadurai.net.""" start="00:14:42.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can add a note saying,""" start="00:14:44.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Hey, act on task quickly.""" start="00:14:46.608" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Boss is watching.""" start="00:14:50.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay?""" start="00:14:53.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So you can say yes, and this thread gets forwarded""" start="00:14:54.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""to your colleague""" start="00:14:59.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and so that they can take this up.""" start="00:15:01.441" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It has indeed arrived here.""" start="00:15:03.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can see.""" start="00:15:05.820" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Boss is watching.""" start="00:15:07.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""The test reply was also arrived here.""" start="00:15:08.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can also see that email.""" start="00:15:11.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So that was delegate.""" start="00:15:13.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So how do we set up actions?""" start="00:15:15.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So let's not mess this email.""" start="00:15:18.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""This is the second email.""" start="00:15:21.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""How do you act""" start="00:15:22.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""on it?""" start="00:15:23.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's an action you set for yourself is add""" start="00:15:24.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""action at point, and you do that.""" start="00:15:27.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""What action can you set for yourself?""" start="00:15:31.001" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Write a long report using an LLM.""" start="00:15:32.941" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay, so it's changed the status to a to-do task.""" start="00:15:38.620" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And the to-do is right here.""" start="00:15:42.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Now, here you can schedule it""" start="00:15:44.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""to say tomorrow 9:00 AM.""" start="00:15:47.834" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So there you go.""" start="00:15:50.701" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""At 9:00 AM I'll be looking at this.""" start="00:15:51.801" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Org Agenda""" start="00:15:53.680" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Now here's the cool part.""" start="00:15:53.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can actually find the whole thing""" start="00:15:55.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""in org agenda.""" start="00:15:58.934" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So my entire email threads""" start="00:16:00.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""are all in the org agenda.""" start="00:16:03.268" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""They're all present here and my task associated is""" start="00:16:05.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""also here in the agenda.""" start="00:16:09.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""This is marked TODO,""" start="00:16:11.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""means I haven't acted on that email.""" start="00:16:12.768" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's still pending.""" start="00:16:14.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And what do I have to do is right here within""" start="00:16:16.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""here, which is the action that I have to carry on""" start="00:16:19.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""in the DemoProject1.""" start="00:16:21.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can see that demo project one""" start="00:16:22.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""is showing up in the bottom.""" start="00:16:24.534" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay. It's cool way you can also see it in the agenda.""" start="00:16:25.740" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Trash""" start="00:16:28.280" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""I am not interested in this email at all.""" start="00:16:28.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's say I, I want to delete it.""" start="00:16:31.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's see.""" start="00:16:33.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Yes, I finished the task.""" start="00:16:33.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Now the task is finished.""" start="00:16:35.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I really don't want to see this email, this""" start="00:16:37.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""message alone.""" start="00:16:40.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Alright.""" start="00:16:40.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Easy peasy.""" start="00:16:42.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's do Gmail Trash at point.""" start="00:16:42.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And you say, message,""" start="00:16:46.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I don't want to delete the entire thread.""" start="00:16:48.021" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Yes.""" start="00:16:49.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Delete it.""" start="00:16:50.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Delete the message alone.""" start="00:16:51.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And it's gone.""" start="00:16:53.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""But it's not gone.""" start="00:16:54.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's gone to the trash.""" start="00:16:56.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""The entire subtree was deleted""" start="00:16:57.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and we have a clean flow here.""" start="00:16:59.734" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I have archived, it is still in the archive, but""" start="00:17:01.881" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""it's still active according to my Gmail folder.""" start="00:17:04.480" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Real workflow: GTD""" start="00:17:07.440" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Next I'm going to show you is""" start="00:17:07.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""real workflow capture.""" start="00:17:09.575" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can use label in email with ToProcess""" start="00:17:12.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""downloaded to the inbox.org, and do one of these""" start="00:17:15.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""you've already seen.""" start="00:17:19.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Later still doesn't work.""" start="00:17:20.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I will get it to work, but hopefully by the time""" start="00:17:22.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""the conference is up, you will have the feature up""" start="00:17:25.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and ready.""" start="00:17:28.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Rest of the stuff works, delegate works, trash""" start="00:17:29.400" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""works, and add action works.""" start="00:17:32.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""We are in weekly review can have an email context,""" start="00:17:34.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""not just links to an external URL.""" start="00:17:37.480" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Real Workflow: P.A.R.A.""" start="00:17:40.560" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""In the P.A.R.A Our Project, Areas, Resources and""" start="00:17:40.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Archives structure, you can have Gmail labels""" start="00:17:46.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""mirror your PARA structure.""" start="00:17:50.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can have that within your org mode structure,""" start="00:17:51.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and you can mimic that very well.""" start="00:17:53.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""All the emails embedded in your own structure and""" start="00:17:56.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""you can download it by label""" start="00:17:59.420" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""in the place you want.""" start="00:18:02.068" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I'm still working on that feature where you can""" start="00:18:03.521" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""have it inside the project structure itself rather""" start="00:18:05.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""than an index.org.""" start="00:18:08.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It'll take some time, but I will do it.""" start="00:18:09.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""But right now you can refile it once it's in the""" start="00:18:11.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""index.org or any other file you choose, and then""" start="00:18:14.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""you can bulk move labels to archive and move that""" start="00:18:17.460" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""entire project repository to""" start="00:18:21.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""your archive also. That works very well.""" start="00:18:23.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And your org files and Gmail stay in sync""" start="00:18:26.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""effortlessly, and the whole email part of it""" start="00:18:29.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""becomes part of your knowledge management system.""" start="00:18:33.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Okay.""" start="00:18:35.240" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What this is NOT""" start="00:18:35.960" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""We have reached the end of the demo.""" start="00:18:35.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Hopefully you understood""" start="00:18:37.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""what org-gmail was all about.""" start="00:18:39.668" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""If you have any questions, let me know, but some""" start="00:18:41.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""bits of warning, I wanted to give you what this""" start="00:18:44.640" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""package is not, it's not a full fledged email""" start="00:18:47.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""client.""" start="00:18:50.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's meant for label management and importing some""" start="00:18:50.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""emails that you wanted or you're interested in to""" start="00:18:55.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""the context of your projects or areas or your GTD""" start="00:18:58.740" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""context.""" start="00:19:02.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It is not a replacement for gnus, mu4e or notmuch.""" start="00:19:02.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It is not a way to read all your emails in emacs.""" start="00:19:07.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It cannot handle a large server load for sure.""" start="00:19:10.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It is not offline capable.""" start="00:19:13.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It needs API access.""" start="00:19:15.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So bear that in mind.""" start="00:19:17.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""What it is, is a bridge between""" start="00:19:19.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""gmail and org mode.""" start="00:19:22.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's a way to manage important email threads.""" start="00:19:23.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So you can keep updating threads.""" start="00:19:27.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Whenever there's a reply, you keep downloading it""" start="00:19:29.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""to that thread.""" start="00:19:32.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""If you want to keep track of what's going on, what""" start="00:19:32.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""is the logical way you can all see it.""" start="00:19:35.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can even use ellama or one of those to make""" start="00:19:37.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""sense of the conversation.""" start="00:19:40.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""If it's a long longish thread, it's a power tool""" start="00:19:42.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""for the getting things done or Tiago Forte's PARA""" start="00:19:45.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""method.""" start="00:19:49.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I've used PARA for a long time now.""" start="00:19:49.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I'm a power user of PARA, so to speak, so I find""" start="00:19:52.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""this extremely useful myself.""" start="00:19:54.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's about 800 lines of Python""" start="00:19:56.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and about 300 to 500 lines of elisp.""" start="00:19:59.068" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It's usable in 10 minutes, but can remain powerful""" start="00:20:02.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""for years.""" start="00:20:07.000" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Technical decisions""" start="00:20:07.680" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""So some technical decisions that I took.""" start="00:20:07.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Why Python plus Gmail, API.""" start="00:20:10.600" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Gmail API is better at handling than an imap with""" start="00:20:13.420" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""all the other metadata.""" start="00:20:17.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I found it easier.""" start="00:20:19.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Python has excellent Google API libraries.""" start="00:20:20.200" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Email calls Python via the call-process.""" start="00:20:22.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""json is the interchange format.""" start="00:20:25.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Why not pure elisp?""" start="00:20:27.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""For one, OAuth 2.0 flow is a bit complex.""" start="00:20:29.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I found it a bit complex to meander on.""" start="00:20:33.800" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's probably why it took me three years, 364""" start="00:20:35.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""days to get over it.""" start="00:20:38.140" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Gmail API Client libraries are mature, easier to""" start="00:20:40.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""test/debug separately and lets emacs do what it""" start="00:20:43.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""does best, which is text editing.""" start="00:20:48.460" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Pragmatism over purity, the emacs way since 1976.""" start="00:20:50.160" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Roadmap""" start="00:20:54.760" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Okay, some roadmap here.""" start="00:20:54.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""But near term I want better error messages.""" start="00:20:57.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It still gives me python error messages.""" start="00:21:00.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""There are some asynchronous operations there's no""" start="00:21:02.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""blocking going on.""" start="00:21:05.040" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It needs a search integration soon.""" start="00:21:06.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Attachment I have not yet touched.""" start="00:21:08.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""That's a big big if, I don't know how to integrate""" start="00:21:11.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""with org-attach, I'm still wondering how to do""" start="00:21:13.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""that.""" start="00:21:15.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Perhaps I should be able to interact with Outlook""" start="00:21:16.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""also, fast mail, proton mail.""" start="00:21:19.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I don't know AI summaries of thread.""" start="00:21:21.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I'm thinking ellama could do it, but I'm not very""" start="00:21:24.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""sure.""" start="00:21:27.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Calendar integration is a nice idea, but org-gcal""" start="00:21:28.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""and org gmail...""" start="00:21:32.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""How will they interact?""" start="00:21:33.320" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""How will that work?""" start="00:21:34.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I'm still not sure. I use them separately.""" start="00:21:35.840" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And any other feature requests that you may have,""" start="00:21:37.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""just let me know.""" start="00:21:40.600" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Contributing""" start="00:21:41.440" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""What I may need help with if you have the time and""" start="00:21:41.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""you're interested in this project, is to test it""" start="00:21:44.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""on macOS and Windows.""" start="00:21:47.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I use Linux.""" start="00:21:49.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I use it on Debian.""" start="00:21:50.160" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It works fine.""" start="00:21:51.760" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""OAuth edge cases.""" start="00:21:52.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I'm not sure how it works.""" start="00:21:54.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""It shows me some error or the other""" start="00:21:55.720" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""here and there.""" start="00:21:57.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Definitely documentation needs improvements.""" start="00:21:58.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Other email provider expertise will be welcome.""" start="00:22:00.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""What's ready is, GitHub repo with issues.""" start="00:22:04.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""You can start with that could be great if you can""" start="00:22:07.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""tell me some issues with that.""" start="00:22:10.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Some kind of development guide.""" start="00:22:11.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I am not a programmer.""" start="00:22:13.880" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I vibe-coded most of it.""" start="00:22:15.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""So a development guide, a true blood developer,""" start="00:22:18.080" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""if they can come and tell me,""" start="00:22:20.920" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""here is what you should be doing,""" start="00:22:22.480" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I'm more than happy to listen to that.""" start="00:22:24.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""And probably a test suite.""" start="00:22:26.240" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I do that manually.""" start="00:22:27.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""All of this, some kind of help with that""" start="00:22:28.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""will also work.""" start="00:22:31.240" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The big picture""" start="00:22:32.940" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""The big picture is org-mode and Gmail""" start="00:22:32.940" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""can be friends.""" start="00:22:36.560" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""They can bond over a cup of coffee.""" start="00:22:37.680" video="mainVideo-gmail" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Let's connect""" start="00:22:41.120" video="mainVideo-gmail" id="subtitle"]]</div>[[!template text="""Let's connect.""" start="00:22:41.120" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Here are my details and I am all game to listen to""" start="00:22:41.960" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""your question and answers.""" start="00:22:47.660" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I'm happy to give you any answer or responses that""" start="00:22:48.680" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""I find.""" start="00:22:51.280" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Please do connect with me on LinkedIn. I have my""" start="00:22:52.000" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""website here, and please do fork or install""" start="00:22:54.440" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""org-gmail and let me know what you think.""" start="00:22:58.360" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Let's talk about taming email.""" start="00:23:00.520" video="mainVideo-gmail" id="subtitle"]]
+[[!template text="""Thank you very much.""" start="00:23:02.760" video="mainVideo-gmail" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [bala@balaramadurai.net](mailto:bala@balaramadurai.net?subject=Comment%20for%20EmacsConf%202023%20gmail%3A%20org-gmail%3A%20A%20deep%20integration%20of%20Gmail%20into%20your%20Org%20Mode)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2025/info/gmail-before.md b/2025/info/gmail-before.md
index 1dabed19..0c76e39f 100644
--- a/2025/info/gmail-before.md
+++ b/2025/info/gmail-before.md
@@ -8,12 +8,39 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 24-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-gmail.html> Etherpad: <https://pad.emacsconf.org/2025-gmail>
Etherpad: <https://pad.emacsconf.org/2025-gmail>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Ready to stream
+Status: Now playing on the conference livestream
<div>Times in different time zones:</div><div class="times" start="2025-12-06T15:15:00Z" end="2025-12-06T15:40:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~10:15 AM - 10:40 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~9:15 AM - 9:40 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~8:15 AM - 8:40 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~7:15 AM - 7:40 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~3:15 PM - 3:40 PM UTC <br />Saturday, Dec 6 2025, ~4:15 PM - 4:40 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~5:15 PM - 5:40 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~8:45 PM - 9:10 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~11:15 PM - 11:40 PM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~12:15 AM - 12:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-gmail"><source src="https://media.emacsconf.org/2025/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2025/captions/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-gmail" data="""
+00:00.000 Before we begin
+00:19.840 The 4-year overnight success
+01:02.800 The real title
+01:15.600 Why not gnus/mu4e/notmuch?
+01:34.280 The honest answer
+02:17.920 The org-gmail philosophy
+02:49.440 Architecture (the boring but important slide)
+03:21.200 Demo 1: From gmail to org
+04:37.480 Settings
+05:43.040 Downloading
+07:56.880 Replying
+09:33.680 Label management
+10:57.160 Refiling
+12:04.120 Archiving
+13:37.140 Action commands
+15:53.680 Org Agenda
+16:28.280 Trash
+17:07.440 Real workflow: GTD
+17:40.560 Real Workflow: P.A.R.A.
+18:35.960 What this is NOT
+20:07.680 Technical decisions
+20:54.760 Roadmap
+21:41.440 Contributing
+22:32.940 The big picture
+22:41.120 Let's connect
+"""]]<div></div>Duration: 23:04 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-gmail">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2025/current/bbb-gmail.html">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main.opus">Download --main.opus (20MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--main.webm">Download --main.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gmail--orggmail-a-deep-integration-of-gmail-into-your-org-mode--bala-ramadurai--script.txt">Download --script.txt</a></li><li><a href="https://youtu.be/8P93UBYrUB8">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file