# Time blocked daily plan from your calendar and TickTick

> Every weekday at 7:30am, get a Slack message that fits today's real tasks into the gaps between your meetings, and warns you when the day is overbooked.

- Workflow type: agent
- Services: TickTick, Google Calendar, Slack
- Categories: Personal Productivity
- Published: 2026-08-10

## What it does

- Pulls today's meetings from your calendar and every task that is due today or already overdue from TickTick.
- Ranks those tasks by priority and due date, then drops the most important ones into the open gaps between your meetings, ignoring any gap shorter than 30 minutes.
- Sends you a Slack direct message laid out as one timeline, with your real meetings and the suggested focus blocks in order.
- Tells you up front when there is more work than free time, and names the specific tasks that should slip to tomorrow.

## What you'll need

- A Google Calendar account, connected to the calendar you actually schedule on
- A TickTick account with your tasks and their due dates
- A Slack account, so the plan can arrive as a direct message from you to you
- Due dates on your TickTick tasks, since the plan is built from what is due today or already overdue

## Prompt

Every weekday at 7:30am, build me a time blocked plan for today from my calendar and my task list, and send it to me as a Slack direct message. The point of this is not a digest of what exists. It is a realistic plan that admits when the day does not fit.

First, get today's schedule with Google Calendar List Events on my primary calendar, bounded to today in my calendar's own time zone. Treat these as fixed commitments. Skip all day events, and skip events I have declined, since neither blocks real working time. Keep the start time, end time, and title of everything that remains.

Next, gather what is actually on my plate. Call TickTick List All Projects to get every project, then call Get Project Data for each one to collect its tasks. Get Project Data returns only undone tasks, so everything that comes back is still open and there is no need to filter out completed work. From that combined set, keep only the tasks that are due today or whose due date has already passed. Drop tasks with no due date entirely.

Rank the surviving tasks by TickTick priority first, then by due date, with the oldest overdue items breaking ties in favour of doing them sooner. TickTick priority is only ever 0 for none, 1 for low, 3 for medium, and 5 for high, so treat 5 as the most important and 0 as the least. Overdue work should generally outrank work that is merely due today at the same priority level.

Estimate how long each task will take. Use any duration or start and due time information the task carries, and where a task has no usable estimate, assume 45 minutes and say that you assumed it. Then find the open gaps between my meetings within working hours of 9:00am to 5:00pm. Ignore any gap shorter than 30 minutes, because nothing meaningful happens in a 20 minute window between calls.

Assign the highest ranked tasks into the gaps that can realistically hold them. A task should only go into a block that actually fits its estimate, rather than being split across a meeting. Work down the ranked list until you run out of usable gaps.

Before you write anything, compare the total estimated time of everything due today against the total usable free minutes you found. If the work needs more hours than I actually have free, say so explicitly in the first line of the message, give both numbers, and name exactly which tasks should slip to tomorrow and why they were the ones chosen to slip. Be blunt about it. If everything fits, say that plainly too, and mention any spare capacity.

Deliver the result as a Slack direct message to me. Use Open a Conversation to get my DM channel id, then Send a Message to that channel. Lay the body out as a single chronological timeline that interleaves my real meetings with the proposed focus blocks, so I can read the day top to bottom in one pass. Label each line clearly as either a meeting or a suggested focus block, and show the priority and due status next to each task so I can see why it landed where it did. Close with a short list of anything due today that did not get scheduled.

Do not create, complete, or reschedule anything. This run only reads my calendar and my tasks and sends one message.

## How to customize

- Change the send time or the days it runs, for example 6:30am, or seven days a week instead of weekdays only.
- Set your working hours and the shortest gap worth protecting, if 30 minutes is too short or too long to be useful.
- Change how long a task with no estimate is assumed to take, or send the plan to a private channel instead of a direct message.

## Example output

Heads up: today does not fit. You have 3h 30m of usable free time and about 5h 45m of work due. Recommend slipping "Draft vendor renewal memo" (Medium, due today) and "Review analytics spec" (Low, due today) to tomorrow.

Your day, 9:00am to 5:00pm

9:00 - 9:15   Standup (meeting)
9:15 - 10:30  FOCUS: Finish board deck financials (High, due today, ~75m)
10:30 - 11:00 Gap, 30m, too tight after the deck. Buffer.
11:00 - 12:00 Pricing review with Dana (meeting)
12:00 - 12:45 FOCUS: Reply to security questionnaire (High, 4 days overdue, ~45m)
12:45 - 1:30  Lunch (meeting)
1:30 - 2:00   Gap, 30m. FOCUS: Approve Q3 contractor invoices (Medium, due today, ~30m)
2:00 - 3:30   Customer onsite prep (meeting)
3:30 - 4:00   Gap, 30m. FOCUS: Send follow ups from Tuesday's call (Medium, 1 day overdue)
4:00 - 5:00   All hands (meeting)

Slipping to tomorrow: Draft vendor renewal memo, Review analytics spec.
Overdue and still unscheduled: none. Both overdue items made it into today.

## FAQ

### What happens if my day is completely booked?

You still get the message, and it says so plainly at the top. Instead of inventing focus blocks that do not exist, it lists the work that is due today with a note that there is no free time to do it in, and suggests what to move or cancel.

### Does this change my calendar or my tasks?

No. By default it only reads your calendar and your task list, then sends you a message. Nothing is created, completed, or rescheduled. If you want the focus blocks written onto your calendar as real events, that can be added when you set it up.

### Which tasks does it actually look at?

Only tasks that are still open and are either due today or already past their due date. Anything you have finished is ignored, and so is anything due later in the week, so the plan stays focused on what genuinely needs to happen today.

### What if a task has no due date?

It is left out. The plan is built around commitments with a real deadline, which is what makes the overbooked warning meaningful. If you want a task to show up in your day, give it a due date in TickTick.

### How does it know how long a task will take?

It estimates from the task itself, using any duration or time information you have set, and falls back to a sensible default for anything unestimated. You can raise or lower that default so the plan matches how you actually work.

### Can I get this somewhere other than a direct message?

Yes. A direct message is the default because a daily plan is personal, but it can go to a private channel instead if you prefer to keep your plans in one searchable place.

Use this prompt in General Input: https://www.generalinput.com/prompts/time-blocked-daily-plan-from-your-calendar-and-ticktick