AnimeCal is a Next.js 15 application that helps anime enthusiasts export their AniList watching list into a standardized .ics
calendar format. Easily integrate your anime schedule with popular calendar services like Google Calendar, Outlook, or Apple Calendar.
- 🔐 Secure AniList OAuth authentication
- 📺 Fetch current watching list from AniList
- 🗓️ Generate iCalendar (.ics) files with airing schedules
- ✏️ Type safety with TypeScript, Graphql and Codegen
- ⚡ Offline caching using IndexedDB
- 🎨 Beautiful UI with DaisyUI components
- 🔄 Real-time data synchronization
- 📱 Responsive design
- Node.js 18+
- npm 9+
- AniList API credentials
- Clone the repository
git clone https://github.com/adenlall/AnimeCal.git
cd AnimeCal
- Install dependencies
npm install
-
Configure environment variables
- Create a .env.local file in the root directory:
NEXT_PUBLIC_ANILIST_CLIENT_ID=your_client_id
NEXT_PUBLIC_ANILIST_REDIRECT_URI=http://localhost:3000/api/auth/callback
ANILIST_CLIENT_SECRET=your_client_secret
- Run the development server
npm run dev
-
Next.js 15 - React framework for server-side rendering and static generation
-
React 19 - Frontend library for building user interfaces
-
Zustand - State management solution
-
GraphQL Codegen - Type-safe GraphQL operations
-
Tailwind CSS + DaisyUI - Modern styling framework
-
IndexedDB - Client-side storage for offline caching
-
Authenticate with AniList
- Click the "Login with AniList" button
- Grant necessary permissions
-
Fetch Watching List
- The application will automatically retrieve your current watching list
- View anime titles with next airing dates
-
Generate Calendar
- Click "Generate Calendar" to create .ics file
- Customize calendar options:
- Include past episodes
- Set reminder notifications
- Choose calendar timezone
-
Export & Sync
- Download .ics file
- Import to your preferred calendar service
- Automatic updates when new episodes air
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch (git checkout -b feature/AmazingFeature)
- Commit your changes (git commit -m 'Add some AmazingFeature')
- Push to the branch (git push origin feature/AmazingFeature)
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- AniList team for their excellent API
- Next.js community for awesome documentation
- Contributors to the open-source libraries used in this project