SNIPPETSamiBaayoun
Calendtask
A visual calendar view for Obsidian that seamlessly integrates task management with weekly scheduling. Drag and drop tasks from your notes onto a calendar grid, set time blocks with precise duration control, and organize your day with color-coded tags and priorities. Compatible with Obsidian Tasks plugin format.
CSSAny theme
# CalendTask
A powerful Obsidian plugin that combines task management with a visual weekly calendar. Schedule your tasks with drag-and-drop, manage priorities, and track timeβall within your Obsidian vault.
## Features
### π
Weekly Calendar View
- **Visual scheduling**: Drag tasks from the sidebar onto specific time slots
- **All-day events**: Dedicated zone for tasks without specific times
- **Time slots**: Hourly grid with 30-minute snap increments
- **Current time indicator**: Real-time visual marker showing the current time
- **Today highlighting**: Clear visual distinction of the current day
### β
Task Management
- **Checkbox completion**: Mark tasks as done directly from any view
- **Hide completed**: Toggle to show/hide completed tasks
- **Priority levels**: Critical, High, Medium, Low with color-coded badges
- **Search**: Quickly filter tasks by text, tags, or priority
- **Tag grouping**: Organize tasks by tags in the sidebar
- **Smart filtering**: Sidebar shows only unscheduled tasks
### π¨ Visual Customization
- **Tag-based colors**: Assign custom colors to tags for better organization
- **Color-coded tasks**: Visual distinction based on tag colors
- **Priority indicators**: Left border colors showing task priority
- **Drag preview**: See exactly where tasks will be placed while dragging
### β±οΈ Time Management
- **Duration tracking**: Set and visualize task duration
- **Resizable events**: Adjust duration with drag handles (top/bottom)
- **Time display**: Clear time and duration indicators on calendar events
- **Metadata support**: Date (π
), Time (π), and Duration (β±) badges
### π Obsidian Tasks Integration
- Compatible with [Obsidian Tasks plugin](https://github.com/obsidian-tasks-group/obsidian-tasks) format
- Uses emoji-based metadata: `β³ YYYY-MM-DD`, `β° HH:mm`, `β± Xmin`
- Preserves task format in your markdown files
- Direct file editing: Double-click tasks to jump to source file
## Installation
### From Obsidian Community Plugins (Coming Soon)
1. Open Settings β Community Plugins
2. Browse for "CalendTask"
3. Click Install, then Enable
### Manual Installation
1. Download `main.js`, `styles.css`, and `manifest.json` from the [latest release](https://github.com/SamiBaayoun/Calendtask/releases)
2. Create a folder `VaultFolder/.obsidian/plugins/calendtask/`
3. Copy the downloaded files into this folder
4. Reload Obsidian
5. Enable CalendTask in Settings β Community Plugins
## Usage
### Opening CalendTask
- Click the calendar icon in the left ribbon, or
- Use the command palette: "CalendTask: Open calendar view"
### Creating Tasks
Create tasks in any markdown file using the Obsidian Tasks format:
```markdown
- [ ] My task #tag β³ 2025-01-15 β° 14:00 β± 60min
- [ ] High priority task !high
- [ ] All-day event β³ 2025-01-15
```
### Scheduling Tasks
1. **From sidebar to calendar**: Drag unscheduled tasks onto time slots
2. **Within calendar**: Drag events to reschedule
3. **To all-day zone**: Drag events to the top "All-day" area
4. **Adjust duration**: Drag the top or bottom edge of calendar events
### Task Completion
- Click the checkbox on any task to mark it as done
- Use the eye icon (ποΈ) in the sidebar to hide/show completed tasks
### Customization
- **Tag colors**: Right-click any task β "Couleur pour #tag" β Choose a color
- **Collapse groups**: Click on tag headers to collapse/expand task groups
- **Search**: Use the search box in the sidebar to filter tasks
### Context Menu Options
Right-click on any task to:
- Change tag color
- Remove from calendar
- Open source file
## Task Format
CalendTask supports the following task metadata:
| Metadata | Format | Example | Description |
|----------|--------|---------|-------------|
| Date | `β³ YYYY-MM-DD` | `β³ 2025-01-15` | Schedule date |
| Time | `β° HH:mm` | `β° 14:30` | Start time |
| Duration | `β± Xmin` or `β± Xh` | `β± 90min` or `β± 1.5h` | Task duration |
| Priority | `!critical`, `!high`, `!medium`, `!low` | `!high` | Priority level |
| Tags | `#tagname` | `#work #urgent` | Task categorization |
| Status | `- [ ]` or `- [x]` | `- [x]` | Completion status |
## Development
### Prerequisites
- Node.js v16 or higher
- npm or yarn
### Setup
```bash
# Clone the repository
git clone https://github.com/SamiBaayoun/Calendtask.git
cd Calendtask
# Install dependencies
npm install
# Build in watch mode
npm run dev
# Production build
npm run build
```
### Project Structure
```
calendtask/
βββ components/ # Svelte 5 components
β βββ CalendarView.svelte
β βββ TodoColumn.svelte
β βββ TagGroup.svelte
β βββ AllDayZone.svelte
βββ services/ # Business logic
β βββ VaultSync.ts
β βββ TodoParser.ts
βββ stores/ # Svelte stores
β βββ todoStore.ts
β βββ uiStore.ts
βββ utils/ # Utilities
β βββ colors.ts
β βββ editorUtils.ts
βββ main.ts # Plugin entry point
βββ styles.css # Global styles
```
## Technology Stack
- **Framework**: Svelte 5 with runes
- **Language**: TypeScript
- **Build Tool**: esbuild
- **API**: Obsidian Plugin API
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
MIT License - see [LICENSE](LICENSE) file for details.
## Support
If you encounter any issues or have feature requests, please [open an issue](https://github.com/SamiBaayoun/Calendtask/issues) on GitHub.
---
Made with β€οΈ for the Obsidian community
How to Install
- Download the CSS file below
- Move it to your vault's
.obsidian/snippets/folder - Open Obsidian β Settings β Appearance β CSS Snippets β Enable it
Stats
Stars
2
Forks
0
License
MIT
Last updated 2mo ago
Categories